learner-i
ff06067a18
fix: 移除 fcIdx -1 偏移,修复并发工具调用撞键问题 (#5095)
当 Claude 直接以多个 tool_use 块起始(无文本前导,index=0)时,
-1 偏移导致 index=0 和 index=1 同时映射到 fcIdx=0:
- index=0 的工具 args 先流完,发出一次合法调用 ✓
- index=1 的 args 追加到同一 map 槽位,污染后为非法 JSON,该工具丢失 ✗
- index=2 以后的工具各自独占唯一 fcIdx,正常发出 ✓
结果:每轮并发调用中第 2 个工具必然丢失,
模型收不到对应的工具结果后重试剩余工具,
产生雪球效应(10个→9个→8个...逐轮收缩)。
修复:直接使用 Claude 的 block index 作为 fcIdx,不做偏移。
fcIdx 仅作为本地 map 的 key,只需保证唯一性,无需从 0 开始。
2026-05-25 23:13:06 +08:00
..
2026-05-25 23:13:06 +08:00
2026-05-22 19:08:38 +08:00
2026-05-19 12:11:24 +08:00
2026-01-26 20:20:16 +08:00
2026-05-19 12:11:24 +08:00
2026-01-25 15:31:23 +08:00
2026-04-02 00:39:13 +08:00
2026-05-22 19:08:38 +08:00
2026-05-22 19:08:38 +08:00
2026-05-22 19:08:38 +08:00
2026-05-22 19:08:38 +08:00
2026-05-22 19:08:38 +08:00
2026-05-25 22:57:02 +08:00
2026-05-19 12:11:24 +08:00
2026-02-22 00:10:49 +08:00
2026-01-14 22:29:43 +08:00
2026-03-02 19:09:48 +08:00
2026-05-22 19:08:38 +08:00
2026-05-22 19:08:38 +08:00
2025-10-11 15:30:09 +08:00