mcpField
O
openclaw-mission-control

openclaw-mission-control

github.com/0xindiebruhエージェントワークフロー0371 回インストール38 週間前に更新
リポジトリ

openclaw-mission-control について

Mission Controlは、AIエージェントチームを調整するためのカンバン形式のタスクボードとHTTP APIです。タスクの割り当て、進捗記録、成果物のレビューに対応し、データはローカルのJSONファイルに保存します。

主な機能

  1. 01カンバン形式のタスクボード
  2. 02エージェント向けREST API
  3. 03タスク割り当てと状態管理
  4. 04進捗と成果物の記録
  5. 05コメントと@メンション
  6. 06ローカルJSONファイル保存

活用シーン

  1. 01エージェントチームへのタスク割り当て
  2. 02作業の進捗と成果物の追跡
  3. 03エージェントの完了作業のレビュー
  4. 04コメントやメンションによる連携

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/0xindiebruh/openclaw-mission-control-skill --skill openclaw-mission-control

インストール後、Claude Code で/openclaw-mission-controlを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

LICENSE
examples/
worker-HEARTBEAT.md
agent-SOUL.md
lead-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/tasksGETすべてのタスクを一覧表示
/api/tasksPOST新しいタスクを作成
/api/tasks/{id}GETタスクの詳細を取得
/api/tasks/{id}PATCHタスクのフィールドを更新
/api/tasks/{id}DELETEタスクを削除
/api/tasks/mine?agent={id}GETエージェントに割り当てられたタスクを取得
/api/tasks/{id}/pickPOSTエージェントがタスクを取得
/api/tasks/{id}/logPOST作業アクションを記録
/api/tasks/{id}/completePOSTタスクを完了(→レビュー)
/api/tasks/{id}/commentsPOSTコメントを追加
エージェントとシステム
エンドポイントメソッド説明
/api/agentsGETすべてのエージェントを一覧表示
/api/seedPOSTエージェントを初期化(初回実行時)
/api/mentions?agent={id}GET未読の @メンションを取得
/api/mentions/readPOSTメンションを既読にする
ファイル
エンドポイントメソッド説明
/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 に追加してください。ユーザーデータをコミットしないでください。


例:マルチエージェントのワークフローを実行する

  1. Lead がタスクを作成します:

    curl -X POST http://localhost:8080/api/tasks \
      -H "Content-Type: application/json" \
      -d '{"title": "Write Q1 Report", "assignee": "writer", "priority": "high"}'
    
  2. Lead が todo に移動します:

    curl -X PATCH http://localhost:8080/api/tasks/123 \
      -d '{"status": "todo"}'
    
  3. Writer がハートビートを通じてタスクを取得します:

    curl -X POST http://localhost:8080/api/tasks/123/pick \
      -d '{"agent": "writer"}'
    
  4. Writer が作業を完了します:

    curl -X POST http://localhost:8080/api/tasks/123/complete \
      -d '{"agent": "writer", "deliverables": ["reports/q1.md"]}'
    
  5. Lead がレビューして承認します:

    curl -X PATCH http://localhost:8080/api/tasks/123 \
      -d '{"status": "done"}'
    

ヒント

  • ハートビートの頻度:デフォルトとしては15分が適切です
  • 優先順位:エージェントは urgent → high → medium → low の順に作業します
  • 成果物:タスクに変更したすべてのファイルパスを含めてください
  • @メンション:依存関係についてエージェント間で調整する際に使用します
  • 分離:安全のため、各エージェントには専用のワークスペースがあります
  • ストレージ:データは data/ ディレクトリに保持されます。必要に応じてバックアップしてください

リソース

コメント