PrefectHQ/marvin

an ambient intelligence library

What it solves

Marvin 是一个 Python 框架,旨在简化从大型语言模型(LLM)获取结构化数据以及构建复杂、具代理功能的 AI 工作流的过程。它弥合了 AI 输出不可预测的特性与传统软件需求之间的差距,确保结果具备类型安全并经过验证。

How it works

Marvin 提供一套高级实用工具和核心抽象,用于编排 AI 行为:

  • Structured-Output Utilities:简单函数如 extractcastclassifygenerate 让用户能够快速将非结构化文本转化为 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。