19
Truth · workflow
runtime-truth-regression
19-runtime-truth-regression.md
◉
WHAT IS THIS
定位运行时真相回归 workflow。它专门处理“真实业务状态已经改变,但 assistant、UI 或最终响应说失败”的问题。
核心原则:副作用结果优先于最终文案。最终文案、toast、error boundary 必须服从 audit 和业务状态。
⚡
TRIGGERS
触发场景▸写工具返回成功,但 child agent timeout 后展示失败。
▸后端状态已变更,UI toast 仍说暂时无法处理。
▸发布、审批、创建、删除等高风险操作确认后出现模糊失败。
▸用户重试会触发“已处理/不可重复”的业务状态。
▸Regression test 只覆盖了 tool call,没有覆盖最终展示。
↹
INPUT & OUTPUT
输入 / 产出↘ INPUT
- 失败 session id 或 run id。
- 写操作 tool call record。
- 业务状态查询方式。
- UI 错误文案或截图。
- 相关 orchestrator、final response、toast 代码路径。
- Targeted test 命令。
↗ OUTPUT
- Truth table:tool result、DB state、assistant text、UI state。
- 误报失败的根因。
- Regression test。
- Patch:确定性成功收尾、状态重查、错误分层或 UI 文案修正。
- 复验说明。
🪜
STEPS
编排步骤- 1确认副作用是否发生查 tool result、audit、DB/business state。不要只看 assistant 最终文本。
- 2建 truth table分别记录 tool、业务状态、orchestrator status、assistant text、UI toast。
- 3找到误报层判断是 child loop timeout、final LLM 缺失、error wrapper、SSE bridge、frontend toast,还是 cache 旧状态。
- 4写失败测试复现“写工具成功,但后续 final response 失败或超时”的路径。
- 5做确定性收尾对已确认写操作成功的路径,优先返回明确成功文案或重新读取业务状态,不依赖下一轮 LLM。
- 6保护幂等和重试对同一业务对象,避免测试或复验再次执行写操作。必要时先查状态或换未处理样本。
- 7更新 UI 反馈UI 不应把“最终文案超时”和“业务操作失败”混成同一个错误。
⚙
AGENT ROLES
Agent 分工⚙
Truth Auditor
建立 tool/DB/assistant/UI 真相表。
⚙
Regression Agent
写失败测试。
⚙
Orchestrator Agent
修 child loop、timeout、final response。
⚙
UI Agent
修 toast、SSE 状态、展示层。
⚙
Verifier Agent
用未处理样本或只读查询复验。
✓
ACCEPTANCE GATE
验收 gate- ✓能证明业务副作用是否已发生。
- ✓成功副作用不会被最终 LLM timeout 改写成失败。
- ✓用户可见文案区分“已成功但回复生成失败”和“业务失败”。
- ✓Regression 覆盖写工具成功后的收尾路径。
- ✓复验不会重复执行同一个高风险写操作。
⊘
FAILURE HANDLING
失败处理如果业务状态不可查,不声明成功,只声明 tool 返回成功且缺状态证据。
如果写操作结果不可幂等,测试必须 mock 或使用专用 fixture。
如果问题来自 route/capability 未进入目标能力,转 →#18。
⌘
TEMPLATE
Truth table 模板| Layer | Evidence | Status | Notes |
| --- | --- | --- | --- |
| Tool result | | | |
| Business state | | | |
| Orchestrator | | | |
| Assistant text | | | |
| UI | | | |