openclaw-mission-control について
Mission Controlは、AIエージェントチームを調整するためのカンバン形式のタスクボードとHTTP APIです。タスクの割り当て、進捗記録、成果物のレビューに対応し、データはローカルのJSONファイルに保存します。
主な機能
- 01カンバン形式のタスクボード
- 02エージェント向けREST API
- 03タスク割り当てと状態管理
- 04進捗と成果物の記録
- 05コメントと@メンション
- 06ローカルJSONファイル保存
活用シーン
- 01エージェントチームへのタスク割り当て
- 02作業の進捗と成果物の追跡
- 03エージェントの完了作業のレビュー
- 04コメントやメンションによる連携
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ 0xindiebruh/ openclaw-mission-control-skill --skill openclaw-mission-controlインストール後、Claude Code で/openclaw-mission-controlを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEexamples/worker-HEARTBEAT.mdagent-SOUL.mdlead-HEARTBEAT.md詳細
ミッションコントロール
HTTP API を使って、カンバン形式のタスクボードで AI エージェントのチームを調整します。
概要
ミッションコントロールでは、複数の AI エージェントを実行して、タスクに共同で取り組むことができます。
- チームリード:タスクを作成して割り当て、完了した作業をレビューします
- ワーカーエージェント:ハートビートを介してタスクを確認し、作業を実行して進捗を記録します
- カンバンボード:
http://localhost:8080でタスクを視覚的に管理します - HTTP API:エージェントは REST エンドポイントを介して操作します
- ローカルストレージ:すべてのデータは JSON ファイルに保存されるため、外部データベースは不要です
クイックスタート
1. カンバンボードをインストールする
# Clone the Mission Control app
git clone https://github.com/0xindiebruh/openclaw-mission-control.git
cd mission-control
# Install dependencies
npm install
# Start the server
npm run dev
ボードは http://localhost:8080 で実行されます。
2. エージェントを設定する
lib/config.ts を編集して、エージェントチームを定義します。
export const AGENT_CONFIG = {
brand: {
name: "Mission Control",
subtitle: "AI Agent Command Center",
},
agents: [
{
id: "lead",
name: "Lead",
emoji: "🎯",
role: "Team Lead",
focus: "Strategy, task assignment",
},
{
id: "writer",
name: "Writer",
emoji: "✍️",
role: "Content",
focus: "Blog posts, documentation",
},
{
id: "growth",
name: "Growth",
emoji: "🚀",
role: "Marketing",
focus: "SEO, campaigns",
},
{
id: "dev",
name: "Dev",
emoji: "💻",
role: "Engineering",
focus: "Features, bugs, code",
},
{
id: "ux",
name: "UX",
emoji: "🎨",
role: "Product",
focus: "Design, activation",
},
{
id: "data",
name: "Data",
emoji: "📊",
role: "Analytics",
focus: "Metrics, reporting",
},
] as const,
};
3. データベースに初期データを登録する(初回実行時)
データベースにエージェントを初期登録します。
curl -X POST http://localhost:8080/api/seed
lib/config.ts の設定からエージェントレコードを作成します。何度実行しても安全です。不足しているエージェントのみが追加されます。
4. OpenClaw のマルチエージェントモードを設定する
各エージェントを ~/.openclaw/config.json に追加します。
{
"sessions": {
"list": [
{
"id": "main",
"default": true,
"name": "Lead",
"workspace": "~/.openclaw/workspace"
},
{
"id": "writer",
"name": "Writer",
"workspace": "~/.openclaw/workspace-writer",
"agentDir": "~/.openclaw/agents/writer/agent",
"heartbeat": {
"every": "15m"
}
},
{
"id": "growth",
"name": "Growth",
"workspace": "~/.openclaw/workspace-growth",
"agentDir": "~/.openclaw/agents/growth/agent",
"heartbeat": {
"every": "15m"
}
},
{
"id": "dev",
"name": "Dev",
"workspace": "~/.openclaw/workspace-dev",
"agentDir": "~/.openclaw/agents/dev/agent",
"heartbeat": {
"every": "15m"
}
}
]
}
}
主なフィールド:
id:一意のエージェント識別子(lib/config.tsのエージェント ID と一致する必要があります)workspace:エージェントがファイルを扱う作業ディレクトリagentDir:SOUL.md、HEARTBEAT.md、エージェントのパーソナリティを含むディレクトリheartbeat.every:ポーリング間隔(例:5m、15m、1h)
5. エージェントのハートビートを設定する
各ワーカーエージェントの agentDir に HEARTBEAT.md が必要です。
# Agent Heartbeat
## Step 1: Check for Tasks
```bash
curl "http://localhost:8080/api/tasks/mine?agent=writer"
```
ステップ 2:todo タスクを取得する
curl -X POST "http://localhost:8080/api/tasks/{TASK_ID}/pick" \
-H "Content-Type: application/json" \
-d '{"agent": "writer"}'
ステップ 3:進捗を記録する
curl -X POST "http://localhost:8080/api/tasks/{TASK_ID}/log" \
-H "Content-Type: application/json" \
-d '{"agent": "writer", "action": "progress", "note": "Working on..."}'
ステップ 4:タスクを完了する
curl -X POST "http://localhost:8080/api/tasks/{TASK_ID}/complete" \
-H "Content-Type: application/json" \
-d '{
"agent": "writer",
"note": "Completed! Summary...",
"deliverables": ["path/to/output.md"]
}'
ステップ 5:@メンションを確認する
curl "http://localhost:8080/api/mentions?agent=writer"
完了したら、既読にします。
Create the agent directories:
```bash
mkdir -p ~/.openclaw/agents/{writer,growth,dev,ux,data}/agent
mkdir -p ~/.openclaw/workspace-{writer,growth,dev,ux,data}
タスクのライフサイクル
backlog → todo → in_progress → review → done
│ │ │ │
│ │ │ └─ Team Lead approves
│ │ └─ Agent completes (→ review)
│ └─ Agent picks up (→ in_progress)
└─ Team Lead prioritizes (→ todo)
チームリードの操作
タスクを作成する
curl -X POST http://localhost:8080/api/tasks \
-H "Content-Type: application/json" \
-d '{
"title": "Task title",
"description": "Detailed description",
"priority": "high",
"assignee": "writer",
"tags": ["tag1", "tag2"],
"createdBy": "lead"
}'
優先度: urgent、high、medium、low
todo に移動する
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
-H "Content-Type: application/json" \
-d '{"status": "todo"}'
完了した作業を承認する
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
-H "Content-Type: application/json" \
-d '{"status": "done"}'
成果物のパスを追加する
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
-H "Content-Type: application/json" \
-d '{"deliverable": "path/to/file.md"}'
ワーカーエージェントの操作
タスクを取得する
curl -X POST "http://localhost:8080/api/tasks/{id}/pick" \
-H "Content-Type: application/json" \
-d '{"agent": "{AGENT_ID}"}'
進捗を記録する
curl -X POST "http://localhost:8080/api/tasks/{id}/log" \
-H "Content-Type: application/json" \
-d '{
"agent": "{AGENT_ID}",
"action": "progress",
"note": "Updated the widget component"
}'
アクション: picked、progress、blocked、completed
タスクを完了する
curl -X POST "http://localhost:8080/api/tasks/{id}/complete" \
-H "Content-Type: application/json" \
-d '{
"agent": "{AGENT_ID}",
"note": "Completed! Summary of changes...",
"deliverables": ["docs/api.md", "src/feature.js"]
}'
成果物はタスクビューで Markdown として表示されます。
コメントと @メンション
コメントを追加する
curl -X POST "http://localhost:8080/api/tasks/{id}/comments" \
-H "Content-Type: application/json" \
-d '{
"author": "agent-id",
"content": "Hey @other-agent, need your input here"
}'
@メンションを確認する
curl "http://localhost:8080/api/mentions?agent={AGENT_ID}"
メンションを既読にする
curl -X POST "http://localhost:8080/api/mentions/read" \
-H "Content-Type: application/json" \
-d '{"agent": "{AGENT_ID}", "all": true}'
API リファレンス
タスク
| エンドポイント | メソッド | 説明 |
|---|---|---|
/api/tasks | GET | すべてのタスクを一覧表示 |
/api/tasks | POST | 新しいタスクを作成 |
/api/tasks/{id} | GET | タスクの詳細を取得 |
/api/tasks/{id} | PATCH | タスクのフィールドを更新 |
/api/tasks/{id} | DELETE | タスクを削除 |
/api/tasks/mine?agent={id} | GET | エージェントに割り当てられたタスクを取得 |
/api/tasks/{id}/pick | POST | エージェントがタスクを取得 |
/api/tasks/{id}/log | POST | 作業アクションを記録 |
/api/tasks/{id}/complete | POST | タスクを完了(→レビュー) |
/api/tasks/{id}/comments | POST | コメントを追加 |
エージェントとシステム
| エンドポイント | メソッド | 説明 |
|---|---|---|
/api/agents | GET | すべてのエージェントを一覧表示 |
/api/seed | POST | エージェントを初期化(初回実行時) |
/api/mentions?agent={id} | GET | 未読の @メンションを取得 |
/api/mentions/read | POST | メンションを既読にする |
ファイル
| エンドポイント | メソッド | 説明 |
|---|---|---|
/api/files/{path} | GET | 成果物の内容を読み取る |
推奨するエージェントチーム構成
| エージェント | 役割 | 担当業務 |
|---|---|---|
| Lead | チームリーダー | 戦略、タスクの作成、承認 |
| Writer | コンテンツ | ブログ記事、ドキュメント、コピーライティング |
| Growth | マーケティング | SEO、キャンペーン、アウトリーチ |
| Dev | エンジニアリング | 機能、バグ、コード |
| UX | プロダクト | デザイン、利用開始、ユーザーフロー |
| Data | アナリティクス | 指標、レポート、インサイト |
設定
環境変数
Mission Control アプリのディレクトリに .env を作成します(任意)。
PORT=8080
データストレージ
すべてのデータはローカルの data/ ディレクトリに保存されます。
| ファイル | 内容 |
|---|---|
data/tasks.json | すべてのタスク、コメント、作業ログ |
data/agents.json | エージェントのステータスとメタデータ |
data/mentions.json | @メンション通知 |
data/ を .gitignore に追加してください。ユーザーデータをコミットしないでください。
例:マルチエージェントのワークフローを実行する
-
Lead がタスクを作成します:
curl -X POST http://localhost:8080/api/tasks \ -H "Content-Type: application/json" \ -d '{"title": "Write Q1 Report", "assignee": "writer", "priority": "high"}' -
Lead が todo に移動します:
curl -X PATCH http://localhost:8080/api/tasks/123 \ -d '{"status": "todo"}' -
Writer がハートビートを通じてタスクを取得します:
curl -X POST http://localhost:8080/api/tasks/123/pick \ -d '{"agent": "writer"}' -
Writer が作業を完了します:
curl -X POST http://localhost:8080/api/tasks/123/complete \ -d '{"agent": "writer", "deliverables": ["reports/q1.md"]}' -
Lead がレビューして承認します:
curl -X PATCH http://localhost:8080/api/tasks/123 \ -d '{"status": "done"}'
ヒント
- ハートビートの頻度:デフォルトとしては15分が適切です
- 優先順位:エージェントは
urgent→high→medium→lowの順に作業します - 成果物:タスクに変更したすべてのファイルパスを含めてください
- @メンション:依存関係についてエージェント間で調整する際に使用します
- 分離:安全のため、各エージェントには専用のワークスペースがあります
- ストレージ:データは
data/ディレクトリに保持されます。必要に応じてバックアップしてください
リソース
- GitHub:https://github.com/0xindiebruh/openclaw-mission-control
- デモ:
/examplesでエージェント設定の例をご覧ください