关于 orchestrate
orchestrate 是一项 Cursor 技能,可将大型任务拆分给并行运行的 Cursor 云端 Agent。规划者通过结构化交接分派任务,并据此决定后续工作。
主要功能
- 01并行运行 Cursor 云端 Agent
- 02规划者与工作者角色
- 03结构化交接
- 04执行 JSON 计划
- 05可选 Slack 状态更新
适用场景
- 01将大型编码任务拆成独立工作
- 02通过子规划者协调嵌套子任务
- 03配置 Slack 后跟踪任务进度
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cursor/ plugins --skill orchestrate安装后在 Claude Code 中输入/orchestrate确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
prompts/andon-block.mdempty-error-handoff.mdfailure-handoff.mdfinished-no-handoff.mdloop-hygiene.mdroot.mdslack-block.mdsubplanner.mdverifier.mdworker.mdreferences/dispatcher.mdhandoffs.mdplanner.mdspawning.mdschemas/plan.schema.jsonstate.schema.jsonscripts/__tests__/agent-manager-slack-mirror.test.tsandon-root-cache.test.tscheckpoint-restart.test.tscomment-cli.test.tscomment-retry-queue.test.tsexit-on-error.test.tsfailure-handoff.test.tshandoff-branch-parser.test.tshandoff-verification-parser.test.tshandoff-verification-record.test.tskickoff-dedupe.test.tsmeasurements-compare.test.tsmeasurements-mismatch.test.tsmeasurements-parser.test.ts详细介绍
编排
显式调用 /orchestrate <goal>,即可将大型任务分派给多个并行运行的 Cursor 云端 Agent。工作者之间不会互相交流,而是通过结构化交接向上汇报。启动、等待和交接循环位于 scripts/cli.ts。规划器编写 plan.json,脚本执行计划,规划器再读取交接内容,以决定下一步操作。长时间运行的 Agent 循环容易偏离方向;使用 JSON 状态文件的脚本则能保持稳定。
必读内容:cursor-sdk 技能(cursor/plugins/cursor-sdk)。 启动、身份验证和错误分类都记录在其中。不要重复实现该技能已有文档说明的内容。
设置
CURSOR_API_KEY必须是个人/用户密钥。从 Cursor Dashboard > Integrations 创建,然后在使用前阅读cursor-sdk身份验证说明。SLACK_BOT_TOKEN为可选项。设置后,可在kickoff或首次run --root时传入--slack-channel <id>,也可设置SLACK_CHANNEL_ID。脚本会将频道存入plan.slackChannel,在该频道发布启动帖、同步任务状态,并读取 Andon 反应。未设置此令牌时,脚本只记录一次日志,然后在 Slack 不可见的情况下运行;正确性不受影响。
核心原则
这些规则可使任务树无需全局协调便能自行收敛。
- 规划器负责范围划分和发布任务,不编写代码。 编写
plan.json、读取交接内容以及决定下一步操作都属于规划器的工作。编辑文件、运行git merge和直接解决冲突则不属于。如果规划器想要编写代码,就应改为向工作者发布任务。 - 规划器不知道由谁来接手任务。 脚本会将每项任务分派给一个云端 Agent。规划器只需从任务层面进行思考。
- 工作者相互隔离。 一个任务、一个仓库克隆,且无法与其他 Agent 通信。完成后提交一次交接。
- 子规划器是递归规划器。 规划器发布“为这个部分制定子计划”的任务;子规划器完全负责该部分,并提交汇总后的交接。
- 通过交接持续推进。 规划器即使以为工作已完成,也可能收到延迟的交接并重新规划。只有规划器决定停止发布任务后,才算进入“已完成”状态。
- 通过传递,而非同步来协调。 同级节点之间不互相交流。不同层级之间不共享状态。每一层只能看到其子节点的交接。
节点类型
| 节点 | 是否运行循环? | 范围 | 输出 |
|---|---|---|---|
| 规划器 | 是 | 整个用户目标 | 面向用户的消息 + 可选的 PR |
| 子规划器 (↻) | 是 | 父级范围中的一个部分 | 交接给父级 |
| 工作者 | 否 | 一项具体任务 | 交接给启动它的规划器 |
| 验证器 | 否 | 一个目标的验收标准 | 判定结果交接给启动它的规划器 |
| Git | 不适用 | 共享介质 | 分支(代码)+ handoffs/(含义) |
角色
有两种角色,共用一种技能。请阅读与你的角色对应的参考文件,跳过另一个。
分派器。 你处于本地 IDE 会话中,用户输入了 /orchestrate <goal>。你的任务是启动一个云端根规划器,并返回其 URL。参阅 references/dispatcher.md。这是一次性操作;你不是规划器。
规划器(根级或子级)。 你收到的结构化提示词以“You are the root planner for:”或“You are a subplanner for:”开头,或者用户选择在本地运行规划循环。你负责自己的范围、发布任务、读取交接内容并决定下一步操作。参阅 references/planner.md。
disable-model-invocation: true 表示此技能仅在显式调用时加载。