任务分解与委派合同
本节目标
把“帮我做一部分”改写成独立、最小、可验收的子任务;理解委派不等于转移最终责任。
从完成证据反向分解
先写总任务的完成证据,再形成工作分解结构:
- 总输出是什么?
- 哪些证据能证明它正确?
- 哪些产物可由不同角色独立生成?
- 哪些依赖必须先完成?
- 哪些步骤共享可变资源,不能并行?
好的子任务有高内聚、低耦合:内部步骤围绕一个结果,外部只通过明确输入输出连接。按“角色喜欢做什么”拆分容易产生重叠;按“可验收产物”拆分更稳定。
最小任务合同
{
"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,导致预算不可控。
- 输出即事实:下游直接信任上游自然语言。应做结构验证和来源核验。
- 多个所有者:冲突时无人负责。每个可变产物只设一个写入所有者。
练习与自测
把“调研三款向量数据库并给建议”拆成最多四个子任务,写出依赖和验收。自测:供应商资料搜集可并行吗?最终权衡表由谁写?若两名专家结论相反,合同是否规定了证据格式和仲裁者?
下一步
继续 身份、授权与跨边界信任,再进入消息与共享状态。
参考资料
- OpenAI Agents SDK:Agent orchestration(访问于 2026-07-22)
- A2A Protocol Specification(访问于 2026-07-22)