报错

原因
anthropic-sdk
首先看 anthropic-sdk
可以看到web_search和web_fetch这两个内置工具都是服务端工具,所以它们的执行都依赖 Anthropic 服务端

WebFetch工具
在sdk中,web_search和web_fetch都是服务端工具
但是,在泄露的claude code源码中:
- WebSearch,使用了 SDK 中定义的服务端 web_search
- WebFetch,自己用 axios 实现,属于客户端
既然如此,为什么WebFetch工具还会报错?
参考这个 知乎文章 下的评论:
Claude Code 的 WebFetch 在发起实际 HTTP 请求前,会先向 claude.ai/ 发送域名安全预检请求。claude.ai 前面部署了 Cloudflare Bot Protection,从 headless CLI 发出的请求会被 Cloudflare 返回 403 JavaScript challenge,而 CLI 环境无法执行 JS,所以预检永远失败。错误提示里说的 “network restrictions” 其实具有误导性——真正卡住的是 Anthropic 自己 CDN 上的 Cloudflare
官方文档:
解决
官方文档:
Claude Code 设置 - Claude Code Docs
~/.claude/settings.json
这个配置可以跳过这一步预检
{
"autoUpdatesChannel": "latest",
"skipWebFetchPreflight": true,
"env": {
...
}
}
