マルチエージェント開発基盤の設計と実装
複数のAIエージェントを協調させる開発基盤の設計思想と、tmux + Claude Codeによる実装アプローチを紹介します。
マルチエージェントAIアーキテクチャ
マルチエージェント開発の課題
単一のAIエージェントでは、大規模なプロジェクトの並列処理に限界があります。マルチエージェント開発基盤は、複数のAIエージェントに役割を分担させ、並列で開発作業を進める仕組みです。
階層型アーキテクチャの設計
当社が活用している基盤では、3層の階層構造を採用しています。
- 統括層: プロジェクト全体の方針決定とタスクの優先度管理
- 管理層: タスクの分解・割り当て・進捗監視
- 実行層: 実際のコーディング・テスト・ドキュメント作成
この階層構造により、指示の伝達ミスを防ぎ、各エージェントの責務を明確にしています。
通信プロトコルの設計
エージェント間の通信には、YAMLファイルベースの非同期メッセージングを採用しました。
# queue/tasks/a1.yaml
task_id: subtask_001
status: assigned
title: "ブログ機能の実装"
instructions: |
Content Collectionsを使ったブログ機能を実装せよ。
ポーリングによるAPI消費を避けるため、tmuxのsend-keys機能を使ったイベント駆動型の通知を実装しています。これにより、エージェントは指示がない間はアイドル状態を維持し、コストを最小化しています。
コンテキスト管理の工夫
AIエージェントのコンテキストウィンドウは有限です。長時間の作業ではコンテキストが圧縮(コンパクション)されるため、重要な情報が失われるリスクがあります。
これを解決するため、4層のコンテキスト管理モデルを設計しました。
- Memory MCP: セッション横断で永続化すべき知見
- プロジェクト設定: プロジェクト固有の技術情報
- YAML Queue: タスクの正データ
- Session: 揮発性のワーキングメモリ
得られた知見
マルチエージェント基盤の運用から得られた最も重要な教訓は、「指示の明確さがアウトプットの品質を決める」ということです。曖昧な指示はエージェントの判断ミスを誘発します。タスクの粒度設計とコンテキスト提供の質が、基盤全体の生産性を左右します。