31 lines
2.6 KiB
Markdown
31 lines
2.6 KiB
Markdown
# Chat Diagnosis StateGraph Design Freeze Evidence
|
||
|
||
## 证据
|
||
|
||
| 来源 | 证据 | 结论 | 是否已汇报 |
|
||
|---|---|---|---|
|
||
| ISS-011 §3–14 | 已定义目标流程、26 个 State 字段、有限回边、Fallback、Trace 和测试策略 | 可形成无开放分支的阶段 0 设计基线 | 是 |
|
||
| `ChatService` / Controller 引用核查 | 生产链为 Controller → ChatService → SequentialAgent,细粒度状态散布在 ChatService | StateGraph 应只接管 Run 内控制,ChatService 保留生命周期 | 是 |
|
||
| `VerifierInputHook` / `VerifierContextHolder` 引用核查 | Gatekeeper、工具摘要和解析结果通过 Hook/ThreadLocal 隐式传播 | Gatekeeper 与 verified-input 必须迁为显式 Node,不能保留双入口 | 是 |
|
||
| executor-gatekeeper-hook 历史 decisions | 旧阶段曾决定 Gatekeeper 留在 Hook 且不重试 | 本设计有意替换入口,但继续复用确定性规则 | 是 |
|
||
| session-run-trace-isolation 历史 decisions | runId 是执行/Trace 所有权边界,AgentStep/ToolInvocation 已承载明细 | orchestration trace 只附着当前 Run,不新增明细主表 | 是 |
|
||
| Verifier/Composer 历史档案 | checked bindings 和 allowed material 是可信边界 | Builder 不重复验真,Fallback 不泄漏 raw claim | 是 |
|
||
| 本地 Graph Core 1.1.2.0 JAR | 已验证条件边、config-aware Node/Edge、recursion limit、threadId 与 Agent call API | 阶段 1 可基于锁定签名实现,不采用网上漂移示例 | 是 |
|
||
| 主 OpenSpec 核查 | 旧 spec 仍描述 Hook Gatekeeper、完整 tool trace 和外层 groundedness round | 阶段 0 不提前改运行时 spec,后续对应实现阶段再修改 | 是 |
|
||
| 用户原话 | 六个独立 sm-flow;仅阶段 5 E2E;单测按必要性 | 阶段门禁与测试口径已固定 | 是 |
|
||
|
||
## Evidence-driven 结论
|
||
|
||
- 结论:阶段 0 运行时影响为 L1,但冻结目标为 L4。
|
||
- 证据:本阶段 changed paths 无 `src/`/SQL/配置;最终目标改变状态机、Trace API 和 DB。
|
||
- 风险:设计完成不等于运行时完成。
|
||
- 用户确认:已确认分阶段交付。
|
||
- 结论:旧 Gatekeeper-in-Hook 决策应被显式 Node 有意替代。
|
||
- 证据:当前 Hook 引用与 ISS-011 条件边要求冲突。
|
||
- 风险:迁移期双执行。
|
||
- 用户确认:ISS-011 冻结决策已确认。
|
||
- 结论:阶段 0 不需要单元测试或 E2E。
|
||
- 证据:Git 运行时拒绝列表命中 0,OpenSpec strict 和文档一致性已覆盖本阶段可观察产物。
|
||
- 风险:运行时正确性仍未证明,将由阶段 1–5 测试和最终 E2E 证明。
|
||
- 用户确认:已确认。
|