team-dispatch

Use when a request requires multi-agent workflow orchestration (task decomposition + dependency/DAG + parallel execution), needs durable task tracking across context compaction, or needs retries/fallbacks and completion notifications.

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "team-dispatch" with this command: npx skills add vvusu/team-dispatch

🚀 Team Dispatch v1.0.8 — Multi-Agent Workflow Orchestration

一句需求 → 自动分析 → 智能拆解 → DAG 派发 → 故障重试 → 自动交付。


⚡ 第〇步:自动安装与环境检测(必须首先执行)

真实项目代码空间(默认)

  • 默认真实项目/仓库目录:~/work(可通过 <SKILL_DIR>/config.json~/.openclaw/configs/team-dispatch.jsonpaths.projectsRoot 修改)
  • 约定:每个项目在 paths.projectsRoot/<project> 下创建与产出代码(而不是放在 ~/.openclaw/workspace/
  • setup.sh 会自动创建该目录(若不存在)

Agent 读到本文件后,必须先执行以下检测流程,确认系统就绪后再处理用户需求。 新用户首次安装、或已有用户技能更新后,均走此流程。

SKILL_DIR 解析

<SKILL_DIR> = 本 SKILL.md 文件所在的目录。 Agent 应从自身读取本文件的路径自动推导,例如:

  • 若从 /Users/xxx/skills/team-dispatch/SKILL.md 读取,则 SKILL_DIR=/Users/xxx/skills/team-dispatch
  • 若从软连接 ~/.openclaw/skills/team-dispatch/SKILL.md 读取,用 readlink 解析真实路径

一键安装

直接运行安装脚本即可完成全部配置:

bash <SKILL_DIR>/scripts/setup.sh

如果遇到模型 404/quota 问题,可追加基线模型参数:

bash <SKILL_DIR>/scripts/setup.sh --baseline-models

安装脚本自动完成的 8 项配置

setup.sh 会自动检测并配置以下所有项目,已存在的不覆盖:

#配置项说明
1软连接~/.openclaw/skills/team-dispatch → <SKILL_DIR>
2任务目录(使用安装用户的主工作区)~/.openclaw/workspace/tasks/{active,done,templates}(不会创建额外的 main 工作区)
3项目模板复制 project.json 到 templates/
4用户配置生成 ~/.openclaw/configs/team-dispatch.json(语言、通知策略、团队显示名)
5子 Agent agentDir 模板全新安装:cp -R <SKILL_DIR>/assets/agents/<id> ~/.openclaw/agents/<id>(内含 workspace 模板 + 预置文件)
6补齐缺失文件已有 ~/.openclaw/agents/<id>:仅补齐 workspace/ 下缺失文件,不覆盖用户改动;并创建 sessions/
7写入 openclaw.jsonagents.list 中确保存在 main(dispatcher/root)并配置 main.subagents.allowAgents: ["*"];同时写入 7 个子 Agent 配置(含 workspace、identity、model),已存在的补齐缺失字段
8重启 Gateway配置写入后自动重启 Gateway 使生效

子 Agent 完整配置规范

openclaw.jsonagents.list 中:必须存在 main(dispatcher/root),并在 main 上配置 subagents.allowAgents

main agent 配置示例(安装时应确保存在/补齐)

{
  "id": "main",
  "default": true,
  "name": "main",
  "workspace": "/Users/vvusu/.openclaw/workspace",
  "agentDir": "/Users/vvusu/.openclaw/agents/main/agent",
  "model": "openai-codex/gpt-5.4",
  "identity": {
    "name": "调度台",
    "emoji": "🎯"
  },
  "subagents": {
    "allowAgents": ["*"]
  }
}

子 Agent 配置示例

{
  "id": "<agentId>",
  "name": "<中文名>",
  "workspace": "~/.openclaw/agents/<agentId>/workspace",
  "model": {
    "primary": "<见下方模型选择策略>",
    "fallbacks": ["bailian/qwen3.5-plus", "bailian/kimi-k2.5", "zai/glm-4.7"]
  },
  "tools": { "profile": "<coding|full>" },
  "skills": [],
  "identity": {
    "name": "<中文名>",
    "emoji": "<角色 emoji>",
    "theme": "<英文角色描述>"
  }
}

模型选择策略

  • coderopenai-codex/gpt-5.3-codex(OAuth,专为编码优化)
  • 其他 Agent → openai-codex/gpt-5.4(OAuth,通用稳定)
  • fallbacks 从用户已配置的 providers 中选取,确保不会 404

工具集分配

  • coder, tester"coding"
  • product, research, trader, writer"full"

子 Agent Workspace 结构

每个子 Agent 拥有独立的 agentDir + workspace + sessions(符合 OpenClaw 多 Agent 目录规范),互不干扰。

全新安装(您指定的逻辑)

cp -R <SKILL_DIR>/assets/agents/<id> ~/.openclaw/agents/<id>

模板目录结构为:

<SKILL_DIR>/assets/agents/<id>/
└── workspace/
        ├── AGENTS.md
        ├── SOUL.md
        ├── IDENTITY.md
        ├── USER.md
        ├── TOOLS.md
        ├── HEARTBEAT.md
        ├── BOOTSTRAP.md
        └── .openclaw/workspace-state.json

安装后运行时会在以下位置写入会话与状态:

~/.openclaw/agents/<id>/sessions/

已有安装(升级/补齐)

  • ~/.openclaw/agents/<id> 已存在:只补齐 workspace/ 下缺失文件,不覆盖用户已修改的文件
  • sessions/ 若缺失会自动创建(本技能脚本也会 mkdir -p

注:子 Agent 通过 sessions_spawn 启动时只注入 AGENTS.md + TOOLS.md,但完整的 workspace 文件在 Agent 作为独立 agent(而非 subagent)运行时会全部加载。

团队成员一览

agentId中文名Emojiworkspace工具集角色定位
coder闪电⚡️workspace-codercoding编码开发专家
product诺娃🧭workspace-productfull产品规划专家
tester亚特拉斯🔍workspace-testercoding测试验证专家
research露娜🔭workspace-researchfull调研搜索专家
trader泰坦📈workspace-traderfull投资分析专家
writer萊拉✒️workspace-writerfull内容写作专家
shield盾卫🛡️workspace-shieldfull安全审计专家

检测通过后的输出

安装脚本或 Agent 检测全部通过后,向用户确认:

✅ Team Dispatch 环境就绪!
- 软连接:✅
- 任务目录:✅
- 项目模板:✅
- 用户配置:✅(语言:zh/en)
- 子 Agent Workspace:✅(7 个独立工作目录 + AGENTS.md)
- 子 Agent 配置:✅(workspace + identity + model 完整)
- Gateway:✅(已重启生效)

系统已准备好接收任务,请告诉我您想要完成什么?

常见安装问题与自动修复

问题原因修复方式
子 Agent 没有独立 workspace旧版技能未配置重新运行 setup.sh,自动创建并补齐
子 Agent 没有角色指令缺少 AGENTS.mdsetup.sh 从 assets/agents/ 复制模板
子 Agent 不知道自己是谁缺少 identity 配置setup.sh 自动写入 identity 字段
用户配置不完整手动创建了简化版用 <SKILL_DIR>/config.json 覆盖
模型 404 / quota 错误模型不可用运行 setup.sh --baseline-models

🌍 国际化(i18n)

默认英文,通过 ~/.openclaw/configs/team-dispatch.json"language": "zh" 切换中文。


📊 任务分级

收到需求后,先判断复杂度:

级别判断标准处理方式
S单 Agent 可完成直接 sessions_spawn,不建文件
M2-3 个 Agent,线性依赖自动建 DAG + 追踪
L4+ Agent,有并行分支自动建 DAG + 追踪 + 进度汇报
XL跨多领域,需多轮迭代DAG + 分阶段交付 + 用户确认点

🔀 拆解模板

根据需求类型自动选择:

开发类

product(PRD) → coder(编码) → tester(测试) → shield(安全审计)
                             → writer(文档)

安全敏感类(带部署)

product(PRD) → coder(编码) → tester(测试) → shield(安全审计) → writer(文档)

研究类

research(调研) → product(分析框架) → writer(成文)

全栈类

research(调研) → product(PRD) → coder(编码) → tester(测试) → shield(安全审计) → writer(文档)

分析类

research(数据收集) → trader(分析) → writer(报告)
                   → product(策略建议)

内容类

research(素材收集) → writer(初稿) → product(审核优化)

⚠️ 重要限制:sessions_spawn 可能不允许指定 agentId

在某些运行环境/工具策略下,sessions_spawn 可能会拒绝 agentId 参数(错误类似:agentId is not allowed for sessions_spawn (allowed: none))。

此时 Team Dispatch 必须自动降级为“单 Agent 多角色模拟”模式:

  • 仍然按 DAG 拆解任务
  • 派发时不传 agentId(让 subagent 继承当前 agent 身份)
  • 在 task prompt 顶部注入角色指令(例如“你现在扮演 coder/product/tester…”)来模拟团队分工
  • 结果收集、依赖解锁、重试逻辑保持不变

如果你有权限配置并希望启用真实多 Agent 派发:

  • openclaw.json 中设置 agents.defaults.subagents.allowAgents: ["*"](或允许列表)
  • 重启 Gateway

⚙️ 核心调度流程

⚠️ 关键行为约定:事件驱动的自动调度循环

当你通过 sessions_spawn 派发任务后,OpenClaw 会在 subagent 完成时自动向你的会话推送一条 completion event(以 user message 形式到达)。

你必须在收到每一条 completion event 后,立刻执行完整的调度循环:

  1. 从 event 中提取 label,匹配到对应的 task
  2. 更新该 task 的 status/result/completedAt,写入 JSON
  3. 扫描所有 pending 任务,找出依赖已全部 done 的任务
  4. 立刻派发这些就绪的任务(sessions_spawn)
  5. 检查项目是否全部完成,若完成则归档并通知用户

不要等待用户指令,不要等待其他事件,不要跳过这个循环。每收到一条 completion event 就执行一次。

这是 Team Dispatch 的核心机制——事件驱动的级联派发。如果你不执行这个循环,任务就会"卡住"。

Step 1: 首次派发

扫描项目 JSON 中所有 status=pending 且依赖全部 done(或无依赖)的任务,批量派发:

for each task where status=="pending" && allDepsAreDone(task):
  task.status = "in-progress"
  task.startedAt = now()
  prompt = buildPrompt(task)
  sessions_spawn(agentId=task.agentId, task=prompt,
                 runTimeoutSeconds=task.timeoutSeconds,
                 label="{project}:{taskId}")
  task.sessionKey = response.childSessionKey
  writeJSON()

Step 2: 收到 completion event → 立刻执行调度循环

当 subagent completion event 到达时(OpenClaw 自动推送,格式为 "✅ Subagent {agentId} finished\n{result}"),你必须立刻执行以下完整流程,不需要用户指令

# ① 识别完成的任务
task = findByLabel(event.label)   # 或从 event 内容匹配 agentId + 上下文

# ② 更新状态
task.result = summarize(event.result)
task.status = "done"
task.completedAt = now()
writeJSON()

# ③ 扫描并派发就绪的下游任务(关键!)
dispatchReady():
  for each t where t.status=="pending" && allDepsAreDone(t):
    t.status = "in-progress"
    t.startedAt = now()
    prompt = buildPrompt(t)  # 含上游结果注入
    sessions_spawn(agentId=t.agentId, task=prompt, ...)
    t.sessionKey = response.childSessionKey
    writeJSON()

# ④ 检查项目是否全部完成
checkProjectDone():
  if all tasks are done/skipped:
    project.status = "completed"
    moveToArchive()          # tasks/active → tasks/done
    finalizeAndNotify()      # 向用户发送最终交付清单

再次强调:Step 2 是一个自动触发的循环。你不需要也不应该等用户说"继续"或"下一步"。每收到一个 completion event,就执行一轮 ②→③→④。这样任务会像多米诺骨牌一样自动级联推进,直到全部完成。

Step 3: Prompt 构建 — 结果注入

下游 Agent 自动获得上游输出:

buildPrompt(task):
  prompt = task.description
  if task.dependsOn:
    prompt += "\n\n--- 上游任务结果 ---"
    for depId in task.dependsOn:
      dep = findTask(depId)
      prompt += "\n\n[{dep.id}] ({dep.agentId}): {dep.result}"
  return prompt

Step 4: 并行派发注意事项

当多个任务同时就绪时(如 t4-tests 和 t5-docs 都依赖 t3-core),应同时派发所有就绪任务,而非逐个等待:

# 错误做法 ❌:派发 t4,等 t4 完成,再派发 t5
# 正确做法 ✅:同时派发 t4 和 t5,各自独立完成后触发下游

🛡️ 故障处理

故障类型与自动恢复

类型触发条件自动处理
超时超过 timeoutSeconds超时 × 1.5 后重试
失败Agent 返回 failed重试(最多 retryLimit 次)
拒绝并发上限进入 queued,自动出队
模型错误模型不可用(404等)检查修正模型配置

降级策略(onFailure 字段)

策略行为
阻塞"block"中止项目,通知用户(默认)
跳过"skip"标记 skipped,下游继续
降级"fallback"换备选 Agent 重试
人工"manual"暂停,等用户提供结果

📈 状态机

项目状态

active → completed    (全部 done/skipped)
active → blocked      (关键任务失败,重试耗尽)
active → cancelled    (用户取消)
blocked → active      (用户干预后恢复)

任务状态

pending → in-progress → done
       → queued       → in-progress   (并发满)
       → in-progress  → failed → pending (重试)
                               → skipped (跳过)

🔒 并发控制

  • 并发上限由 agents.defaults.subagents.maxChildrenPerAgent/maxConcurrent 决定(默认 5,建议 10)
  • 超出时任务进入 queued 状态,有 Agent 完成后自动出队
  • 优先级:关键路径 > 依赖链长 > 声明顺序

🔗 依赖模式

模式图示场景
线性A → B → CBug 修复、简单功能
扇出A → B, C, D一个输入多个并行处理
扇入B, C → D多个结果汇合
菱形A → B, C → D先分后合

⏸️ 用户确认点(XL 级)

关键节点暂停等用户审核:

{
  "id": "review-prd",
  "agentId": null,
  "description": "请用户确认 PRD 是否符合预期",
  "status": "pending",
  "dependsOn": ["prd"],
  "type": "checkpoint"
}

checkpoint 类型不派发 Agent,暂停并通知用户。


📁 项目文件

存储路径:<workspace>/tasks/

tasks/
├── active/          # 进行中
│   └── <project>.json
├── done/            # 已完成
│   └── <project>.json
└── templates/
    └── project.json  # 任务模板

🔧 运维工具

脚本用途命令
scripts/setup.sh一键安装/配置bash <SKILL_DIR>/scripts/setup.sh
scripts/setup.sh --baseline-models切换稳定基线模型解决 404/quota 问题
scripts/setup-config.sh生成用户配置自动跳过已存在
scripts/doctor.sh环境健康检查bash <SKILL_DIR>/scripts/doctor.sh
scripts/demo-project.sh生成闭环自测 Demo 项目(product → coder → tester)bash <SKILL_DIR>/scripts/demo-project.sh
scripts/watch.sh低频巡检卡死任务(前台运行)INTERVAL=300 GRACE=20 bash <SKILL_DIR>/scripts/watch.sh
scripts/watch-install.sh安装 watcher(后台常驻,跨平台:macOS/Linux;Windows见ps1)bash <SKILL_DIR>/scripts/watch-install.sh
scripts/watch-uninstall.sh卸载 watcher(后台常驻)bash <SKILL_DIR>/scripts/watch-uninstall.sh
assets/windows/watch-install.ps1.txtWindows 安装 watcher(Scheduled Task)copy <SKILL_DIR>\\assets\\windows\\watch-install.ps1.txt watch-install.ps1; powershell -ExecutionPolicy Bypass -File .\\watch-install.ps1
scripts/demo-project.sh生成协作开发测试 Demo 项目(写入 tasks/active)bash <SKILL_DIR>/scripts/demo-project.sh

✅ 闭环自测(最小协作链路)

  1. 生成一个带 3 个任务的 Demo DAG(写入 ~/.openclaw/workspace/tasks/active/):
bash <SKILL_DIR>/scripts/demo-project.sh
  1. 然后在 main agent 对话中说:
  • “请用 team-dispatch 跑一下刚生成的 demo-collab-loop 项目(product → coder → tester),并在完成后归档到 tasks/done。”

预期:main 会按依赖顺序依次 sessions_spawn(product/coder/tester),并把结果写回项目 JSON,最终移动到 tasks/done/ 并汇总汇报。


✅ 闭环自测(协作开发测试 Demo)

生成一个最小可验证的协作开发 DAG 项目(默认 team-mvp-1),写入:~/.openclaw/workspace/tasks/active/

bash <SKILL_DIR>/scripts/demo-project.sh

生成后,在主 Agent 里发一句话触发调度(示例):

请用 team-dispatch 跑一下刚生成的 team-mvp-1 demo 项目,按 DAG 依赖派发 product/coder/tester/writer,完成后归档到 tasks/done。


📋 完整调度示例

输入

用户: "帮我调研 AI Agent 市场,写一篇分析报告"

自动处理

1. 分析: 研究类,L 级
2. 拆解: research → product(框架) → writer(成文) + coder(可视化)
3. 建 DAG: tasks/active/ai-report.json
4. 派发: research(无依赖)
5. research done → 派发 product(注入 research 结果)
6. product done → 并行派发 writer + coder(注入上游结果)
7. 全部完成 → 归档 tasks/done/ → 汇报用户

输出

✅ 项目完成!
- 📝 分析报告: [内容]
- 📊 可视化: ~/work/ai-report/index.html
- 🔎 预览方式: open ~/work/ai-report/index.html

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

bountyclaw

Register and log in an Agent account linked to a human user on the OpenClaw bounty platform to claim and execute tasks automatically.

Registry SourceRecently Updated
Automation

SAGE Memory

Persistent, consensus-validated memory for AI agents via SAGE MCP server. Gives you institutional memory that survives across conversations — memories go thr...

Registry SourceRecently Updated
Automation

funds-agent

自动生成基金日报,包含持仓基金数据、估值涨跌、单位净值和财经要闻。支持定时任务(每天下午 4 点自动发送),可配置基金代码列表。输出格式:Telegram 消息 + Word 文档。

Registry SourceRecently Updated