openclaw-mission-control
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMission 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
undefinedbash
undefinedClone the Mission Control app
克隆Mission Control应用
git clone https://github.com/0xindiebruh/openclaw-mission-control.git
cd mission-control
git clone https://github.com/0xindiebruh/openclaw-mission-control.git
cd 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 to define your agent team:
lib/config.tstypescript
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,
};编辑来定义你的Agent团队:
lib/config.tstypescript
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/seedThis creates agent records from your configuration. Safe to run multiple times — it only adds missing agents.
lib/config.ts在数据库中初始化Agent:
bash
curl -X POST http://localhost:8080/api/seed这将从你的配置中创建Agent记录。可安全多次运行——仅添加缺失的Agent。
lib/config.ts4. Configure OpenClaw Multi-Agent Mode
4. 配置OpenClaw多Agent模式
Add each agent to your :
~/.openclaw/config.jsonjson
{
"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:
- : Unique agent identifier (must match an agent ID in
id)lib/config.ts - : Agent's working directory for files
workspace - : Contains
agentDir,SOUL.md, and agent personalityHEARTBEAT.md - : Polling frequency (e.g.,
heartbeat.every,5m,15m)1h
将每个Agent添加到你的:
~/.openclaw/config.jsonjson
{
"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"
}
}
]
}
}关键字段:
- :唯一的Agent标识符(必须与
id中的Agent ID匹配)lib/config.ts - :Agent用于存储文件的工作目录
workspace - :包含
agentDir、SOUL.md和Agent个性设置HEARTBEAT.md - :轮询频率(例如
heartbeat.every、5m、15m)1h
5. Set up Agent Heartbeats
5. 设置Agent心跳
Each worker agent needs a in their :
HEARTBEAT.mdagentDirmarkdown
undefined每个Worker Agent需要在其中包含:
agentDirHEARTBEAT.mdmarkdown
undefinedAgent Heartbeat
Agent Heartbeat
Step 1: Check for Tasks
Step 1: Check for Tasks
bash
curl "http://localhost:8080/api/tasks/mine?agent=writer"undefinedbash
curl "http://localhost:8080/api/tasks/mine?agent=writer"undefinedStep 2: Pick up todo
tasks
todoStep 2: Pick up todo
tasks
todobash
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: , , ,
urgenthighmediumlowbash
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"
}'优先级: 、、、
urgenthighmediumlowMoving 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: , , ,
pickedprogressblockedcompletedbash
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"
}'操作类型: 、、、
pickedprogressblockedcompletedCompleting 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
任务
| Endpoint | Method | Description |
|---|---|---|
| GET | List all tasks |
| POST | Create new task |
| GET | Get task detail |
| PATCH | Update task fields |
| DELETE | Delete task |
| GET | Agent's assigned tasks |
| POST | Agent picks up task |
| POST | Log work action |
| POST | Complete task (→ review) |
| POST | Add comment |
| 端点 | 方法 | 描述 |
|---|---|---|
| GET | 列出所有任务 |
| POST | 创建新任务 |
| GET | 获取任务详情 |
| PATCH | 更新任务字段 |
| DELETE | 删除任务 |
| GET | 获取Agent的已分配任务 |
| POST | Agent领取任务 |
| POST | 记录工作操作 |
| POST | 完成任务(→ 审核) |
| POST | 添加评论 |
Agents & System
Agent与系统
| Endpoint | Method | Description |
|---|---|---|
| GET | List all agents |
| POST | Initialize agents (first run) |
| GET | Get unread @mentions |
| POST | Mark mentions as read |
| 端点 | 方法 | 描述 |
|---|---|---|
| GET | 列出所有Agent |
| POST | 初始化Agent(首次运行) |
| GET | 获取未读@提及 |
| POST | 标记提及为已读 |
Files
文件
| Endpoint | Method | Description |
|---|---|---|
| GET | Read deliverable content |
| 端点 | 方法 | 描述 |
|---|---|---|
| GET | 读取交付物内容 |
Recommended Agent Team Structure
推荐的Agent团队结构
| Agent | Role | Responsibilities |
|---|---|---|
| Lead | Team Lead | Strategy, task creation, approvals |
| Writer | Content | Blog posts, documentation, copy |
| Growth | Marketing | SEO, campaigns, outreach |
| Dev | Engineering | Features, bugs, code |
| UX | Product | Design, activation, user flows |
| Data | Analytics | Metrics, reports, insights |
| Agent | 角色 | 职责 |
|---|---|---|
| Lead | Team Lead | 策略制定、任务创建、审批 |
| Writer | 内容创作 | 博客文章、文档、文案 |
| Growth | 营销推广 | SEO、营销活动、对外拓展 |
| Dev | 工程开发 | 功能开发、Bug修复、代码编写 |
| UX | 产品设计 | 设计、用户激活、用户流程 |
| Data | 数据分析 | 指标统计、报告生成、洞察分析 |
Configuration
配置
Environment Variables
环境变量
Create in your Mission Control app directory (optional):
.envenv
PORT=8080在你的Mission Control应用目录中创建(可选):
.envenv
PORT=8080Data Storage
数据存储
All data is stored locally in the directory:
data/| File | Contents |
|---|---|
| All tasks, comments, work logs |
| Agent status and metadata |
| @mention notifications |
Add to your — user data shouldn't be committed.
data/.gitignore所有数据本地存储在目录中:
data/| 文件 | 内容 |
|---|---|
| 所有任务、评论、工作日志 |
| Agent状态与元数据 |
| @提及通知 |
将添加到你的中——用户数据不应提交到版本库。
data/.gitignoreExample: Running a Multi-Agent Workflow
示例:运行多Agent工作流
-
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"}' -
Lead moves to todo:bash
curl -X PATCH http://localhost:8080/api/tasks/123 \ -d '{"status": "todo"}' -
Writer picks up via heartbeat:bash
curl -X POST http://localhost:8080/api/tasks/123/pick \ -d '{"agent": "writer"}' -
Writer completes:bash
curl -X POST http://localhost:8080/api/tasks/123/complete \ -d '{"agent": "writer", "deliverables": ["reports/q1.md"]}' -
Lead reviews and approves:bash
curl -X PATCH http://localhost:8080/api/tasks/123 \ -d '{"status": "done"}'
-
Lead创建任务:bash
curl -X POST http://localhost:8080/api/tasks \ -H "Content-Type: application/json" \ -d '{"title": "Write Q1 Report", "assignee": "writer", "priority": "high"}' -
Lead移至待办:bash
curl -X PATCH http://localhost:8080/api/tasks/123 \ -d '{"status": "todo"}' -
Writer通过心跳领取:bash
curl -X POST http://localhost:8080/api/tasks/123/pick \ -d '{"agent": "writer"}' -
Writer完成任务:bash
curl -X POST http://localhost:8080/api/tasks/123/complete \ -d '{"agent": "writer", "deliverables": ["reports/q1.md"]}' -
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→mediumlow - 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 directory — back it up if needed
data/
- 心跳频率:15分钟是不错的默认值
- 优先级顺序:Agent应按→
urgent→high→medium的顺序工作low - 交付物:包含任务中修改的所有文件路径
- @提及:用于在Agent之间协调依赖关系
- 隔离性:每个Agent有自己的工作区以确保安全
- 存储:数据保存在目录中——如有需要请备份
data/
Resources
资源
- GitHub: https://github.com/0xindiebruh/openclaw-mission-control
- Demo: See example agent setups in
/examples
- GitHub:https://github.com/0xindiebruh/openclaw-mission-control
- 示例:查看中的Agent设置示例
/examples