跳到主要内容
阅读约 4 分钟

流程与工作节点

如何用可版本化的资产描述研发过程,草稿与发布版本的区别,以及标记别名为什么不能作为复现依据。

工作节点

工作节点是可独立维护和版本化的可复用 Agent 执行定义。它描述一次节点执行需要什么,而不描述它在某张图里的位置。

一个工作节点固定:

  • 唯一的精确模型与推理档位;
  • 平台无关的运行时配置与语义化运行时钩子;
  • 提示词、按名称和版本引用的技能、扩展连接信息与子 Agent;
  • 单次执行的超时、最大轮次、最大令牌数与最大成本;
  • 人机交互默认值,分别描述提问与普通审批;
  • 用户自定义的质量门禁命令;
  • 工作目录、仓库克隆位置、非敏感环境变量与逻辑缓存配置引用。

模型回退完全属于模型网关的内部能力,不出现在流程、节点或执行清单中。网关内部的高可用与降级对流程保持透明。

流程

流程由多个工作节点调用按依赖组成有向无环图。每个调用拥有唯一节点标识、输入来源、输出、产物路径与依赖关系。

流程的 YAML 定义是权威,可视化依赖图是同一内容在画布上的投影,不是另一份定义。

草稿可以编辑。发布生成带规范化内容摘要的不可变版本。每个发布版本固定精确的节点模板版本或标记别名策略,以及调用的输入输出绑定与依赖图。

标记别名不是复现依据

这是一个容易出错的地方,值得单独说明。

标记别名(例如 latest)只是指向某个已发布版本的可移动别名,不保证等于数值最大的版本号。流程草稿可以使用别名来改善编写体验,但确定性编译器必须立即把它解析为精确版本。流程发布和任务创建时会再次校验具体版本与摘要,并把解析结果写入冻结锁。

因此:标签后续移动不影响已发布流程或运行中的任务。但如果你的流程草稿里还留着别名,下次编辑时它可能指向别的东西。

完成条件

一个节点的成功条件是确定的:

  • 流程声明的所有必需业务产物均已生成;
  • 产物清单存在、非空且能枚举实际产物;
  • 结果摘要存在且包含有效内容;
  • 质量门禁全部通过。

产物清单报告实际结果,流程输出是必需契约。额外产物必须登记,并且只能转交给图中已经存在的合法下游。

结果摘要是每个成功节点唯一的用户可见摘要权威,按固定结构包含结果、文件、链接、验证、风险与后续。文件部分必须逐一包含经运行器校验后的产物相对路径,避免 Agent 自报结果与冻结产物脱节。链接部分只记录本节点实际创建或发现的外部地址。

摘要格式属于平台默认执行策略,不属于用户消息正文。它由运行器在任务私有的 Agent 主目录中按实际运行时写入,由原生的指令发现机制在会话启动时加载。这些文件不写入仓库工作树、产物或任务快照。

需要明确的是:这一指令层用于引导运行时行为,不被当作安全边界。 运行器仍在产物校验之后、只读冻结之前强制校验摘要格式;格式或文件覆盖不完整时该节点失败。项目自身的指令或模型偏差不能绕过完成合同。

人机交互

流程可以显式启用提问或审批,但人机协作是策略能力,不是所有任务的强制步骤。默认策略追求端到端自治。

Agent 提问只把当前执行标记为等待输入;相关下游等待,无依赖的并行分支继续运行。回复绑定节点、执行与问题标识,失效执行的旧问题自动关闭。

用户主动发送消息时,Agent 忙则进入待处理队列。显式强行插入优先使用运行时原生的插入能力,否则中断当前轮次并恢复。无法可靠恢复的运行时必须明确拒绝强行插入,而不是静默排队。

并行

单个监督器自动运行依赖已满足的节点,并按沙箱 CPU、内存与模型配额施加背压。流程作者不配置并发度——依赖关系自然决定可并行度,子 Agent 与运行时决定节点内并行。

并行编码节点的提交由显式的集成节点在独立工作树中合并。集成节点处理代码语义与冲突;监督器只提供机制。无法解决的冲突通过定向返工返回相关编码节点。

失败节点的下游停止,无依赖的独立分支继续执行。