Files
SuperBizAgent-java/openspec/changes/archive/2026-07-21-single-react-chat-application-usecase/proposal.md
T

2.6 KiB
Raw Blame History

Why

阶段 2-5 已具备 RunContext、单一 Diagnosis Agent 和安全释放门禁,但仍没有统一的 Chat 应用用例负责创建 Run、三类意图路由、执行器选择、PreviousTurn 组装和最终持久化。阶段 6A 需要先完成这层内部应用边界,使阶段 6B 只做 HTTP/SSE 协议切换。

What Changes

  • 新增内部 ChatApplicationUseCase,接收原始 Query 和可选 sessionId,创建并显式传播同一个 RunContext。
  • 新增无 Tool、无记忆、无 ReAct 的三分类 Intent Router;输入只含 Query、可选 last intent 和 last user query,技术/非法输出最多两次 attempt,最终失败不默认进入 Diagnosis。
  • 新增固定 SYSTEM_CHAT、KNOWLEDGE_QUERY、DIAGNOSIS 执行器映射;三条路径都接收未改写 Query,互不调用。
  • SYSTEM_CHAT 使用受控单轮 ChatModel;KNOWLEDGE_QUERY 只调用一次 lookup_knowledge,基于有界 RAG projection 生成并验证引用;DIAGNOSIS 串联阶段 4 Agent 和阶段 5 release boundary。
  • 从同一 Session 最近一个 DIAGNOSIS + SUCCESS + published_result 的 Run 确定性组装有界 PreviousTurn,不调用摘要模型、不复用历史日志/MySQL。
  • 扩展 diagnosis_run 持久化 intent、release_outcome 和 JSON published_result,新增 JPA store 和 V012 Flyway migration。
  • 新增应用执行 observer,使阶段 6B 能发送 metadata/status 并在断开时取消同一个 Run;本阶段只在内部测试入口使用。
  • 不修改公开 Controller、/api/chat、/api/chat_stream、前端或现有 SSE 行为。

Capabilities

New Capabilities

  • single-react-chat-application-usecase: 定义 Run/session 生命周期、三类意图路由、固定执行器、PreviousTurn、知识回答引用验证、持久化和内部 observer 行为。

Modified Capabilities

  • None. 公开 Chat/SSE capability 在阶段 6B 才改变。

Impact

  • 新增 com.superbiz.agent.harness.application 内部包、Router/System/Knowledge prompts、focused tests、JPA store 和 V012 migration。
  • 修改 DiagnosisRun/DiagnosisRunRepository,新增数据库字段和安全 previous-turn 查询;复用 DiagnosisHarnessCore、GuardModelCall、HarnessRetryExecutor、HarnessEvidenceTools、DiagnosisAgentUseCase 和 DiagnosisReleaseUseCase。
  • 接口影响为 L3:数据库 schema 和内部 application/store contract 变化,需要独立 migration/rollback 说明;HTTP/SSE/前端保持不变。
  • 主要风险是当前 Run 污染上一回合查询、Router 失败误入 Diagnosis、Knowledge answer 引用伪造、PublishedResult 泄漏内部证据,以及异常路径没有持久化终态。