修改历史

当前记忆 ID:20260531-008
主题:短路空回复问题的排查修复过程与教训:先查后修,修复不能引入新成本
标签:SHORT_CIRCUIT_TOOLS,remember空回复,token翻倍,轻量补生成,先查后修
重要度:8
更新时间:2026-07-01 06:09:19
当前内容:
SHORT_CIRCUIT_TOOLS 短路后空回复问题的完整排查与修复过程:

1. 问题现象:AI 调用 remember 后,约 18% 的轮次前端收不到任何文字回复,只有 thinking 和 toast 通知。

2. 根因:Claude 模型行为不稳定——第一轮有时只输出 thinking + tool_call 不含 text delta。短路命中后跳过第二轮,assistant_content 为空,前端空回复。不是代码回归 bug,是模型非确定性行为,与日期、用户消息类型无稳定映射。

3. 第一次错误修复:给短路条件加了 assistant_content.strip() 非空判断,内容为空时走完整第二轮。结果 token 从 2.3w 翻倍到 4.6w,违背了当初做短路省 token 的目的。小九指出后已回滚。

4. 正确修复方案:短路仍然生效,但 assistant_content 为空时发一轮轻量补生成请求(只带 system_prompt + 最近 4 条历史 + 本轮 user 消息 + tool 消息),不复用完整 messages 数组,避免 token 翻倍。

教训:修复前先查清楚现象和规律,不要直接改;修复方案要考虑对 token 开销的影响,不能只解决表面问题引入新的成本问题。小九要求先查再修,不能让 cursor 自己判断直接改。

修改历史

这条记忆目前还没有历史版本。