之前讲子代理,归纳出四种使用模式:只读型、高噪声、并行探索、流水线编排。这四种模式的共同前提是主对话作为编排者:每一步派谁、谁拿到上一步的结果、什么时候收尾,都由 Claude 在当前上下文里临场判断。

到了 Claude Code v2.1.154,第三种编排原语正式进入:Workflow。它和 sub-agent、skill 并列,目前是 research preview。这篇加餐需要补充的内容是:Workflow 不是"更强的 sub-agent",它把编排逻辑从对话搬到了脚本里,由此带来一套不同的契约。

说明:Workflow 还在 research preview 阶段,本文涉及的版本号、并发上限、命令名、目录路径都以官方文档为准,后续版本可能调整。

一、从 12 个文件并行审查说起

回到《Claude Code工程化实战》SubAgent中的例子。我们配置过一个 code-reviewer 子代理:YAML frontmatter 里写好 description 和工具白名单,主对话把 PR diff 派给它,回来一份审查意见。它有独立的上下文窗口、限定的工具集、可复用的定义文件,在"一次派一个工人"的场景下表现稳定。

现在把这个例子放大一个量级。假设一个 PR 改了 12 个文件,你想让 12 个 reviewer 并行各看一份,最后合并成一份报告。第 6 讲的并行编排能做到这件事——主对话起 12 次 Task,等它们陆续返回,自己负责整合。整段编排在主对话里大致是这样:

1. 你(主对话):起 12 个 Task 子代理,每个看一个文件2. 12 个子代理并行跑,结果陆续回到主对话上下文3. 你(主对话):在被塞满的窗口里读完 12 份,自己合成最终报告

能跑,但当编排规模继续放大,会出现三类痛点。

  • 第一类痛点是中间结果都要回主对话上下文。12 份审查意见加上每个 reviewer 自己派生的中间产物,全部塞进当前会话窗口,而主对话还要在这个被塞满的窗口里做合并。
  • 第二类痛点是中断后没有缓存机制。审到第 9 份的时候网络断了或者你想停下来看一眼,前面 8 份的产物会丢失,恢复时通常得从头再排一遍。
  • 第三类痛点是同事 fork 这条流程跑不出同一份报告。"先派 12 个 reviewer,再让 summarizer 合并,最后让 critic 找漏审"这一整套编排逻辑写在你当时的 prompt 里。下一次换一个人、换一个 PR、prompt 措辞略有不同,跑出来的结构就不一样。

这三类痛点都不是 sub-agent 本身的缺陷,而是编排逻辑活在对话里带来的副作用。当编排本身值得被命名、复用、版本化的时候,它需要从 prompt 搬到代码里。这就是 Workflow 想解决的问题。

二、Workflow 的工程定义

官方文档对 Workflow 的定义可以总结为:一段 JavaScript 脚本,由 Claude 写,运行时在隔离环境后台执行,用来大规模编排子代理。在 Claude Code 的原语体系里,它和 sub-agent、skill 并列,是第三种编排原语。

这里有一个反直觉的设计点要先澄清。Workflow 的脚本是 Claude 写的,不是用户写的。用户描述任务,模型生成编排代码,运行时去执行。这和普通 SDK 里"开发者写代码调用 LLM"的关系反过来了——LLM 写代码、运行时跑代码、用户只看最终结果。

脚本本身是 deterministic 的 JavaScript:循环的轮数、分支的走向、并行调度的数量,都由代码静态决定。脚本内部派生 sub-agent 去做实际工作,sub-agent 才是非确定性的部分。换句话说,Workflow 是包在非确定性 agent 外面的确定性胶水。

中间结果存在脚本变量里,不进 Claude 的上下文。这是整段设计的核心。脚本可以跑几百个 agent、产生几百份中间产物,主对话窗口里只会看到最终汇总后的答案。后台隔离运行、上下文卸载、agent 之间互不污染,这三项性质都从这个设计点派生出来。

