タコのように複数の腕で同時に作業する - Supervisor Agent が Claude と Codex をオーケストレーションして、並列実行でタスクを効率的に完遂する AI エージェントシステム。
Tako Agent は、ユーザーの指示を受け取り、Supervisor Agent(GPT)がリポジトリ構造を理解し、タスクを分解して、Claude や Codex といった複数のワーカーに並列で作業を指示するオーケストレーターです。
- Supervisor Agent パターン: GPT(Copilot API)が全体を統括、Worker(Claude/Codex)が実作業を担当
- LangGraph によるフロー管理: シンプルなループ構造で柔軟に対応
- 並列ワーカープール: 複数の Claude/Codex インスタンスが同時にタスクを実行
- OpenAI 互換 API:
/v1/chat/completionsとして外部から操作可能 - デュアルエグゼキュータ: Claude Code と Codex の両方に対応
- Copilot API 連携: GitHub Copilot を OpenAI 互換プロキシとして使用
- WebUI: プロジェクト管理、チャットUI、ストリーミングログ
- セッション復元: ページを離れても実行継続、復帰時に自動復元
┌─────────────────────────────────────────────────────────────────┐
│ Supervisor Agent (GPT) │
│ via Copilot API │
│ │
│ ┌───────────────────────────────────────────────────────────┐ │
│ │ Tools: │ │
│ │ - read_file: ファイル読み取り(AGENTS.md、ソース等) │ │
│ │ - list_files: ディレクトリ構造確認 │ │
│ │ - spawn_workers: Worker起動(並列実行) │ │
│ │ - run_command: シェルコマンド実行 │ │
│ │ - complete: 完了宣言 │ │
│ │ - fail: 失敗宣言 │ │
│ └───────────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│
│ spawn_workers
▼
┌─────────────────────────────────────────────────────────────────┐
│ Worker Pool │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Claude │ │ Claude │ │ Codex │ ... │
│ │ (review) │ │ (impl) │ │ (impl) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
START
│
▼
┌─────────────────────────────────────────┐
│ Supervisor Agent Loop │
│ │
│ 1. リポジトリ構造を確認 (list_files) │
│ 2. AGENTS.md を読んでルール把握 │
│ 3. タスクを分解 │
│ 4. spawn_workers で Worker 起動 │◀───┐
│ 5. 結果をレビュー │ │
│ 6. 必要なら追加タスク発行 ─────────────┼────┘
│ 7. 全完了なら complete │
└─────────────────────────────────────────┘
│
▼
END
| Executor | 得意なタスク |
|---|---|
| Claude | コード分析、レビュー、設計、複雑な判断 |
| Codex | 実装、コード生成、ファイル操作 |
Supervisor が各タスクに適切な executor を選択して指示を出します。レビューも Worker が実行します。
tako-agent/
├── packages/
│ ├── protocol/ # WorkOrder/WorkReport の JSON Schema + TypeScript 型
│ ├── tool-runtime/ # Shell/Git/FS/Desktop 操作の統一ツール層
│ ├── executor-codex/ # Codex CLI Adapter
│ ├── executor-claude/ # Claude Code CLI Adapter
│ └── provider-copilot/ # Copilot API Provider
├── apps/
│ ├── supervisor-backend/ # Supervisor Agent + API サーバー
│ │ └── src/
│ │ ├── supervisor/ # Supervisor Agent 実装
│ │ │ ├── agent.ts # Supervisor Agent 本体
│ │ │ ├── tools.ts # ツール定義
│ │ │ └── types.ts # 型定義
│ │ ├── graph/ # LangGraph フロー
│ │ └── workers/ # Worker Pool
│ ├── supervisor-ui/ # React WebUI
│ └── supervisor-tauri/ # Tauri デスクトップアプリ
└── configs/
└── policy/ # セキュリティポリシー設定
- Node.js 20+
- pnpm 9+
- Codex CLI または Claude Code CLI(少なくとも一方)
- GitHub Token(Copilot API 使用時)
# 依存関係のインストール
pnpm install
# ビルド
pnpm build# バックエンドを起動
pnpm --filter @supervisor/backend dev -- serve
# フロントエンドを起動(別ターミナル)
pnpm --filter @supervisor/ui dev
# ブラウザで http://localhost:5173 を開く# タスクを直接実行
pnpm --filter @supervisor/backend dev -- run "Add a login button to the homepage" --repo /path/to/project
# API サーバーのみ起動
pnpm --filter @supervisor/backend dev -- serve --port 3000import { runSimplifiedSupervisor } from '@supervisor/backend/graph/supervisor-graph';
const result = await runSimplifiedSupervisor({
userGoal: 'Fix the failing tests',
repoPath: '/path/to/project',
});
console.log(result.status); // 'completed' or 'failed'
console.log(result.final_summary);# Run 作成
curl -X POST http://localhost:3000/api/runs \
-H "Content-Type: application/json" \
-d '{
"goal": "Fix the failing tests",
"repo_path": "/path/to/project"
}'
# Run のステータス確認
curl http://localhost:3000/api/runs/{run_id}
# ワーカープールの状態確認
curl http://localhost:3000/api/runs/{run_id}/workers
# ストリーミングログ (SSE)
curl http://localhost:3000/api/events?run_id={run_id}Supervisor Agent は以下の役割を持ちます:
- リポジトリ理解:
list_filesとread_fileでコードベースを把握 - 仕様確認:
AGENTS.mdがあれば読んで開発ルールを理解 - タスク分解: ユーザー目標を独立した作業単位に分解
- 並列実行:
spawn_workersで複数タスクを同時に Worker に指示 - 結果レビュー: Worker の成果物を確認し、必要なら追加作業を指示
- 検証:
run_commandでテスト・ビルドを実行して品質確認 - 完了判定: 全てOKなら
complete、問題あればfail
| ツール | 説明 |
|---|---|
read_file |
ファイル内容を読み込む |
list_files |
ディレクトリ構造を確認 |
spawn_workers |
Worker を起動してタスクを並列実行 |
run_command |
シェルコマンドを実行(npm test 等) |
complete |
タスク完了を宣言 |
fail |
タスク失敗を宣言 |
- Projects: プロジェクトの作成・管理
- Chat: チャット形式でタスクを指示、リアルタイムログ表示
- Shell: 対話的なターミナル
- Settings: API キー設定、GitHub Token 設定
Settings ページで GitHub Token を設定すると、Copilot API が自動的に有効化されます。
Settings → GitHub Copilot API → GitHub Token を入力
チャット入力エリアのドロップダウンから Supervisor Agent が使用するモデルを選択できます。Copilot API が有効な場合、利用可能なモデル一覧が自動的に取得されます。
POST /v1/chat/completions- チャット完了GET /v1/models- モデル一覧
GET /api/runs- Run 一覧POST /api/runs- Run 作成GET /api/runs/:id- Run 詳細GET /api/runs/:id/workers- ワーカープール状態DELETE /api/runs/:id- Run 削除
GET /api/projects- プロジェクト一覧POST /api/projects- プロジェクト作成GET /api/projects/:id- プロジェクト詳細PUT /api/projects/:id- プロジェクト更新DELETE /api/projects/:id- プロジェクト削除
GET /api/settings- 設定取得PUT /api/settings- 設定更新
GET /api/copilot/status- Copilot API 状態GET /api/copilot/models- 利用可能なモデル一覧POST /api/copilot/start- Copilot API 開始POST /api/copilot/stop- Copilot API 停止
POST /api/shell/execute- コマンド実行
GET /api/events- SSE ストリーミングGET /api/logs/:runId- バッファされたログ
# 開発サーバー起動(ホットリロード)
pnpm dev
# 型チェック
pnpm build
# フロントエンドビルド(本番用)
pnpm --filter @supervisor/ui buildMIT