openclaw-mission-control

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Mission Control

Mission Control 任务指挥中心

Coordinate a team of AI agents using a Kanban-style task board with HTTP API.
使用带HTTP API的看板风格任务面板协调AI Agent团队。

Overview

概述

Mission Control lets you run multiple AI agents that collaborate on tasks:
  • Team Lead: Creates and assigns tasks, reviews completed work
  • Worker Agents: Poll for tasks via heartbeat, execute work, log progress
  • Kanban Board: Visual task management at
    http://localhost:8080
  • HTTP API: Agents interact via REST endpoints
  • Local Storage: All data stored in JSON files — no external database needed
Mission Control 允许你运行多个协作完成任务的AI Agent:
  • Team Lead:创建并分配任务,审核已完成工作
  • Worker Agent:通过心跳轮询获取任务、执行工作并记录进度
  • Kanban面板:在
    http://localhost:8080
    进行可视化任务管理
  • HTTP API:Agent通过REST端点交互
  • 本地存储:所有数据存储在JSON文件中,无需外部数据库

Quick Start

快速开始

1. Install the Kanban Board

1. 安装看板面板

bash
undefined
bash
undefined

Clone the Mission Control app

克隆Mission Control应用

Install dependencies

安装依赖

npm install
npm install

Start the server

启动服务器

npm run dev

The board runs at `http://localhost:8080`.
npm run dev

面板将在`http://localhost:8080`运行。

2. Configure Your Agents

2. 配置你的Agent

Edit
lib/config.ts
to define your agent team:
typescript
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,
};
编辑
lib/config.ts
来定义你的Agent团队:
typescript
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. Seed the Database (First Run)

3. 初始化数据库(首次运行)

Initialize the agents in the database:
bash
curl -X POST http://localhost:8080/api/seed
This creates agent records from your
lib/config.ts
configuration. Safe to run multiple times — it only adds missing agents.
在数据库中初始化Agent:
bash
curl -X POST http://localhost:8080/api/seed
这将从你的
lib/config.ts
配置中创建Agent记录。可安全多次运行——仅添加缺失的Agent。

4. Configure OpenClaw Multi-Agent Mode

4. 配置OpenClaw多Agent模式

Add each agent to your
~/.openclaw/config.json
:
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"
        }
      }
    ]
  }
}
Key fields:
  • id
    : Unique agent identifier (must match an agent ID in
    lib/config.ts
    )
  • workspace
    : Agent's working directory for files
  • agentDir
    : Contains
    SOUL.md
    ,
    HEARTBEAT.md
    , and agent personality
  • heartbeat.every
    : Polling frequency (e.g.,
    5m
    ,
    15m
    ,
    1h
    )
将每个Agent添加到你的
~/.openclaw/config.json
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
    :唯一的Agent标识符(必须与
    lib/config.ts
    中的Agent ID匹配)
  • workspace
    :Agent用于存储文件的工作目录
  • agentDir
    :包含
    SOUL.md
    HEARTBEAT.md
    和Agent个性设置
  • heartbeat.every
    :轮询频率(例如
    5m
    15m
    1h

5. Set up Agent Heartbeats

5. 设置Agent心跳

Each worker agent needs a
HEARTBEAT.md
in their
agentDir
:
markdown
undefined
每个Worker Agent需要在其
agentDir
中包含
HEARTBEAT.md
markdown
undefined

Agent Heartbeat

Agent Heartbeat

Step 1: Check for Tasks

Step 1: Check for Tasks

bash
curl "http://localhost:8080/api/tasks/mine?agent=writer"
undefined
bash
curl "http://localhost:8080/api/tasks/mine?agent=writer"
undefined

Step 2: Pick up
todo
tasks

Step 2: Pick up
todo
tasks

bash
curl -X POST "http://localhost:8080/api/tasks/{TASK_ID}/pick" \
  -H "Content-Type: application/json" \
  -d '{"agent": "writer"}'
bash
curl -X POST "http://localhost:8080/api/tasks/{TASK_ID}/pick" \
  -H "Content-Type: application/json" \
  -d '{"agent": "writer"}'

Step 3: Log Progress

Step 3: Log Progress

bash
curl -X POST "http://localhost:8080/api/tasks/{TASK_ID}/log" \
  -H "Content-Type: application/json" \
  -d '{"agent": "writer", "action": "progress", "note": "Working on..."}'
bash
curl -X POST "http://localhost:8080/api/tasks/{TASK_ID}/log" \
  -H "Content-Type: application/json" \
  -d '{"agent": "writer", "action": "progress", "note": "Working on..."}'

Step 4: Complete Tasks

Step 4: Complete Tasks

bash
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"]
  }'
bash
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"]
  }'

Step 5: Check for @Mentions

Step 5: Check for @Mentions

