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

32 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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 泄漏内部证据,以及异常路径没有持久化终态。