为什么需要让 AI 联网
OpenClaw 本身是个跑在本机的智能体,默认只凭训练知识和你给的上下文回答问题。但遇到下面这些情况,闭门造车就会翻车:
- 问「今天某框架最新版本号是多少」——知识有截止日期,答不准。
- 要抓取某个网页的正文做摘要——纯靠记忆根本拿不到页面内容。
- 做竞品/舆情/资料调研——需要实时、可追溯的信源。
OpenClaw 给了两个原生工具解决这个问题:web_search(联网搜索)和 web_fetch(抓取指定 URL 并提取正文)。两者配合,基本能覆盖 90% 的「AI 联网」需求。下面按真实可用参数来讲,不编造输出。
工具一:web_search —— 联网搜索
这是 OpenClaw 封装的搜索能力,返回的是归一化后的搜索结果列表(标题、链接、摘要),不是一整页 HTML。
常用参数
| 参数 | 作用 | 示例 |
|---|---|---|
query |
搜索词,必填 | OpenClaw 定时任务 配置 |
count |
返回条数,1–10 | 5 |
country |
两位国家码,影响区域结果 | CN |
language |
结果语言(ISO 639-1) | zh |
freshness |
时间过滤:day/week/month/year | week |
date_after / date_before |
按发布日期过滤,格式 YYYY-MM-DD |
2026-09-01 |
domain_filter |
只在指定域名内搜 | ["github.com"] |
一个真实调用示例
{
"tool": "web_search",
"arguments": {
"query": "OpenClaw cron 定时任务 实战",
"count": 5,
"country": "CN",
"language": "zh",
"freshness": "month"
}
}
返回结构是结果数组,每条带 title、url、description(摘要)。你可以直接让 AI 基于摘要判断哪几条值得深入,再对其中一条用 web_fetch 取正文。
注意:
freshness和date_after是两套时间过滤,二选一即可;同时给时以搜索提供方实际行为为准,不建议混用。
工具二:web_fetch —— 抓取并提取正文
web_search 拿到的是摘要,web_fetch 才是真正「打开那个网页、把正文读出来」。
常用参数
| 参数 | 作用 | 示例 |
|---|---|---|
url |
目标地址,必填 | https://example.com/doc |
extractMode |
markdown 或 text,默认 markdown |
markdown |
maxChars |
返回最大字符数,超长会截断 | 8000 |
一个真实调用示例
{
"tool": "web_fetch",
"arguments": {
"url": "https://github.com/openclaw/openclaw",
"extractMode": "markdown",
"maxChars": 6000
}
}
extractMode=markdown 会把页面正文转成干净的 Markdown,去掉导航/广告等噪声;text 则更朴素。抓长文时务必用 maxChars 控制长度,否则一篇几万字的文档会直接撑爆上下文。
实战组合:搜 → 筛 → 抓
最实用的不是单独用,而是一条流水线:
- 搜:
web_search拿到 5–10 条候选,看标题和摘要。 - 筛:挑出 2–3 条最相关的 URL。
- 抓:对每条用
web_fetch取正文,让 AI 汇总成你要的答案。
例如调研「2026 年国内静态站点生成器选型」:
第一步 web_search: query="静态站点生成器 2026 对比", freshness="year", count=8
第二步 从结果里挑出 3 个看起来权威的对比文 URL
第三步 对每个 URL 各跑一次 web_fetch(maxChars=5000)
第四步 让 AI 按「构建速度 / 部署难度 / 生态」三列整理成表
这条链路的好处是:每条结论都能回溯到 web_fetch 抓过的真实 URL,不是模型凭空编的。
三个真实踩坑
坑 1:中文搜索结果偏少或被限域
web_search 的结果质量高度依赖 query 写法。中文长句当搜索词,效果往往不如「核心词 + 限定词」。
- 差:
我想知道 OpenClaw 怎么配置微信频道 - 好:
OpenClaw 微信频道 配置 教程
加 country=CN + language=zh 能明显提升中文结果占比。需要英文一手资料时,反过来去掉这两个限制、直接用英文 query。
坑 2:动态渲染页面抓不到正文
web_fetch 是轻量抓取,不会执行 JavaScript。遇到用前端框架渲染的页面(很多后台面板、SPA 应用),抓回来的可能是空壳或只有脚本标签。
应对办法:
- 优先找该内容的「静态版」,比如 GitHub 的
raw文件、文档站的/api或 RSS、官网的*.md源。 - 真需要渲染,可走 OpenClaw 的
browser工具(浏览器自动化)打开页面再读,那是带 JS 引擎的完整浏览器,能拿到渲染后内容——但那是另一条工具链,不在本文范围。
坑 3:超长页面不截断会撑爆上下文
直接 web_fetch 一个长文档且不设 maxChars,正文可能几万字符。一次抓两三个就接近上下文上限,后续对话质量骤降。
经验值:调研场景 maxChars 设在 4000–8000;只要某一节就设小一点,配合多次抓取不同锚点。摘要类任务不需要全文,截中段就够。
一个提效小技巧:用 date_after 锁时间
做「近期动态」「最新版本」类查询时,养成加时间过滤的习惯,能挡掉大量过时结果:
{
"tool": "web_search",
"arguments": {
"query": "OpenClaw 更新日志",
"date_after": "2026-08-01",
"count": 5
}
}
这样搜出来基本都是近一个多月的讨论,配合 web_fetch 抓官方仓库的 release 说明,就能拿到可信的「最新版」信息,而不是模型记忆里的旧版本号。
小结
web_search管「找」,参数里query/count/freshness/country最常用。web_fetch管「读」,记得用extractMode和maxChars控干净、控长度。- 真正好用的是「搜→筛→抓」三段式,每条结论都能回溯到真实 URL。
- 中文搜不好就改短词 + 加 CN/zh;动态页抓不到换静态源或 browser 工具;长文必设上限。
把这两个工具用顺,OpenClaw 就从「凭记忆回答」升级成「能查、能证、能溯源」的研究型助手。
扫码关注公众号,获取更多 OpenClaw 实操技巧:
