跳到正文

第 4 章 · 任务:编排、长程推进与协作流转 ​

核心观点 + 逻辑框架(构建篇 · 执行与编排能力域)

原书章节 ↗

▍速览 ​

一句话版(开场,约 20 秒)

任务不能靠一次模型调用完成。Harness 执行内核的职责,是把模型的离散判断组织成有状态、可控制、可恢复、可验证结束的任务过程:Agent Loop 驱动循环,权威状态与预算定边界,Planning 与阶段门禁外部化控制,Subagent 做受控委派,异步与 Continuation 跨连接续行——最后让完成由证据决定:模型只能申请完成,Harness 才提交完成。

一段话版(展开,约 60–90 秒)

任务不能靠一次模型调用完成。模型的单次输出只是离散判断,企业级任务是一个持续过程:先理解环境、制定计划、连续调用工具、关键动作等审批、部分工作委派给子代理、经历失败和恢复,最后用环境事实证明目标达成。Harness 执行内核,就是把这一连串判断组织成可推进、可恢复、可验证的任务过程。地基是稳定的 Agent Loop:Prepare 装配任务视图,Model 判断意图,Act 执行行动,Observe 标准化反馈,Verify 用验收器核验——循环推进,直到完成、等待、失败或取消。Loop 本身保持稳定,具体能力都走扩展点。任务状态不由消息历史决定,而是维护一份可机读的权威状态:目标、阶段、计划、已确认事实、预算、等待原因、完成依据。状态显式化,运行层才能在等待时释放资源、界面才能说明在等什么、观测才能区分是执行慢、审批慢还是工具慢;同时配多维预算做外部终止边界——预算耗尽要给出明确终态和未完成清单,而不是悄悄截断。向上,计划要外部化:Planning、Todo 和阶段门禁,让计划变成可读、可改、可验证的控制对象;长任务分阶段设门禁,每阶段回答三件事:输出是什么、证据在哪里、谁来确认。委派要受控:Subagent 的收益来自上下文隔离、能力隔离和并行执行;每个子任务带可机读契约——目标边界、已知上下文、权限、预算、输出证据、失败语义、验收条件。还要分清 Delegation 和 Handoff:前者父任务保留责任,后者控制权转移——都不能只靠一条自然语言消息。长任务要把任务身份和当前连接分开:稳定 task_id、事件游标、Continuation,跨请求、跨进程、跨上下文窗口续行;Session 落到共享存储,任意实例都能接续。工程上坚持稳定内核加可插拔能力:Middleware 在明确的生命周期点返回结构化 Decision 或 Patch,不重写 Loop;确定性部分做四类契约测试——状态迁移、扩展顺序、恢复、预算边界。最后是完成验证,这是分水岭:失败要按类型选恢复策略,有副作用的行动先证幂等;完成由证据决定——模型只能申请完成,Harness 依据环境事实、测试报告、评审意见和审批状态提交完成,验证强度与风险匹配,从结构验证到人工验收五级递进。

  • 一个内核:Agent Loop 五阶段(Prepare→Model→Act→Observe→Verify)
  • 一份权威状态:10 态机 + 多维预算边界(WAITING≠失败)
  • 外部化控制:Planning / Todo / 阶段门禁(输出·证据·谁确认)
  • 受控委派:Subagent 契约(隔离·专业化·并行;Delegation≠Handoff)
  • 长程续行:task_id + 事件游标 + Continuation + 共享 Session
  • 稳定内核+中间件:Middleware 返回 Decision/Patch;四类契约测试
  • 证据定完成:模型申请、Harness 提交;五级验证与风险匹配

一句话(收尾)

模型负责提出完成申请,Harness 负责用证据提交完成——"已完成"不是一个说法,而是一组可寻址、可核验的事实。

▍逻辑框架(记忆卡片) ​

① 命题:为什么需要执行内核 ​

一次模型调用只产生离散判断,企业级任务是一个持续过程;执行内核的职责,是把每一次判断组织成有状态、可控制、可恢复、可验证的任务过程。

理解环境 · 制定计划 · 连续调用工具 · 关键动作等审批 · 委派子代理 · 失败恢复 · 用环境事实验收

贯穿案例:支付服务高危依赖漏洞修复与变更发布 Agent——长程执行、并行委派、异步等待、人工介入、确定性验证五类特征齐全。

