2.5 KiB
2.5 KiB
Why
阶段 4 已能生成带框架 Tool Call ID 的 DiagnosisDraft,但草稿尚未经过当前 Run 证据验真和隔离语义审查,不能安全发布。阶段 5 需要补齐确定性 EvidenceGuard、单轮 SemanticGuard 和 fail-closed 释放策略,作为阶段 6A/6B 接入公开链路的前置门禁。
What Changes
- 新增确定性 EvidenceGuard,校验 Draft 结构、Analysis ID、报告内部引用,以及当前 Run canonical Tool invocation 的生命周期、证据状态和
agent_result。 - 从三类冻结 Tool projection 确定性生成按 Analysis 分组的 verified evidence snapshot;不读取
raw_response,不向 SemanticGuard 暴露 Tool Call ID 或 Redis 细节。 - 首次 EvidenceGuard 失败时允许一次无 Tool、无 ReAct 的结构修复;修复后仍失败直接返回
EVIDENCE_VALIDATION_FAILED。 - 新增复用系统同一
ChatModel的隔离单轮 SemanticGuard,校验完整报告语义,只输出SUPPORTED|UNSUPPORTED + reason,不生成或修改报告。 - Harness 对 SemanticGuard 执行输入预算、模型/Token 预算、单次超时、取消、严格输出解析和最多两次技术 attempt;
UNSUPPORTED不重试。 - 新增 release use case:
SUPPORTED原样释放 Draft,业务不支持或技术不可用返回固定 SafeFallback,任何失败均不泄漏 Draft 或 SemanticGuard reason。 - 不切换公开 Chat/AiOps,不删除旧 Gatekeeper/Verifier/Composer,不修改 SSE 或持久化协议。
Capabilities
New Capabilities
single-react-evidence-semantic-guards: 定义 DiagnosisDraft 的物理验真、verified snapshot、单次结构修复、隔离语义审查和安全释放行为。
Modified Capabilities
- None. 既有 Agent、Tool、Harness Core 和公开 Chat capability 的需求语义不在本阶段改变。
Impact
- 新增
com.superbiz.agent.harness.guard.evidence、guard.semantic和release内部包,以及 SemanticGuard prompt 和 focused tests。 - 复用
CanonicalInvocationStore、ToolCallKeyFactory、三类 Tool contract、DiagnosisHarnessCore、HarnessRetryExecutor、RunContext、DiagnosisDraft、SafeFallback和系统ChatModel。 - 内部接口影响为 L2:阶段 6A 将消费新的 release use case;本阶段无公开 Controller、SSE、DTO、数据库或旧 ChatService 行为变化。
- 主要风险是快照字段遗漏、超时任务残留、错误重试业务
UNSUPPORTED,以及 Fallback 意外携带未验证内容;设计和测试必须逐项 fail closed。