任务分解与委派合同

本节目标

把“帮我做一部分”改写成独立、最小、可验收的子任务;理解委派不等于转移最终责任。

从完成证据反向分解

先写总任务的完成证据,再形成工作分解结构:

  1. 总输出是什么?
  2. 哪些证据能证明它正确?
  3. 哪些产物可由不同角色独立生成?
  4. 哪些依赖必须先完成?
  5. 哪些步骤共享可变资源,不能并行?

好的子任务有高内聚、低耦合:内部步骤围绕一个结果,外部只通过明确输入输出连接。按“角色喜欢做什么”拆分容易产生重叠;按“可验收产物”拆分更稳定。

最小任务合同

{
  "task_id": "T-20",
  "delegation_id": "D-20-1",
  "owner": "evidence_agent",
  "goal": "生成三条带来源的事实记录",
  "inputs": ["question", "approved_sources"],
  "dependencies": ["T-10"],
  "output_schema": "evidence-list-v1",
  "permissions": ["read:web:allowlist"],
  "grant_ref": "grant:research-read-v3",
  "tenant_id": "workspace-demo",
  "budget": {"max_steps": 4, "deadline_s": 30},
  "acceptance": [
    "每条事实包含可访问 URL",
    "事实与来源内容一致"
  ],
  "on_failure": "return_structured_error"
}

合同必须独立于自然语言角色描述。运行时应验证字段、权限和预算,而不是相信 Agent 自己遵守。

owner 是任务负责人,不是可用于访问资源的身份;permissions 也不是可复制的凭据。生产合同还应引用签发者、运行主体、租户/信任域、最小动作和资源范围、起止时间、策略版本,以及高风险动作绑定的审批决定和输入摘要。执行工具时仍以当前经过认证的主体和资源策略重新判定,不能因上游 Agent 说“已授权”就放行。完整的跨边界合同与离线检查见 身份、授权与跨边界信任。

委派时传什么

只传完成任务所需的最小包:

  • 目标与非目标;
  • 已验证输入和来源;
  • 输出结构及示例;
  • 工具/数据权限;
  • 预算、截止时间、重试策略;
  • 验收条件;
  • 敏感字段处理规则;
  • 上游 trace ID 与 task ID。

不要默认转发完整聊天历史。无关历史增加成本,也可能把用户数据或恶意工具文本传播给更多 Agent。若必须摘要,保留来源指针和不确定性,不把摘要当原始证据。

依赖与并行

用有向无环图(DAG)表达先后关系。只有没有未完成依赖、且不会竞争同一排他资源的任务才能进入 ready。并行数量还要受全局预算和服务限流控制。

若 A、B 都写同一草稿,它们并非真正独立。可改为 A、B 只产出建议,唯一作者 C 合并;或为不同文件划定所有权。

验收与返工

验收器检查结构、证据和不变量,不重做生产者的工作。失败后返回稳定错误类别:

  • invalid_input:上游合同不完整,不应重试;
  • transient_failure:临时故障,可有限退避重试;
  • quality_failure:结果不达标,可带反馈返工;
  • policy_denied:权限或安全策略拒绝,不得换 Agent 绕过;
  • budget_exhausted:停止并上报部分进度。

常见错误

  • 把委派写成新提示词:缺少任务 ID、结构、权限和验收。
  • 无边界递归委派:每个 Agent 都可继续创建 Agent,导致预算不可控。
  • 输出即事实:下游直接信任上游自然语言。应做结构验证和来源核验。
  • 多个所有者:冲突时无人负责。每个可变产物只设一个写入所有者。

练习与自测

把“调研三款向量数据库并给建议”拆成最多四个子任务,写出依赖和验收。自测:供应商资料搜集可并行吗?最终权衡表由谁写?若两名专家结论相反,合同是否规定了证据格式和仲裁者?

下一步

继续 身份、授权与跨边界信任,再进入消息与共享状态。

参考资料