触发 Workflow 有三种方式:显式调用 /deep-research(目前自带的唯一 workflow 命令)、在普通 prompt 里包含 “workflow” 关键词强制走 workflow 模式、或者通过 /effort ultracode 让 Claude 把每一个实质性任务都自动编排成 workflow(一次请求甚至可能串成多个 workflow:先理解代码、再做修改、再验证)。组织级别禁用可以通过 disableWorkflows: true 设置或 CLAUDE_CODE_DISABLE_WORKFLOWS=1 环境变量。

三、控制流谁来持有

如果只能用一句话概括 Workflow 和 sub-agent 模式的差别,那就是:控制流到底在哪里。

sub-agent 加 skill 的模式下,控制流在 Claude 的上下文里。Claude 看到当前状态,决定下一步派谁;sub-agent 跑完把结果交回来;Claude 再看状态、再决策。每一步的"接下来怎么走"由模型在当前 turn 里临场判断,整段编排逻辑只在这一次会话里存在。

Workflow 模式下,控制流在脚本变量里。循环、分支、并行调度都在 JavaScript 代码中静态表达。Claude 不再逐步做编排决策,它只在最开始写一次脚本,然后看最终输出。运行时按脚本走,跑出来的路径是 deterministic 的。

围绕这条核心区别,其余几乎所有可观察到的差异都可以推导出来:

维度 SubAgent / Skill 模式 Workflow 模式
控制流持有者 Claude 主对话上下文 脚本变量
中间结果存放 进入 Claude 上下文窗口 留在脚本变量,不进上下文
可恢复性 中断后需要重派 同一 session 内可 resume,已完成 agent 走缓存
并发上限 每个 turn 几个 delegated task 单次运行 16 并发、1000 agent 上限
可复用单位 工人的定义(子代理文件) 编排本身(保存为 /<name> 命令)
权限模式 沿用 session 设置 派生子代理强制 acceptEdits + 继承用户工具白名单

下面是一段 Workflow 脚本骨架,用于感受结构。这是对 /deep-research 类编排的抽象示意,不是确切的 API——底层 SDK 原语是 AgentDefinition,包含 description / prompt / tools / model / effort / background / permissionMode / maxTurns / skills / memory / mcpServers 等字段。

// 示意伪代码,真实 API 见 AgentDefinitionconst angles = ["security", "performance", "maintainability"];// 阶段一:扇出。每个角度独立扫描,不同阶段可以路由到不同模型const drafts = awaitPromise.all(  angles.map(angle =>agent({prompt: `Audit src/routes/ from a ${angle} perspective`,model: "claude-haiku-4-5",  // 扫描类任务用更小的模型  })));// 阶段二:对抗审查。每份草稿被独立 agent 检查const verified = awaitPromise.all(  drafts.map(draft =>agent({prompt: `Review this draft for claims that don't hold up: ${draft}`,model: "claude-sonnet-4-5",  })));// 阶段三:合并。只有这一步的结果会回到主对话上下文returnsynthesize(verified);

model 参数说明了 Workflow 自带的一项成本控制能力:不同阶段可以路由到不同大小的模型,扫描类用小模型,合并类用大模型。

对照流水线编排能看清楚两种风格的差别。在那一讲中,我们让主对话"先调 Locator 找出问题位置,再交给 Analyzer 分析根因,最后让 Fixer 改",这是 prompt-driven 的编排,每一步走不走、走哪一支由主对话临场判断;同一段流程冻进 Workflow 脚本就成了 schema-driven 的版本,控制流由 JavaScript 持有,跨 session 跑出来路径一致。两种方式都能完成这件事,区别在于编排逻辑是否需要被冻结和复用。

四、确定性换来的三件事

把控制流从 Claude 的临场判断转移到脚本中,代价是灵活性下降,换得的是三项具体收益。

第一项是可重复性。同一份脚本跑十次走同一条路径。当你跑出一次满意的结果,可以在 /workflows 视图里按 s 把它保存成 /<name> 命令。存到 .claude/workflows/ 是项目级,跟着 git 走全队共享;存到 ~/.claude/workflows/ 是用户级,跨项目可用。下一次同事在他的机器上跑同一个命令,编排逻辑是同一份。

