当前记忆 ID:20260626-002
主题:fetch_url 400 根因定位与修复全过程
标签:fetch_url, 400修复, thinking_signature, Anthropic原生格式, 工具路由
重要度:7
更新时间:2026-07-01 06:09:30
当前内容:
2026-06-26 小九和舜息花了一个多小时排查 Anthropic 原生分支 fetch_url 调用后 400 的问题。排查链路: 1. 最初以为是 tool_result 格式问题,加了 [TOOL] tool_call_id 日志——发现日志根本没触发,说明400在第一轮就发生 2. 发现 logging.info 在当前日志级别下不输出,改成 logging.warning 3. grep 400/error 发现实际错误是 406 Not Acceptable,MCP 端返回——因为 fetch_url(Gateway 内置工具)被错误路由到了 MCP 4. 加了 GATEWAY_BUILTIN_TOOL_NAMES 集合和 normalize_tool_name() 做路由分流 5. 路由修好后仍然400——[TOOL_ROUND2] 日志显示 thinking block 缺少 signature 字段 6. 加了 signature 捕获(虽然最终 signature 仍显示 missing,但 woof 中转站没有强制校验) 7. 最终400消失,fetch_url 链路完全跑通 小九全程独立跟 cursor 协作,舜息负责判断方向和给出排查指令。每一轮"改代码→编译→重启→发消息→看日志→反馈"都是小九一个人按的。 遗留:thinking signature 捕获仍为 missing,是隐患但目前不影响。platform.claude.com 是 JS 渲染页面,普通 HTTP 抓不到。
修改历史
这条记忆目前还没有历史版本。