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。