bash
curl "http://localhost:8080/api/mentions?agent=writer"
Mark as read when done.

Create the agent directories:

```bash
mkdir -p ~/.openclaw/agents/{writer,growth,dev,ux,data}/agent
mkdir -p ~/.openclaw/workspace-{writer,growth,dev,ux,data}

bash
curl "http://localhost:8080/api/mentions?agent=writer"
完成后标记为已读。

创建Agent目录:

```bash
mkdir -p ~/.openclaw/agents/{writer,growth,dev,ux,data}/agent
mkdir -p ~/.openclaw/workspace-{writer,growth,dev,ux,data}

Task Lifecycle

任务生命周期

backlog → todo → in_progress → review → done
   │        │         │           │
   │        │         │           └─ Team Lead approves
   │        │         └─ Agent completes (→ review)
   │        └─ Agent picks up (→ in_progress)
   └─ Team Lead prioritizes (→ todo)

backlog → todo → in_progress → review → done
   │        │         │           │
   │        │         │           └─ Team Lead 审批
   │        │         └─ Agent 完成(→ review)
   │        └─ Agent 领取(→ in_progress)
   └─ Team Lead 优先级排序(→ todo)

Team Lead Operations

Team Lead 操作

Creating a Task

创建任务

bash
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"
  }'
Priority:
urgent
,
high
,
medium
,
low
bash
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

Moving to Todo

移至待办

bash
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
  -H "Content-Type: application/json" \
  -d '{"status": "todo"}'
bash
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
  -H "Content-Type: application/json" \
  -d '{"status": "todo"}'

Approving Completed Work

审批已完成工作

bash
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
  -H "Content-Type: application/json" \
  -d '{"status": "done"}'
bash
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
  -H "Content-Type: application/json" \
  -d '{"status": "done"}'

Adding Deliverable Path

添加交付物路径

bash
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
  -H "Content-Type: application/json" \
  -d '{"deliverable": "path/to/file.md"}'

bash
curl -X PATCH "http://localhost:8080/api/tasks/{id}" \
  -H "Content-Type: application/json" \
  -d '{"deliverable": "path/to/file.md"}'

Worker Agent Operations

Worker Agent 操作

Picking Up Tasks

领取任务

bash
curl -X POST "http://localhost:8080/api/tasks/{id}/pick" \
  -H "Content-Type: application/json" \
  -d '{"agent": "{AGENT_ID}"}'
bash
curl -X POST "http://localhost:8080/api/tasks/{id}/pick" \
  -H "Content-Type: application/json" \
  -d '{"agent": "{AGENT_ID}"}'

Logging Progress

记录进度

bash
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"
  }'
Actions:
picked
,
progress
,
blocked
,
completed
bash
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

Completing a Task

完成任务

bash
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"]
  }'
Deliverables render as markdown in the task view.

bash
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格式显示。

Comments & @Mentions

评论与@提及

Adding a Comment

添加评论

bash
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"
  }'
bash
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"
  }'

Checking for @Mentions

查看@提及

bash
curl "http://localhost:8080/api/mentions?agent={AGENT_ID}"
bash
curl "http://localhost:8080/api/mentions?agent={AGENT_ID}"

Marking Mentions as Read

标记提及为已读

bash
curl -X POST "http://localhost:8080/api/mentions/read" \
  -H "Content-Type: application/json" \
  -d '{"agent": "{AGENT_ID}", "all": true}'

bash
curl -X POST "http://localhost:8080/api/mentions/read" \
  -H "Content-Type: application/json" \
  -d '{"agent": "{AGENT_ID}", "all": true}'

API Reference

API 参考

Tasks

任务

EndpointMethodDescription
/api/tasks
GETList all tasks
/api/tasks
POSTCreate new task
/api/tasks/{id}
GETGet task detail
/api/tasks/{id}
PATCHUpdate task fields
/api/tasks/{id}
DELETEDelete task
/api/tasks/mine?agent={id}
GETAgent's assigned tasks
/api/tasks/{id}/pick
POSTAgent picks up task
/api/tasks/{id}/log
POSTLog work action
/api/tasks/{id}/complete
POSTComplete task (→ review)
/api/tasks/{id}/comments
POSTAdd comment
端点方法描述
/api/tasks
GET列出所有任务
/api/tasks
POST创建新任务
/api/tasks/{id}
GET获取任务详情
/api/tasks/{id}
PATCH更新任务字段
/api/tasks/{id}
DELETE删除任务
/api/tasks/mine?agent={id}
GET获取Agent的已分配任务
/api/tasks/{id}/pick
POSTAgent领取任务
/api/tasks/{id}/log
POST记录工作操作
/api/tasks/{id}/complete
POST完成任务(→ 审核)
/api/tasks/{id}/comments
POST添加评论

