Marvin:构建AI应用的Python框架

Marvin

3.5 | 290 | 0
类型:
开源项目
最后更新:
2025/10/02
资源描述:
Marvin 是一个强大的 Python 框架,用于使用大语言模型 (LLM) 构建 AI 应用。它简化了状态管理、代理协调和结构化输出,适用于开发者创建智能应用。
分享:
Python AI框架
LLM代理
结构化输出
内存管理
多代理系统

Marvin 概述

什么是 Marvin?

Marvin 是一个开源 Python 框架,专为构建由大型语言模型 (LLMs) 驱动的 AI 应用而设计。它将将 LLMs 集成到现实世界项目中的复杂性抽象化,提供了一个干净、直观的界面,能够无缝处理状态管理、对话历史和代理协调。无论您是初学者刚涉足 AI 开发,还是经验丰富的开发者正在扩展多代理系统,Marvin 都能让您更容易创建复杂的 AI 工具,而不会陷入样板代码的泥沼。

由 PrefectHQ 开发,并在 GitHub 上获得超过 5,952 个星标,Marvin 在拥挤的 AI 工具包景观中脱颖而出,专注于实用性和可扩展性。它特别适合那些希望利用 OpenAI 或其他提供商的 LLMs 的 Python 爱好者,而无需重新发明轮子。

Marvin 如何工作?

在核心层面,Marvin 通过一个围绕 tasksagentsthreadstools 的模块化系统运行。以下是其关键机制的分解:

  • Tasks:基本构建块。Marvin 的 marvin.run() 函数允许您使用最少的代码执行简单或复杂的 AI 任务。例如,您可以仅通过传递提示来生成文本、分类输入或提取数据。它支持提供上下文以提高准确性,确保输出相关且精确。

  • Agents:这些是您可以自定义名称、指令和个性化的专用 AI 实体。一个代理可能是一个用于创意写作的 'Poet' 或用于解释性任务的 'Scientist'。代理可以在多代理设置中协作,在它们之间传递上下文,以构建更智能的工作流程。这非常适合不同 '专家' 需要为单一输出贡献的场景。

  • Memory and State Management:Marvin 包含内置的持久内存模块,能够在会话之间保留信息。使用 marvin.Memory,您可以存储用户偏好或对话历史,实现更个性化和上下文感知的交互。这一功能对于聊天机器人或虚拟助手等应用至关重要,它们需要 '记住' 先前的交流。

  • Structured Outputs:Marvin 的优势之一是其返回预定义格式数据的能力。通过与 Pydantic 模型集成,您可以指定输出类型,如 JSON 模式或类型化对象(例如,具有名称、角色和光环属性的角色列表)。这消除了后处理麻烦,并确保可靠、可解析的结果。

  • Tools and Integrations:Marvin 通过工具支持交互性,允许代理调用外部函数或 API。它还与 MCP 服务器集成,用于高级设置,并与现有的 Python 生态系统兼容,使其可扩展以满足自定义需求。

安装非常简单——使用 pip 或 uv,您可以在一分钟内启动运行:pip install marvin。从那里开始,快速入门指南将带您完成基本示例,并扩展到高级概念,如用于多轮对话的 threads。

Marvin 的核心功能

Marvin 提供了针对高效 AI 开发量身定制的功能,实力强劲:

  • Simple Interface:使用一行代码的任务如 marvin.run("Write a haiku about artificial intelligence") 即可上手,然后扩展到完整应用。

  • Smart Defaults:开箱即用的配置处理常见的 LLM 陷阱,并在需要时提供微调选项。

  • Multi-Agent Collaboration:构建专注于任务的代理团队,共享上下文以获得连贯的结果。

  • Extensibility:无缝集成到您的 Python 代码库中,支持如 ExtractGenerateSummarize 等函数,以及更多。

这些功能使 Marvin 成为开发者在基于 LLM 的应用中寻求简单性和强大之间平衡的首选。

如何使用 Marvin:逐步指南

