Skip to Content
Docsサンプルコードmulti-agent — 最小のオーケストレーション(Python)

multi-agent — 最小のオーケストレーション(Python)

計画役 + 実行役の 2 エージェントで、タスクを分解して実行する最小のオーケストレーション複数の LLM 呼び出しや Agent の実行順序とデータの流れを制御すること。直列・並列・ルーティングなどの定番パターンがある。を示すサンプルです。次のドキュメントの内容を実装しています。

このサンプルの要点

  • 2 役は独立したコンテキスト: 計画役(llm_client.py の別インスタンス)と実行役を分け、計画の詳細で実行役のコンテキストを汚しません
  • 実行役はツールを使う: 実行役は get_temperature(モックツール)を呼んで各サブタスクを実行します
  • 決定的な計算はコードで: 平均の計算は LLM ではなくコードで行います(確実性が要る処理を LLM に溶かさない)
  • 計画と取得結果を別々に検証: このサンプルの対象は EXPECTED_CITIES の東京・大阪・札幌です。空計画・対象の欠落・余分な都市・重複は実行前に拒否します。自由な質問へ拡張するときは、利用者が確認した対象一覧も入力契約として渡します
  • 欠損を隠さない: 実行時に取得できない都市があれば partial として未取得都市を示し、取得済み分の平均と全対象の平均を区別します。0 件なら failed、平均は None です。CLI は全件完了した場合だけ終了コード 0 を返します

前提

  • Python 3.11 以降(--mock は追加依存なし・標準ライブラリのみで動きます)
  • 実 API 実行時のみ: Anthropic API キー(環境変数 ANTHROPIC_API_KEY)と pip install -r requirements.txt

実行

# モック実行(API キー不要・依存インストール不要) python multi_agent.py --mock # 実 API 実行(要 ANTHROPIC_API_KEY) pip install -r requirements.txt python multi_agent.py

計画役の分解 → 実行役の実行(ツール呼び出し)→ 集約(平均計算)の流れが表示されます。

既定の結果は 3 都市すべてを集約した平均 27.3 度です。_MOCK_TEMPS から札幌を除くと 2/3 都市の部分結果となり、全対象の平均が未確定であることと終了コード 1 を確認できます。

動作確認日

以下は過去の確認記録です。

  • モック実行(--mock): 2026-09-10 に確認(Python 3.11.3、追加依存なし)
  • 回帰テスト: 2026-09-10 に確認。空・欠落・重複した計画、取得失敗時の部分結果・全件失敗、anthropic 1.4.0 / httpx2 2.12.0 の HTTP モックで SDK の打ち切り応答を確認(実行手順)
  • 実 API 実行: 未確認(各自の環境で確認し、この欄に日付を追記してください)

TODO・未確認事項

モデルの選択

既定モデルは claude-opus-5-5 です(モデル仕様確認: 2026-10-03)。環境変数 ANTHROPIC_MODEL で上書きできます。PowerShell では $env:ANTHROPIC_MODEL = "claude-sonnet-5-5"、POSIX シェルでは export ANTHROPIC_MODEL=claude-sonnet-5-5 を実行してから起動します。--mock は API を呼びません。モデル移行時は強制ツール指定・思考履歴・出力上限の互換性を確認してください。実 API の動作確認日は従来の記録を維持し、今回のモック回帰結果は作業記録に分けます。