前言 链接到标题

OpenClaw 提供三个 web 工具:web_fetch(抓取页面)、web_search(搜索)、x_search(搜索 X/Twitter),三者同属 group:web

之前写过一篇 OpenCode web search 配置,这次讲 OpenClaw 的实现和代理配置。

web_fetch 原理 链接到标题

web_fetch 使用 Node.js 内置的 globalThis.fetch,不是 curl 也不是 wget。

调用 web_fetch("https://www.guancha.cn/")
  → Gateway 进程内 Node.js 执行 HTTP GET
  → Readability 提取正文(HTML→Markdown)
  → 缓存 15 分钟(同一 URL 重复请求走缓存,省流量降延迟)+ SSRF 防护(拦截内网 IP,防攻击者用 web_fetch 扫描内网)
  → 返回提取后的文本

沙盒环境下:代码仍在 Gateway 进程执行,但 TCP 连接走沙盒容器的网络命名空间。所以沙盒必须有 sandbox.docker.network 才能联网,但不需要在镜像里装 curl。

实例:抓取观察者网首页 链接到标题

web_fetch("https://www.guancha.cn/")
→ 返回 297KB HTML
→ 提取标题:"观察者网"
→ 整理头条:习近平访朝、中美博弈等

web_search 原理 链接到标题

web_search 调用第三方搜索引擎 API,目前支持 14 个 Provider:

类型 Provider 是否需要 API Key
API-backed Brave、MiniMax Search、Perplexity 等 需要
零配置 Parallel Search Free、DuckDuckGo 不需要

OpenClaw 默认使用 Parallel Search Free(零配置即可用),兜底是 DuckDuckGo。在国内这些服务可能不可达(被墙),需要配置代理。

x_search 是搜索 X/Twitter 的工具,需要 xAI API Key,非免费服务,适用场景有限。

HTTP Proxy 配置(单机/主 agent) 链接到标题

docker-compose.yml 中设置环境变量:

environment:
  HTTPS_PROXY: http://your-proxy:7890
  HTTP_PROXY: http://your-proxy:7890
  NO_PROXY: localhost,127.0.0.1,192.168.0.0/24,10.0.0.0/8

OpenClaw 的网络层会自动读取这些环境变量,使 web_fetchweb_search 的 Provider API 调用走代理。

验证:web_fetch("https://www.google.com") → 走代理返回内容 ✅。去掉代理 → 超时 ❌。

多用户沙盒场景 链接到标题

在沙盒部署基础上(参见 OpenClaw 2026.6.5 多用户沙盒部署方案),沙盒 agent 需要额外三样配置才能联网:

{
  "id": "my_test",
  "sandbox": {
    "docker": {
      "network": "openclaw-sandbox",
      "env": {
        "HTTPS_PROXY": "http://your-proxy:7890",
        "HTTP_PROXY": "http://your-proxy:7890",
        "NO_PROXY": "localhost,127.0.0.1,192.168.0.0/24,10.0.0.0/8"
      }
    }
  },
  "tools": {
    "sandbox": {
      "tools": {
        "alsoAllow": ["group:web"]
      }
    }
  }
}

三项缺一不可:

配置 用途
network: "openclaw-sandbox" 沙盒默认 network: none,不给网完全无连接
env.HTTPS_PROXY 沙盒容器内走代理(网络命名空间隔离导致)
alsoAllow: ["group:web"] 沙盒环境有独立工具策略层,不加则 LLM 看不到 web 工具

镜像不需要定制——debian:bookworm-slim 即可,web_fetch 不依赖 curl。

总结 链接到标题

要点 说明
web_fetch 底层 Node.js globalThis.fetch,不是 curl
web_search 底层 第三方 Provider API
代理怎么配 HTTPS_PROXY 环境变量
沙盒要几样 network + env + alsoAllow
需要 curl? 不需要