使用 Marvin 的入门设计得非常顺畅。请按照以下步骤构建您的第一个 AI 应用:

  1. Install Marvin:在终端中运行 pip install marvin。对于 uv 用户,甚至更快,还支持剪贴板集成以获取示例。

  2. Run a Simple Task:导入 Marvin 并执行提示:

import marvin print(marvin.run("Write a haiku about artificial intelligence"))

这会立即输出一个创意俳句,展示了 Marvin 在文本生成方面的简便性。

3. **Create Specialized Agents**:使用自定义指令定义代理:
```python
import marvin
poet = marvin.Agent(name="Poet", instructions="You are an expert poet who writes in various styles.")
poem = marvin.run("Write a haiku about entropy", agents=[poet])
print(poem)

组合代理以实现链式任务,例如使用科学家的解释作为诗人的上下文。

  1. Handle Structured Data:使用 Pydantic 处理类型化输出:

from typing import Annotated, Literal import marvin from pydantic import BaseModel, Field class Character(BaseModel): name: str role: Literal["hero", "villain", "sidekick"] aura: Annotated[float, Field(ge=0, le=1)] characters = marvin.run("Create three characters for a mystery story", result_type=list[Character])

遍历结果以显示格式化的角色资料。

5. **Implement Persistent Memory**:为持续交互添加内存:
```python
import marvin
preferences = marvin.Memory(key="user_preferences", instructions="Remember user preferences and style")
assistant = marvin.Agent(memories=[preferences])
marvin.run("Learn about the user's writing style preferences", agents=[assistant], cli=True)

未来的运行将引用此内存,提升写作助手等应用中的个性化体验。

对于交互式演示,Marvin 支持 CLI 模式 (cli=True) 以直接与代理聊天。探索文档以了解高级模式,如异步运行任务或与 Prefect 集成进行工作流编排。

为什么选择 Marvin 用于您的 AI 项目?

在众多 AI 框架中,Marvin 以其开发者友好的设计脱颖而出。它通过处理 LLM 的复杂性来减少开发时间,让您专注于创新。主要好处包括:

  • Efficiency:从原型到生产,Marvin 的结构化方法减少了调试和集成工作。

  • Flexibility:自定义代理和工具以适应特定用例,从内容生成到数据提取。

  • Reliability:内置错误处理和合理的默认值确保与各种 LLM 后端的稳定性能。

社区反馈突出了其直观性——GitHub 用户赞扬它 '只需一用' 即可实现快速原型设计。与更冗长的库相比,Marvin 的简洁 API 加速了迭代,使其成为敏捷团队的首选。

Marvin 适合谁?

Marvin 针对 AI 开发领域的各种用户:

  • Python Developers:那些对 LLMs 新手,希望在没有深入 ML 专业知识的情况下轻松上手。

  • AI Builders:创建聊天机器人、虚拟助手或自动化工作流,需要多代理逻辑的团队。

  • Data Scientists:专业人士使用结构化 LLM 输出提取洞见或生成报告。

  • Startup Founders:寻求快速 MVP 开发 AI 驱动产品,如个性化导师或内容工具的人。

如果您正在构建需要对话式 AI、知识提取或创意生成的应用程序,Marvin 的工具包完美契合您的需求。

实际用例和价值

Marvin 的多功能性开启了众多应用:

  • Content Creation:使用专用代理生成诗歌、解释或故事——理想用于营销或教育工具。

  • Data Processing:从文本中提取实体或使用结构化结果分类文档,简化 NLP 管道。

  • Interactive Apps:构建带有内存的聊天界面,用于客户支持或个人助手。

  • Research and Prototyping:快速测试 LLM 想法,如模拟科学讨论或游戏角色开发。

其实际价值在于可扩展性:从简单开始,添加代理增加复杂性,并集成到生产环境中。通过利用 Marvin,开发者报告 LLM 应用的构建时间缩短高达 50%,释放资源用于核心创新。

欲获得更多灵感,请查看 GitHub 仓库 (PrefectHQ/marvin) 或加入 Slack 社区,查看真实世界示例并分享您的项目。

与 Marvin 的下一步

