1.3 KiB
1.3 KiB
Brief: single-react-harness-run-context
背景
旧 Chat/AIOps 通过多个 ThreadLocal 和业务方法内状态机传播 session/run/token/retry,无法成为后续 Tool、Agent、Guard 和新入口的稳定共同边界。Spring AI 默认 10 attempts 还会制造未被 Harness 记录的隐藏重试。
目标
- 建立显式、结构不可变、可异步传播的 RunContext。
- 集中实现 deadline、协作式取消、线程安全预算和唯一 Run 终态。
- 实现类型化、最多两次 attempt、逐 attempt 记录的 Harness retry。
- 提供阶段 3A 可直接使用的 Tool Call Key Factory 和单 Run 容量计数器。
- 将 Spring AI 底层 retry 压为一次。
范围
- 新增 Harness Core/Retry/Tool Store foundation 类型和 focused Fake tests。
- 更新
application.yml的 Spring AI retry 配置。 - 更新 glossary 和 OpenSpec/devflow 档案。
非目标
- 不接入旧 ChatService/AiOpsService/Controller/SSE。
- 不读写现有 ThreadLocal,不删除旧实现。
- 不写
diagnosis_run或 Redis,不实现 Tool projection。
元数据
- 分档:complex
- 接口影响:L2;另有关闭旧 SDK 隐式 retry 的有意内部行为变化
- 关联 Issue:ISS-014 阶段 2
- 关联 OpenSpec:
openspec/changes/single-react-harness-run-context