Marvin:构建AI应用的Python框架

Marvin

3.5 | 26 | 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"的最佳替代工具

Ideation Station
暂无图片
188 0

Ideation Station 是一款人工智能驱动的商业概念生成器。输入您的兴趣或想法,探索人工智能生成的包含计划、营销和定价的概念。

商业概念生成
GPT-4
人工智能
Innervu
暂无图片
3 0

Momen
暂无图片
17 0

YouMind
暂无图片
248 0

YouMind是一个AI创作工作室,帮助您捕捉想法、收集材料、高效研究和撰写精良的内容。使用AI驱动的助手简化您的创作流程。

AI写作
内容创作
研究助手
Dayzero
暂无图片
15 0

OpenServ
暂无图片
25 0

Firecrawl
暂无图片
11 0

Supermemory
暂无图片
148 0

Supermemory 是一个快速的记忆 API 和路由器,可为您的 LLM 应用添加长期记忆。使用 Supermemory SDK 和 MCP 在几毫秒内存储、调用和个性化设置。

记忆 API
LLM
AI 应用
Agency Swarm
暂无图片
27 0

Agency Swarm 是一个开源框架,扩展了 OpenAI Agents SDK,用于构建具有可定制角色和协调通信的可靠多代理 AI 应用程序。

代理编排
多代理系统
AI 自动化
Emergence AI
暂无图片
243 0

Emergence AI首创“代理创造代理”——一种实时构建、训练和部署其他代理的 AI,用于企业创新。无需设置或延迟的自主智能。

AI 代理
数据自动化
多代理系统
ContextClue
暂无图片
OneSky Localization Agent (OLA)
暂无图片
250 0

OneSky Localization Agent (OLA) 使用多代理AI,为应用程序、软件和游戏提供准确且经济高效的翻译。无缝集成,加速全球扩张。

AI本地化
机器翻译
多代理系统
Go Agent SDK
暂无图片
179 0

Go Agent SDK 是一款强大的开源 SDK,用于使用 Go 构建、部署和编排智能 AI 代理。简化代理工作流程并集成自定义工具。

AI 代理开发
Go 编程
代理编排
Local Deep Researcher
暂无图片