DeepSeek Harness 工作流 Workflow:脚本编排与扇出
2026-08-16 14:37:01阅读 5
子代理解决'单个子任务',工作流(Workflow)解决'一堆子任务怎么编排'。当你要同时分析几十个文件、批量调研十几个方案,手动一个个委派太低效——工作流让 agent 写一段编排脚本,把工作扇出给大量子代理,自动收集结果。
工作流是什么
一个由模型编写的脚本,运行时按脚本逻辑启动大量子代理。它和普通对话的区别:
- 普通对话:agent 一步步做,串行
- 工作流:先定脚本,再批量扇出,子代理并行铺开,结果按阶段汇总
典型场景:全仓库代码审计(每个目录一个子代理)、多方案并行调研(每个方案一个子代理)、批量文件迁移。
脚本给 agent 的钩子:五件工具
编排脚本能用五个钩子函数:
| 钩子 | 作用 |
|---|---|
agent(prompt, opts) |
启动一个子代理跑任务,拿到结果 |
pipeline(items, ...stages) |
让一批数据依次流过多个阶段(流水线) |
parallel(thunks) |
并发执行一组任务,等全部完成 |
phase(title) |
标记进度阶段 |
log(message) |
输出进度日志 |
组合起来就是常见的编排模式:
- 扇出:
parallel里并发多个agent - 流水线:
pipeline让每个文件依次过"分析→修复→校验"三阶段 - 混合:先
phase分组,再组内并行
一个结果,明确的状态
每次工作流运行都有清晰结局:
| 状态 | 含义 |
|---|---|
| 正常完成 | 返回最终值(JSON 数据或 null) |
stopReason: 'error' |
执行中出错 |
cancelled |
被取消 |
脚本本身也可能在启动时被拒——比如语法错误、元数据不合法、超出部署的子代理数量上限。这些致命错误会直接让运行失败,而不是静默吞掉。
工作流 vs 直接对话:什么时候用
| 场景 | 选择 |
|---|---|
| 单个明确任务 | 直接对话(或一个子代理) |
| 3–10 个同类子任务 | 直接对话里逐个委派(agent 自己会管理) |
| 几十上百个同类任务、需要统一节奏 | 工作流 |
| 需要可复用的批量流程 | 工作流(脚本可沉淀为模板) |
判断标准很简单:子任务数量多到主 agent 自己管不过来时,才值得上工作流。
需要注意的两点
- 脚本是模型写的——你在 Web UI 里描述需求,agent 生成脚本执行。所以描述要像给架构师交代需求:说清任务边界、期望的产出格式
- 子代理上限受部署配置约束——不是无限扇出,超限会在启动时被拒
常见疑问
| 问题 | 解答 |
|---|---|
| 工作流跑一半挂了? | 看stopReason:error 是执行错,cancelled 是被取消 |
| 能扇出多少子代理? | 受部署上限约束,脚本可用maxTotalAgents 主动调低 |
| 结果怎么收集? | 每个子代理结果按顺序汇总,最终返回整体值 |
接下来读什么
- 单个子任务的委派细节 → 子代理 Subagent:委派任务给子 Agent
- 长线目标自动推进 → 目标 Goal:持久化与自动续行
← 上一篇:4.1 子代理 Subagent:委派任务给子 Agent | 下一篇:4.3 目标 Goal:持久化与自动续行 → ↑ 返回 教程总目录




