Files
SuperBizAgent-java/openspec/changes/archive/2026-07-21-single-react-evidence-semantic-guards/proposal.md
T

2.5 KiB
Raw Blame History

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。