PrefectHQ/marvin

an ambient intelligence library

What it solves

Marvin は、LLM から構造化データを取得し、複雑でエージェント型の AI ワークフローを構築するプロセスを簡素化することを目的とした Python フレームワークです。AI の出力が予測不可能な点と従来のソフトウェアが求める要件とのギャップを埋め、結果が型安全で検証済みであることを保証します。

How it works

Marvin は、AI の振る舞いをオーケストレーションするための高レベルユーティリティとコア抽象を提供します:

  • Structured-Output Utilities: extractcastclassifygenerate といったシンプルな関数により、非構造化テキストを Python の型(整数、Enum、TypedDict など)に素早く変換できます。
  • Tasks: 作業の基本単位です。Task は明確な目的、指示、必要な結果型を定義します。タスクは外部データやシステムとやり取りするカスタムツール(Python 関数)を装備できます。
  • Agents: 特定の指示、パーソナリティ、モデルをカプセル化したポータブルな LLM 設定です。エージェントはタスクに割り当てられ、専門的な知識を提供します。
  • Threads: 複数タスクをオーケストレーションするためのコンテキストマネージャで、AI 操作のシーケンス全体で履歴とコンテキストを共有できます。
  • Planning: フレームワークは marvin.plan を使用して、複雑な目的を一連の依存タスクに自動的に分解できます。

Who it’s for

プロンプトエンジニアリングを大量に書かず、LLM の応答を手動でパースせずに AI 搭載アプリケーションを構築したい Python 開発者、そして観測可能で管理しやすいワークフローを持つマルチエージェントシステムを構築する必要がある方を対象としています。

Highlights

  • Type-Safe Results: Pydantic AI を使用して検証済みの構造化出力を提供します。
  • Task-Centric Architecture: 複雑なワークフローを観測可能で離散的なステップに分割します。
  • Multi-Agent Orchestration: 単一スレッド内で複数の専門エージェントを調整できます。
  • Tool Integration: AI エージェントがカスタム Python 関数を実行して実世界のアクションを行うことを可能にします。
  • Broad Model Support: OpenAI や Anthropic を含むすべての Pydantic AI モデルをネイティブにサポートします。