Agents & System

Agent与系统

EndpointMethodDescription
/api/agents
GETList all agents
/api/seed
POSTInitialize agents (first run)
/api/mentions?agent={id}
GETGet unread @mentions
/api/mentions/read
POSTMark mentions as read
端点方法描述
/api/agents
GET列出所有Agent
/api/seed
POST初始化Agent(首次运行)
/api/mentions?agent={id}
GET获取未读@提及
/api/mentions/read
POST标记提及为已读

Files

文件

EndpointMethodDescription
/api/files/{path}
GETRead deliverable content

端点方法描述
/api/files/{path}
GET读取交付物内容

Recommended Agent Team Structure

推荐的Agent团队结构

AgentRoleResponsibilities
LeadTeam LeadStrategy, task creation, approvals
WriterContentBlog posts, documentation, copy
GrowthMarketingSEO, campaigns, outreach
DevEngineeringFeatures, bugs, code
UXProductDesign, activation, user flows
DataAnalyticsMetrics, reports, insights

Agent角色职责
LeadTeam Lead策略制定、任务创建、审批
Writer内容创作博客文章、文档、文案
Growth营销推广SEO、营销活动、对外拓展
Dev工程开发功能开发、Bug修复、代码编写
UX产品设计设计、用户激活、用户流程
Data数据分析指标统计、报告生成、洞察分析

Configuration

配置

Environment Variables

环境变量

Create
.env
in your Mission Control app directory (optional):
env
PORT=8080
在你的Mission Control应用目录中创建
.env
(可选):
env
PORT=8080

Data Storage

数据存储

All data is stored locally in the
data/
directory:
FileContents
data/tasks.json
All tasks, comments, work logs
data/agents.json
Agent status and metadata
data/mentions.json
@mention notifications
Add
data/
to your
.gitignore
— user data shouldn't be committed.

所有数据本地存储在
data/
目录中:
文件内容
data/tasks.json
所有任务、评论、工作日志
data/agents.json
Agent状态与元数据
data/mentions.json
@提及通知
data/
添加到你的
.gitignore
中——用户数据不应提交到版本库。

Example: Running a Multi-Agent Workflow

示例:运行多Agent工作流

  1. Lead creates task:
    bash
    curl -X POST http://localhost:8080/api/tasks \
      -H "Content-Type: application/json" \
      -d '{"title": "Write Q1 Report", "assignee": "writer", "priority": "high"}'
  2. Lead moves to todo:
    bash
    curl -X PATCH http://localhost:8080/api/tasks/123 \
      -d '{"status": "todo"}'
  3. Writer picks up via heartbeat:
    bash
    curl -X POST http://localhost:8080/api/tasks/123/pick \
      -d '{"agent": "writer"}'
  4. Writer completes:
    bash
    curl -X POST http://localhost:8080/api/tasks/123/complete \
      -d '{"agent": "writer", "deliverables": ["reports/q1.md"]}'
  5. Lead reviews and approves:
    bash
    curl -X PATCH http://localhost:8080/api/tasks/123 \
      -d '{"status": "done"}'

  1. Lead创建任务:
    bash
    curl -X POST http://localhost:8080/api/tasks \
      -H "Content-Type: application/json" \
      -d '{"title": "Write Q1 Report", "assignee": "writer", "priority": "high"}'
  2. Lead移至待办:
    bash
    curl -X PATCH http://localhost:8080/api/tasks/123 \
      -d '{"status": "todo"}'
  3. Writer通过心跳领取:
    bash
    curl -X POST http://localhost:8080/api/tasks/123/pick \
      -d '{"agent": "writer"}'
  4. Writer完成任务:
    bash
    curl -X POST http://localhost:8080/api/tasks/123/complete \
      -d '{"agent": "writer", "deliverables": ["reports/q1.md"]}'
  5. Lead审核并批准:
    bash
    curl -X PATCH http://localhost:8080/api/tasks/123 \
      -d '{"status": "done"}'

Tips

小贴士

  • Heartbeat frequency: 15 minutes is a good default
  • Priority order: Agents should work
    urgent
    high
    medium
    low
  • Deliverables: Include all file paths modified in the task
  • @Mentions: Use to coordinate between agents on dependencies
  • Isolation: Each agent has its own workspace for safety
  • Storage: Data persists in
    data/
    directory — back it up if needed

  • 心跳频率:15分钟是不错的默认值
  • 优先级顺序:Agent应按
    urgent
    high
    medium
    low
    的顺序工作
  • 交付物:包含任务中修改的所有文件路径
  • @提及:用于在Agent之间协调依赖关系
  • 隔离性:每个Agent有自己的工作区以确保安全
  • 存储:数据保存在
    data/
    目录中——如有需要请备份

Resources

资源