② 机制:Agent Loop 五阶段(最稳定的内核) ​

  • Prepare:装配任务视图、请求上下文

  • Model:判断下一步——行动 / 委派 / 询问 / 等待 / 申请完成

  • Act:校验并执行工具或委派

  • Observe:标准化结果、更新任务事实

  • Verify:用环境事实或规则验收

  • ↳ 分支:Model → Waiting (等待输入 / 审批 / 事件);Verify 通过 → Completed;不可恢复错误或预算耗尽 → Failed

浏览文件、执行代码、调度远程 Agent 都是 Act 的实现;用户追加要求、工具返回、异步完成都是 Observe 的来源。核心 Loop 稳定,能力通过扩展点加入。

③ 机制:权威状态 · 10 态状态机 · 预算边界 ​

消息历史不是任务状态的唯一来源;权威状态必须可机读,运行层才能据此恢复与对账。

目标 · 当前阶段 · Plan / Todo · 已确认事实 · 阻塞项 · 子任务 · Artifact · 剩余预算 · 等待原因 · 完成依据

  • 状态机 10 态:CREATED → RUNNING → WAITING_INPUT / WAITING_APPROVAL / WAITING_EVENT · PAUSED · VERIFYING → COMPLETED / FAILED / CANCELLED

WAITING 不是失败,PAUSED 不是结束——显式状态让 Runtime 释放资源、界面说明在等什么、观测区分执行慢 / 审批慢 / 工具慢。

步骤数 · 总时长 · Token 费用 · 工具调用 · 并发 · 高风险动作

预算构成外部终止边界:临近阈值收敛行动范围,耗尽产生明确终态与未完成清单,而不是悄悄截断。

④ 方案:计划外部化——可读、可改、可验的控制对象 ​

计划不是展示隐藏思考,而是 Harness 和用户都能读、改、验的控制对象。

  • 左:三种控制模式 轻量 Todo:目标明确、步骤少 Plan Mode:影响大需审阅,只读探索 → 写计划 → 人工确认 → 执行 Planner-Executor:长任务、多依赖、可并行
  • 右:阶段门禁 影响分析 → 修复规划 → 变更实施 → 独立验证 → 发布准备 每阶段回答:输出是什么 · 证据在哪里 · 谁来确认

计划必须允许修订:说明触发事实、保留已完成项,不能改写目标掩盖失败。

Prompt 只能要求“先规划再修改” · 权限模式 + 工具白名单 + 持久状态 + HITL,才真正约束“获批前不可写”

⑤ 方案:受控委派——Subagent 三隔离 + 可机读契约 ​

上下文隔离:子任务只加载相关文件与工具 · 能力隔离:不同模型 / 指令 / 权限 · 并行执行:缩短墙钟时间

任务很短、步骤强依赖、共享对象频繁变化时,委派反而亏本。

目标与边界 · 已知上下文 · 能力与权限 · 预算 · 输出与证据 · 失败语义 · 验收条件

  • 失败策略:FAIL_FAST · BEST_EFFORT · RETRY_OR_REASSIGN · ESCALATE

  • 左:Delegation 委派 父任务保留责任,委派有边界的子任务;父任务仍是责任人。

  • 右:Handoff 移交 控制权转移,接收者成为责任人。

二者都不能只靠一条自然语言消息,至少要有任务关系、状态与责任变更记录。子任务产物不是可复述的“答案”,而是新的 Observation——过 Schema 校验与父任务验收后,才进入权威状态。

⑥ 机制:异步任务与长程续行 ​

企业任务经常超过一次请求、一个进程、一个上下文窗口的生命周期;任务身份与当前连接分离。

  • 提交后获得稳定 task_id,持续消费事件,可断开;等待 / 后台运行时释放计算资源;条件满足后从权威状态恢复
  • 后台任务、事件与恢复共用一套契约:稳定 ID · 父任务 ID · 状态 · 事件序号 · 超时 · 取消与幂等 · Continuation
  • 暂停前停止新行动并保存状态;恢复时重查目标、外部条件、权限与剩余预算;取消沿父子传播,外部副作用保留事实、必要时补偿

Context Reset 只控制语义:旧窗口形成一致继续点,新窗口从权威状态重建视图。

SDK 提供调用与事件接口;租户身份、任务队列、Session 索引、Artifact 存储、权限策略与业务验收仍需企业外围补齐 · 本地 SDK 进程 ≠ 分布式在线服务;Session 存共享存储,任意实例可接续

