评测、可观测性与安全边界
本节目标
建立从单任务到系统级的评测与追踪;识别委派链带来的权限放大、提示注入传播和敏感数据扩散。
先比较基线
至少比较三种方案:
- 单次调用或单 Agent;
- 固定工作流;
- 候选多 Agent 拓扑。
使用相同测试集、模型/工具条件和成功标准。多 Agent 的“协作增益”可表达为:
增量成功率 = 多 Agent 成功率 - 最佳简单基线成功率
单位增益成本 = 新增成本 / 增量成功任务数增量成功率接近零时,没有理由用更复杂系统。
分层指标
结果层
- 端到端任务成功率;
- 必需证据覆盖率;
- 事实/操作错误率;
- 人工接受率和返工率。
协作层
- 路由与委派正确率;
- 子任务验收通过率;
- 重复工作比例;
- 冲突率、恢复成功率;
- 同 key / 不同 digest 冲突率、
needs_review停留时长与人工对账结论; - 无效消息与无进展轮次。
资源层
- 总模型/工具调用数;
- token/费用;
- P50/P95 端到端与关键路径延迟;
- 并行利用率、等待审批时间。
安全层
- 越权工具调用率;
- 恶意消息跨 Agent 传播率;
- 敏感字段暴露率;
- 审批绕过、停止失效和审计缺失率。
追踪最小模型
每个用户请求有 trace_id;每个 Agent、模型、工具、交接和审批有 span。span 记录父子关系、task_id、attempt、开始/结束、输入输出摘要或哈希、状态、错误类别、预算变化与策略决定。
截至 2026-07-22,OpenAI Agents SDK 官方追踪文档列出模型生成、工具、handoff、guardrail 等 span。该实现还提醒追踪可能包含敏感输入输出;任何产品都应按数据分类决定是否记录原文,默认优先结构化元数据、哈希和脱敏摘要。
调试方法
从失败终态反向沿 task_id 与 parent span 查找:
- 最早偏离预期的状态迁移;
- 当时使用的输入版本和证据;
- 路由/权限决定;
- 是否出现重复或迟到消息;
- 重试是否掩盖了根因。
不要只读最终聊天文本。多 Agent 错误常发生在消息裁剪、错误路由、共享状态覆盖或经理汇总,而不是某个模型“回答差”。
安全边界
- 每个 Agent 使用最小工具和数据权限;委派不能继承经理全部权限。
- Agent 消息和工具结果都是不可信输入;结构验证后仍要执行策略检查。
- 不传递隐含内部推理作为权限依据。
- 高风险工具在执行边界做审批,而不是仅在上游提示中要求“小心”。
- 给外部 Agent 的材料按任务最小化,并记录数据去向和保留期。
- 输出汇总时保留来源与不确定性,防止“多 Agent 一致”被误当事实。
NIST AI RMF 与 Generative AI Profile 提供 Govern、Map、Measure、Manage 的风险管理框架。它们不直接规定多 Agent 代码,但适合用来组织责任、测量、监控和处置。
测试矩阵
至少覆盖:正常完成、无合适专家、错误路由、一个专家超时、重复消息、状态冲突、预算耗尽、恶意子 Agent 输出、审批拒绝、取消、恢复后不重复副作用。
练习与自测
为一个三 Agent 系统设计 10 条测试,至少四条是失败/攻击路径。自测:两个 Agent 给出相同结论能否算双重证据?若二者使用相同输入或一个复制另一个,为什么不能?
下一步
进入 离线协作模拟项目。
参考资料
- OpenAI Agents SDK:Tracing(访问于 2026-07-22)
- NIST AI RMF 1.0(访问于 2026-07-22)
- NIST AI RMF Generative AI Profile(访问于 2026-07-22)