准备好构建了吗?立即安装 Marvin 并跟随快速入门。深入了解任务和代理等概念,以释放其全部潜力。随着 PrefectHQ 团队的持续更新,Marvin 不断演进,支持新兴 LLM 趋势和集成。

无论您是在 AI 内容生成中优化 SEO,还是自动化代码审查,Marvin 都为您提供了在快速变化的人工智能世界中取得成功所需的工具。

"Marvin"的最佳替代工具

Gentrace
暂无图片
16 0

Gentrace 帮助追踪、评估和分析 AI 代理的错误。与 AI 聊天以调试追踪,自动化评估,并微调 LLM 产品以实现可靠的性能。今天免费开始!

AI 调试
LLM 监控
AI 评估
Superagent
暂无图片
130 0

Superagent 通过专门训练的模型为 AI Agent 提供运行时保护。它可以实时防御攻击、验证输出并编辑敏感数据,从而确保安全性和合规性。

AI 安全
AI 合规
运行时保护
Lunary
暂无图片
147 0

Lunary 是一个开源 LLM 工程平台,提供可观测性、提示管理和分析功能,用于构建可靠的 AI 应用程序。它提供调试、跟踪性能和确保数据安全的工具。

LLM 监控
AI 可观测性
Cheshire Cat AI
暂无图片
172 0

Cheshire Cat AI 是一个简化 AI 代理构建的开源框架。它支持 LLM、外部 API 和插件,所有这些都在 Docker 化的环境中,便于部署和自定义。

AI 代理
LLM
开源
AI Runner
暂无图片
258 0

AI Runner是一个离线AI推理引擎,用于艺术创作、实时语音对话、LLM驱动的聊天机器人和自动化工作流程。在本地运行图像生成、语音聊天等!

离线AI
图像生成
语音聊天
Agent Zero
暂无图片
283 0

Agent Zero是一个开源AI框架,用于构建能够有机学习和成长的自主代理。具有多代理协作、代码执行和可定制工具的特点。

自主代理
多代理框架
代码执行
Pydantic AI
暂无图片
264 0

Pydantic AI 是一个 Python 中的 GenAI 代理框架,旨在构建生产级生成式 AI 应用程序。它支持各种模型,提供无缝的可观察性,并确保类型安全开发。

GenAI 代理
Python 框架
Weco AI
暂无图片
232 0

Weco AI使用AIDE ML技术自动化机器学习实验,通过AI驱动的代码评估和系统化实验优化ML管道,提高准确性和性能指标。

ML自动化
代码优化
GPU加速
OpenUI
暂无图片
258 0

OpenUI 是一个开源工具,让您用自然语言描述 UI 组件,并使用大语言模型实时渲染。将描述转换为 HTML、React 或 Svelte,实现快速原型设计。

UI生成
生成式AI
大语言模型集成
smolagents
暂无图片
252 0

smolagents 是一个简约的 Python 库,用于创建通过代码推理和行动的 AI 代理。它支持模型无关的 LLM、安全沙箱以及与 Hugging Face Hub 的无缝集成,实现高效的基于代码的代理工作流。

代码代理
LLM集成
沙箱执行
Langtrace
暂无图片
359 0

Langtrace是一个开源的可观测性和评估平台,旨在提高AI代理的性能和安全性。跟踪关键指标,评估性能,并确保LLM应用程序的企业级安全性。

LLM可观测性
AI监控
AI评估
LangWatch
暂无图片
432 0

LangWatch是一个AI代理测试、LLM评估和LLM可观测性平台。测试代理,防止回归并调试问题。

AI测试
LLM
可观测性
16x Prompt
暂无图片
417 0

16x Prompt 是一款 AI 编码工具,用于管理代码上下文、自定义提示,并通过 LLM API 集成更快地交付功能。非常适合寻求高效 AI 辅助编码的开发人员。

AI代码生成
提示管理
代码编辑器
Future AGI
暂无图片
730 0

Future AGI 为 AI 应用提供统一的 LLM 可观测性和 AI 代理评估平台,确保从开发到生产的准确性和负责任的 AI。

LLM 评估
AI 可观测性