第二项是并行规模。单次运行 16 并发、1000 agent 的硬上限,这个量级超出了主对话单点协调的能力范围。文档举的几个旗舰场景都在这个量级上:扫描 src/routes/ 下所有 API endpoint 找出缺失的鉴权检查、对 500 个文件做批量迁移、跨整个 codebase 做一次结构化审计。这一类任务从结构上就需要把编排外化。

第三项是会话内可恢复。运行时缓存每个完成 agent 的产物,跑到一半 pause 或 stop,再 restart 时已经完成的 agent 直接走缓存,没跑完的接着跑。

除此之外还有一项不太直观但很关键的价值:质量模式可以被固化在脚本里。Claude Code 目前自带的唯一 workflow 命令 /deep-research 内部就是这种组合——多角度扇出搜索、独立 agent 对彼此的发现做对抗审查、对每条 claim 投票、把没扛过 cross-check 的 claim 过滤掉、最后给出带引用的报告。这种 panel-of-judges 风格的编排,靠 prompt 让一个 sub-agent “记得做 self-critique” 其实写不稳——模型有时记得、有时忘了、有时 critique 自己变成了附和。写进脚本就稳定下来:第二个 agent 看到的就是第一个 agent 的结论加上"你的任务是独立审查"的明确指令,这是契约而不是模型记忆。

五、灵活性的代价

把 Workflow 当作"sub-agent 升级版"的看法是不准确的。它换走了几样具体的东西,使用前需要清楚。

首先,Workflow 不接受中途用户输入。跑起来就是一次性跑完,跑完才能下一轮。如果你的流程需要在 stage 之间人工 sign-off——比如审完代码要人确认才能改,改完要人确认才能 verify——官方文档明确建议把每个 stage 拆成独立的 workflow,跑完一个停一下、看一眼、再触发下一个,不要试图把"等用户点头"塞进单个 workflow。

其次,脚本本身没有文件系统和 shell 权限。只有它派生的 agent 能动磁盘、跑命令。这条约束是 Workflow 能安全在后台运行、会话仍然响应的前提,但它意味着如果你想让 orchestrator 本身读写一个临时目录、追加一个日志文件、调一个 shell 工具,做不到。

第三,脚本生成本身也要消耗 token。Workflow 适合编排逻辑值得被冻结的场景,一次性的小任务直接让主对话起一两个 sub-agent 更经济。官方原话是 Workflow 可能比在对话里做同样的任务用掉显著更多 token。

第四,Workflow 不适合互动调试和目标不固定的探索性任务。它默认在后台执行,编排过程不会逐步反馈进展,用户只看得到最终答案和事后的 phase 视图。在你还在摸索"这件事到底该怎么拆"的阶段,留在 sub-agent 层靠主对话做 turn-by-turn 决策更合理。

六、什么时候用 Workflow

《Claude Code工程化》实战的专栏的加餐建立了一个判断 Skill 还是 SubAgent 的体例,靠几个具体问句来推。这里照搬同一种结构,给 Workflow 四个判断维度。

第一个问句是流程是否已经稳定下来。这是最先要问的——流程还在变形的时候冻进脚本是负担,因为你会在 prompt 里调整方向,但脚本不会跟着调整。Workflow 适合那种你已经在主对话里手工跑过好几次、节奏摸熟了、想固化下来的流程。

第二个问句是是否需要跨会话、跨 PR、跨人复用同一条编排。这是 /<name> 命令的真正价值所在。如果这套编排只在你这一次 session 里跑一遍以后再也不用,没必要写成 workflow;如果它会在每个 PR 上跑、每周巡检跑、新同事入职跑,把它保存成项目级命令,编排本身就成了团队资产。

第三个问句是是否需要超过一次对话能协调的 agent 数量。codebase-wide 扫描、500 文件迁移、几十个 endpoint 的并发审计,这一类任务规模超出了主对话单点协调能处理的范围。粗略的尺度是估算下来需要的 agent 数超过十个时,主对话单纯做编排已经会显得吃力。