平台承载(Qoder Cloud Agents):Agent 固化行为、Environment 定义运行条件、Session 承载任务、Event 负责输入输出;执行内核成本降低,业务责任(数据边界、目标、审批、验收)不消失。

⑦ 机制:失败分类 · 幂等 · 无进展检测 ​

  • 瞬时错误 → 有界退避;参数错误 → 修正;环境缺失 → 重建;权限拒绝 → 等待或终止
  • 重复探索 → 重新规划;业务条件不满足 → 明确缺口;“Agent 失败”本身不是可执行诊断

有副作用的行动重试前,先回答“上一次究竟有没有发生”:幂等键 + 记录请求结果 + 优先查询状态;切换模型 / 工具 / 环境的降级路径要记录。

无进展检测比最大步数更早发现问题:同参重复调用 · 反复同一错误 · Plan 不变 · 无新事实 · 行动循环。

⑧ 收口:完成由证据决定(五级验证 + 完成门禁) ​

A 结构验证:Schema / 文件存在 · B 环境验证:真实系统 / 文件差异 · C 确定性验证:测试 / 规则 / 静态检查 · D 独立模型验证:独立 Context 查遗漏 E 人工验收:审阅 / 签署

  • 验证强度与风险匹配,从结构到人工逐级递进;验证失败是新的 Observation,不是简单结束

模型只能提出完成申请,Harness 才能提交完成状态。Verifier 是单次任务的完成门禁;跨版本判断 Harness 好坏属于独立的 Evaluation 环节,不在单次任务门禁之内。

依赖清单 · 代码差异 · 单测 / 集成 / 安全扫描报告 · 评审意见 · 变更单

“已完成”是一组目标相关、可寻址、可核验的事实,而非一句自然语言。

▍逻辑全景图 · 图 1 · 执行内核主链路:Agent Loop(Prepare→Model→Act→Observe→Verify)+ 10 态状态机 + 多维预算边界 ​

Prepare→Model→Act→Observe→Verify 循环推进;状态机管合法转换;预算构成外部终止边界;权威状态全程可机读。

  • Loop 主链路 / 平台核心
  • 执行 / 状态流转
  • 等待 / 终止 / 预算边界
  • 观测 / 证据
  • 中性状态

读法:① 左侧主链从上到下:Loop 五阶段循环推进,Model 分出 Waiting 等待,Verify 通过进入 Completed,预算耗尽进入 Failed;② 中部 10 态状态机只允许合法转换,WAITING 与 PAUSED 都不是结束;③ 右侧权威状态全程可机读,观测证据回流后再进入权威状态;④ 底部收口:内核固定、能力插拔。面试一句话:Agent Loop 五阶段驱动任务过程,权威状态与 10 态状态机管边界,多维预算是外部终止条件,完成由证据决定。

▍逻辑全景图 · 图 2 · 委派与续行:Subagent 契约三隔离 / Delegation vs Handoff / 异步 Continuation 续行 ​

受控委派带可机读契约;责任边界分 Delegation 与 Handoff;任务身份与连接分离,跨请求、跨进程、跨上下文窗口续行。

  • 主 Agent / 责任主体
  • Subagent / 执行通道
  • 风险 / 失败升级
  • 证据回流 / 观测
  • 中性边界

读法:左上 Subagent 三隔离,右上七字段可机读契约;中部 Delegation 保留责任、Handoff 转移控制权,失败四策略与产物回流通道闭合;底部异步续行把 task_id、事件游标与 Continuation 作为稳定身份,跨请求、跨进程、跨上下文窗口接续。面试一句话:受控委派靠隔离 + 契约 + 边界,长程续行靠任务身份与连接分离,业务责任不随平台承载消失。

▍书中关键图(SVG 重绘版 · 示意) ​

图 1|Agent Loop 与任务状态机(重绘自 4.1.1 状态图) ​

图 2|主 Agent 与 Subagent 的委派协同(重绘自 4.3.3 流程图) ​

图 3|异步长任务:把成熟 Harness 嵌入企业服务(重绘自 4.4.2 架构图) ​

原书 Mermaid 图(可编辑) ​

以下图来自原书 Markdown,保留原始结构,便于修改和对照。

原书图 1|让任务脱离当前连接持续存在 ​

把 AI 工程讲到既懂也会用