PrefectHQ/marvin
an ambient intelligence library
What it solves
Marvin 是一个 Python 框架,旨在简化从大型语言模型(LLM)获取结构化数据以及构建复杂、具代理功能的 AI 工作流的过程。它弥合了 AI 输出不可预测的特性与传统软件需求之间的差距,确保结果具备类型安全并经过验证。
How it works
Marvin 提供一套高级实用工具和核心抽象,用于编排 AI 行为:
- Structured-Output Utilities:简单函数如
extract、cast、classify和generate让用户能够快速将非结构化文本转化为 Python 类型(例如整数、Enum 或 TypedDict)。 - Tasks:工作单元的基本概念。
Task定义明确的目标、指令和所需的结果类型。任务可以配备自定义工具(Python 函数)以与外部数据或系统交互。 - Agents:可移植的 LLM 配置,封装特定指令、人格和模型。可以将 Agent 分配给任务,以提供专门的专业知识。
- Threads:用于编排多个任务的 context manager,允许它们在一系列 AI 操作中共享历史和上下文。
- Planning:框架可以自动使用
marvin.plan将复杂目标拆解为一系列相互依赖的任务。
Who it’s for
它面向希望在不编写大量提示工程或手动解析 LLM 响应的情况下构建 AI 驱动应用的 Python 开发者,以及需要构建可观测、可管理工作流的多代理系统的用户。
Highlights
- Type-Safe Results:使用 Pydantic AI 生成经过验证的结构化输出。
- Task-Centric Architecture:将复杂工作流拆解为可观测、离散的步骤。
- Multi-Agent Orchestration:支持在单一 thread 中协调多个专门的代理。
- Tool Integration:允许 AI 代理执行自定义 Python 函数以执行真实世界的操作。
- Broad Model Support:原生支持所有 Pydantic AI 模型,包括 OpenAI 和 Anthropic。