第四个问句是是否需要把质量模式固化在流程里。如果你需要的不是"跑更多 agent",而是"必须有第二批独立 agent 做对抗审查"或者"必须从多个角度起草再相互权衡",这种 panel-of-judges 风格的契约靠 prompt 维持不稳,靠脚本维持很稳。

第五节列出的四种代价,反过来就是不应该用 Workflow 的信号:流程需要逐步签批、orchestrator 自己要做 IO、一次性的小任务、目标不固定的探索性工作。

七、与 Sub-Agent / Skill / Headless 的边界

SubAgent加进 Workflow 以后,几个原语之间的关系值得简单梳理一下。Sub-agent 是隔离上下文的工人,由主对话即兴调度;Skill 是声明式的步骤包,喂给单个 agent 用,描述某种能力或某种流程的步骤;Workflow 是声明式编排,把多个 agent 组装成可重复的流水线。Sub-agent 和 skill 解决"谁去做"和"怎么做",Workflow 解决"多工人编排如何被复用"。

这里要单独说明一点,避免概念混淆:Workflow 和 Headless 是正交的。Headless 是 claude -p 非交互运行时,把会话从前台搬到后台的开关,让 Claude Code 能在 CI/CD、GitHub Actions、pre-commit hook 里跑。Workflow 在交互模式下也能跑——在 REPL 里输入 /deep-research 就是交互模式下跑 workflow。两者放进 CI/CD 时通常配合使用,但它们处在不同层次。还要注意 GitHub Actions 的 YAML 也叫 “workflow”,那是 GitHub 的术语,和 Claude Code 的 Workflow 原语不是同一回事。

八、第五种使用模式

之前文章《量体裁衣》中也给出过四种 sub-agent 使用模式:只读型、高噪声、并行探索、流水线编排。Workflow 在这张图里补上第五种——声明式编排。

使用模式 解决的问题 控制逻辑位置
只读型 信息收集不污染主对话 LLM 临场
高噪声 大量低信息内容的压缩 LLM 临场
并行探索 同一问题多角度展开 LLM 临场
流水线编排 多 agent 顺序协作 LLM 临场
声明式编排 编排逻辑本身需要被复用 脚本冻结

Workflow 不是替代流水线编排,而是它的工程化形态。流水线编排在 sub-agent 层是 prompt-driven 的,每一步走不走、走哪一支由主对话临场判断;同一个流水线放进 Workflow 就是 schema-driven 的,控制流冻在 JavaScript 里,跨 session 一致。

回到开篇那个 12 个文件并行审查的场景。在 sub-agent 层做,主对话亲自协调 12 个 reviewer 加一个 summarizer,能跑但不稳;在 Workflow 层做,把这套编排写成脚本保存为 /review-pr-files,编排逻辑就从某一次 session 的 prompt 沉淀成了项目里的一份可执行契约。下一次 PR 改了 50 个文件,跑同一个命令,编排不变,脚本内部并行起 50 个 reviewer。

九、临场判断与冻结契约

Workflow 和 sub-agent 不是替代关系,而是两种不同的"控制流位置"选择。临场判断的优势是灵活,能随会话调整方向,代价是不可重复、上下文压力大、跨人难以复现。冻结的契约反过来:可重复、可保存、可大规模并发、可固化质量模式,代价是不接受中途用户输入、orchestrator 本身没有 IO 权限、生成脚本本身也要花 token。

这两种位置不是优劣关系,而是不同的工程权衡。当编排还在变形的阶段,留在主对话里更合适;当编排稳定下来、值得被命名、需要被团队复用,把它从 prompt 搬到脚本里就是合理的下一步。Workflow 目前还在 research preview,API 表面和触发方式都可能演化,本文里写的命令、路径、上限数字都以你看到这篇文章时的官方文档为准。可以确定的是它在原语层级的位置:和 sub-agent、skill 并列,作为 Claude Code 的第三种编排原语,承担的角色是让编排本身成为可被复用的工程产物。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