默认状态下,Claude Code 在完成一个任务后就停下来等待 —— 即每轮结束后,将控制权还给我们,由我们决定下一步。这种交互方式对大多数任务足够,但某些工作需要 Claude 跨越多轮自主运行:修复一批测试直到全部通过、定期检查部署状态、对整个代码库做并行扫描。这时候需要的不是更多的手动催促,而是一套合适的驱动机制。
Claude Code 为此提供了三种机制,各自解决不同的问题。goal 在每轮结束后启动独立评估,判断我们设定的完成条件是否已满足;loop 按固定时间间隔反复触发,不依赖上一轮的结果;workflows 放弃单线程执行,把任务分配给多个并行 agent 同时处理。选错工具的代价是真实的:用 loop 处理有终点的任务,完成后还会继续空跑;用 workflows 做本来一句话能搞定的事,成本会推到完全没必要的量级。
/goal
/goal 在每轮结束后启动一个评估:把我们设置的条件和整段对话发给一个轻量模型(默认 Haiku),让它判断条件达没达成。返回 no,理由传给下一轮 Claude 继续干;返回 yes,goal 清除,控制权还给我们。
写条件的时候最重要的一点:评估模型不跑工具,只读对话里已有的内容。它没法独立打开终端验证,只能读 Claude 在对话里留下的输出。所以"代码更干净"这类条件会让评估模型无从判断,而"npm test 全部通过且无 TypeScript 报错"有效,因为 Claude 会把命令输出打在对话里。
实践里有用的两个补充:条件最多 4000 字符,复杂的验收标准可以写完整。如果不确定 goal 会跑多久,直接在条件里加个保底约束——“完成迁移,或者 20 轮内停下”——评估模型会把轮次算进去一起判断。
/goal 依赖 hooks 系统,工作区没通过信任对话的话用不了(它会直接告诉我们原因,不会悄悄失败)。接 CI 的场景支持非交互调用:
claude -p "/goal 所有集成测试通过且没有 TypeScript 编译错误"/loop
/loop 是时钟触发的,跟 /goal 的条件触发本质不同。间隔到了就执行一次,执行完等下一个周期,不管上一轮结果如何。
它不适合有终点的任务——那种用 /goal。/loop 适合的是"说不清楚完成状态,但需要有人定期来看一眼"的场景:等 PR review、盯部署状态、定期扫新的 CI 失败。
间隔可以自己指定,也可以省略。指定的时候 Claude 按固定周期来:
/loop 10m 检查 PR #512 有没有新的 review comment,有的话摘要给我省略间隔的时候,Claude 每轮结束后自己决定等多久——观察到任务还在推进就等短一点,事情安静了就拉长,范围在 1 分钟到 1 小时之间。这种模式适合等待时间本身不固定的事:构建通常需要八分钟,但偶尔会跑二十分钟,让 Claude 自己感知比硬设一个数字更合适。
/loop 检查 CI 有没有通过,顺手处理新的 review comment两种模式都在两次触发之间按 Esc 停止。自选间隔模式下,Claude 判断任务已完成时也会自己不再调度下一次;固定间隔模式不会自动停,但 7 天后会自动过期。
/workflows
/workflows 跟前两个不在同一个维度上。前两个是在同一个会话里让 Claude 多跑几轮;/workflows 是把任务拆开,同时拉起多个 agent 分头跑,结果汇总回来。
触发方式:在 prompt 里加 ultracode,或者直接用自然语言说"用 workflow 来做这个"——两种方式都行,自然语言触发从一开始就支持,不是后来才有的。v2.1.160 之前触发关键词是 workflow,之后换成了 ultracode。Claude 写完编排脚本后,运行时在后台执行,终端空着,这次执行(run)结束了再来看结果。
/workflows 命令本身是进度面板,不是触发入口。 run 在后台跑,终端随时可以用,敲 /workflows 就能打开进度视图:列出所有进行中和已完成的 run,选中一个进去能看到每个 phase 的 agent 数量、token 用量和耗时,再往里钻可以看单个 agent 的 prompt、工具调用记录和最终结果。面板里的常用快捷键:
| 按键 | 操作 |
|---|---|
↑ / ↓ | 选择 phase 或 agent |
Enter / → | 进入下一层 |
Esc | 返回上一层 |
p | 暂停 / 恢复 run |
x | 停止选中的 agent,或停止整个 run |
r | 重启选中的 agent |
s | 保存这次 run 的脚本为可复用命令 |
run 也可以在输入框下方的任务面板里看到一行进度摘要,按方向键 ↓ 聚焦,Enter 展开。
运行时有两个硬限制:最多 16 个 agent 并发,单次 run 总计上限 1000 个。脚本写在 ~/.claude/projects/ 下的 session 目录里,可以直接读;觉得这套编排值得复用,在 /workflows 界面按 s 存成命令。
版本与套餐要求。 Claude Code ≥ v2.1.154,支持的套餐包括 Pro、Max、Team、Enterprise,以及通过 Anthropic API、Amazon Bedrock、Google Cloud Vertex AI、Microsoft Foundry 接入的场景。Pro 用户默认没有开启,需要进 /config 找到 Dynamic workflows 那行手动打开;其他套餐和 API 接入方式默认可用。
子 agent 的权限模式。 workflow 启动后,它拉起的子 agent 始终以 acceptEdits 模式运行,文件修改会自动放行,不会来询问。但 shell 命令和 MCP 工具如果不在 allowlist 里,还是会在 run 中途弹出权限确认。计划跑一个长 run 之前,建议先把子 agent 会用到的命令加进 allowlist,避免中途被打断。
/deep-research 的限制。 这是 Claude Code 内置的 workflow,用于跨多个来源调研问题。它依赖 WebSearch 工具,没有这个工具的环境(比如某些企业部署或网络受限场景)直接跑不起来。
一个要留意的限制:run 绑在当前 session,关掉 Claude Code 再开,这个 run 不会接着跑,下次从头来。多 agent 并发费用叠加快,习惯先拿小范围做一次,看清楚消耗规模再推到全量。