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。