私立ずんだもん女学園放送部 podcast 20250613
内容紹介
Claude Code 版 Orchestaror で複雑なタスクをステップ実行する、Benchmarking Multi-Agent Architectures、OpenAI Agents の TypeScript SDK
出演者
関連リンク
この記事では、AIが複雑なタスクを段階的かつ効率的に実行するための仕組み「Orchestrator(オーケストレーター)」を、Anthropic社のAI「Claude Code」で実現した事例を紹介しています。
従来のRoo Orchestratorの考え方を基に、AIがタスクをサブタスクに分割し、段階的に実行することで、処理コストを大幅に削減(例: 6ドルが1ドル未満に)し、速度向上も期待できます。
このOrchestratorは、Claude Codeの.claude/commands
という機能を利用して作られています。これは、特定のMarkdownファイルを配置するとAIがカスタムコマンド(例: /project:orchestrator
)として実行できる仕組みです。AI自身がサブタスクを処理する「Taskツール」と組み合わせることで、複雑な処理を効率的に進めます。
Orchestratorの主なプロセスは以下の5つのステップで構成されます。
- Initial Analysis(初期分析): まずタスク全体の範囲と要件を理解し、依存関係や実行順序を計画します。
- Step Planning(ステップ計画): タスクを2〜4つの段階的なステップに分解し、各ステップ内で複数のサブタスクを並行実行できるように計画します。
- Step-by-Step Execution(段階的実行): 各ステップ内のサブタスクを並列に実行し、完了を待ちます。前のステップで得られた必要な結果だけを次のステップに渡し、AIが一度に処理する情報量(コンテキスト)を最小限に抑えます。
- Step Review and Adaptation(ステップレビューと調整): 各ステップ完了後に結果を確認し、残りのステップが適切か検証します。新たな発見があれば、計画を柔軟に調整し、サブタスクを追加・変更します。
- Progressive Aggregation(段階的な統合): 完了したステップから得られた結果を統合し、それを次のステップの前提知識として活用することで、段階的に全体を理解を深めていきます。
これにより、「段階的な進行」「並列処理による効率化」「AIの『記憶』の最適化」「段階的な理解」「明確な依存関係」といった利点が生まれます。
例えば、TypeScriptプロジェクトの「分析、テスト、リンティング(コード品質チェック)、コミット」といった一連の作業をAIが自動で実行できます。テストやリンティングでエラーが見つかればAIが修正を試み、不要な修正ステップをスキップするなど、状況に応じて計画を柔軟に調整できます。
AIエージェントを効果的に活用するには、「最初にタスク全体を調査・計画」「サブタスクを並列実行」「各ステップ後に計画を見直し」が重要です。これにより、AIは複雑な開発タスクをより賢く、効率的にこなせるようになります。
引用元: https://zenn.dev/mizchi/articles/claude-code-orchestrator
この記事では、複数のAIエージェントが連携して動作する「マルチエージェントシステム」の設計パターンと性能について、LangChainの公式ブログが実施したベンチマーク結果を解説しています。
なぜマルチエージェントが必要か? これまでの単一AIエージェントは、扱うツールや情報(コンテキスト)が増えると性能が低下するという課題がありました。これは、人間が一度に処理できる情報量に限界があるのと似ています。そこで、役割ごとにエージェントを分割し、互いに連携させる「マルチエージェントシステム」が注目されています。これにより、システムがモジュール化され、開発・評価・保守がしやすくなる上、異なるチームが開発したエージェントを組み合わせることも可能になります。
3つの代表的なアーキテクチャ LangChainでは、代表的なマルチエージェントの連携方法として以下の3つを比較検証しました。
- Single Agent: 全てのツールと情報にアクセスできる従来の単一エージェントです。性能の基準となります。
- Swarm: 各エージェントがお互いの存在を認識し、必要に応じてタスクを他のエージェントに「ハンドオフ」(引き渡し)します。一度にアクティブになるのは1つのエージェントのみで、ユーザーへの応答は直接エージェントが行います。
- Supervisor: 「スーパーバイザー」と呼ばれる中心のエージェントが、ユーザーからの入力を受け取り、適切なサブエージェントに作業を割り振ります。サブエージェントの応答は一度スーパーバイザーに戻され、スーパーバイザーが最終的にユーザーに返答します。この方式はサブエージェントへの仮定が少なく、最も汎用性が高いのが特徴です。
ベンチマーク結果とSupervisorの改善 テストは、関連性のない「おとり」(ディストラクタ)情報を含むタスクで、エージェントがどう情報を選別し処理するかを評価しました。結果として、Single Agentはディストラクタが増えると性能が急激に低下しましたが、SwarmとSupervisorは比較的安定した性能を示しました。 特にSupervisorは、サブエージェントの応答をスーパーバイザーが「翻訳」してユーザーに伝える過程で、性能低下やトークン使用量の増加が見られました。これはまるで伝言ゲームのようで、情報がうまく伝わらないことが原因でした。
しかし、LangChainはSupervisorアーキテクチャにいくつかの重要な改善を施しました。
- ハンドオフメッセージの削除: サブエージェントのコンテキストから不要な情報を取り除き、処理能力を向上させました。
- メッセージの直接転送: スーパーバイザーがサブエージェントの応答を直接ユーザーに転送する機能を追加し、不正確な言い換えによるエラーを減らしました。 これらの改善により、Supervisorアーキテクチャの性能は約50%向上しました。
まとめ
マルチエージェントシステムは、今後のAIエージェント開発において非常に重要になると考えられています。特にSupervisorアーキテクチャは汎用性が高く、様々なシナリオで利用できる可能性があります。今回の研究で得られた情報伝達やコンテキスト管理の改善点は、langgraph-supervisor
というLangChainのパッケージに組み込まれており、エンジニアはこれを利用することで、高性能なマルチエージェントシステムを容易に構築できるようになります。
引用元: https://blog.langchain.dev/benchmarking-multi-agent-architectures/
OpenAI Agents SDKは、AIエージェントをTypeScriptで簡単に構築・管理するための軽量なパッケージです。以前の実験的なプロジェクト「Swarm」を本番環境向けに改良したもので、AIエージェント開発を始める新人エンジニアにとって非常に役立つツールです。
このSDKの主な特徴と機能は以下の通りです。
- エージェントの定義と実行:
- 基本的なAIエージェント(
Agent
クラス)をTypeScriptで簡単に定義できます。エージェントには「指示」(instructions
)や「使用するモデル」(model
)を設定し、特定のタスクを完了するまで自動で動作させられます。 run
関数を使ってエージェントを実行し、結果を受け取れます。リアルタイムな対話のために、結果をストリーミングで受け取ったり、Zodスキーマを使ってAIの出力形式を厳密に定義したりすることも可能です。- 対話履歴(
history
)を保持することで、チャットボットのように連続した会話も実現できます。
- 基本的なAIエージェント(
- 豊富なツール連携:
- エージェントが外部のデータや機能にアクセスするための「ツール」を柔軟に利用できます。
- ホスト型ツール: OpenAIのサーバー上で動くWeb検索、コード実行、画像生成などの組み込みツールをすぐに使えます。例えば、最新情報を取得するためにエージェントにWeb検索をさせられます。
- 関数ツール: TypeScriptの関数をツールとして定義し、Zodスキーマで入力・出力の型を明確にすることで、型安全に独自の機能(例:計算ツール)をエージェントに提供できます。
- エージェント自身をツールとして利用: 作成したエージェントを他のエージェントが呼び出せるツールとして登録し、専門性のあるエージェント同士で連携させることが可能です。
- 信頼性と制御の強化:
- ガードレール: エージェントへの入力や、エージェントが生成する出力を検証する機能です。これにより、不適切な内容をフィルタリングしたり、特定の形式(例:川柳)に沿っているかをチェックしたりして、エージェントの動作を安全に保てます。
- Human-in-the-Loop (HITL): エージェントが実行する重要なアクション(例:支払い)の前に、人間の承認を挟むことができます。これにより、意図しない自動実行を防ぎ、より安全なシステムを構築できます。
- 開発・デバッグ支援:
- トレース: エージェントのワークフローを視覚的に確認できる機能があり、デバッグや動作の監視に役立ちます。
OpenAI Agents SDKは、これらの機能を通じて、TypeScriptエンジニアがAIエージェントを開発・運用する際の生産性と信頼性を高めるための強力な基盤を提供します。
引用元: https://azukiazusa.dev/blog/openai-agents-sdk-typescript
VOICEVOX:ずんだもん