Skip to main content
能力要回答两个不同的问题:
  1. Runner 能构造或调用什么? Agent 的构造方式与运行时行为提供 Sandbox、tracing、会话续接和 HITL。
  2. 断言能相信什么结论? 每个 Agent 都必须用 evidenceCoverage 声明六个证据通道的完整性。
defineAgent / defineSandboxAgent 上没有另一个 capabilities 字段。这不表示「什么都不用声明」:两种定义的 evidenceCoverage 都是必填字段,避免缺失证据变成含糊的第四种状态。

构造与运行时能力

必填的六通道声明

defineAgentdefineSandboxAgent 都要求一个 EvidenceCoverage
只有 Adapter 确实完整采到全部通道时才用 completeEvidenceCoverage。官方 converter 会给出它对所归一协议的覆盖声明。手写映射必须把六个通道逐项如实写清:
Turn.evidenceCoverage 是可选的逐轮降级。只列这一轮比 Agent 默认值更差的通道,例如 stream 在 usage 到达前断开。省略的通道继承 Agent 声明。Turn 不能把默认覆盖升格。

覆盖怎样改变断言结果

Coverage 防止「没采到」看起来像「确认没发生」: unavailable 断言始终带机器可读原因落盘,绝不静默丢弃,也不折成通过:
  • 非 optional 的 unavailable 断言让 Attempt errored
  • 显式链 .optional() 的断言仍显示 unavailable,但不影响 Verdict。
Judge 也遵守同一条 Verdict 规则,但有自己的不可用原因:Judge 模型或 API key 解析不到、Judge 调用失败、响应取不出分数,都会得到 unavailable。所以 Judge 并非「永远可用」。

手写映射漏事件会怎样

手写映射漏了事件,却把 eventsactions 声明成 complete,会让负断言在残缺画面上看起来通过。这是错误的完整性声明。在映射覆盖成功、失败、拒绝和并发工具生命周期之前,应当如实声明 partialunavailable 并写原因。 官方 converter 只保证其协议契约明确覆盖的表面。OTel span 不能修补不完整的事件映射:span 只进瀑布图,不进断言。

相关阅读