概述
网络搜索是 AI 智能体获取实时信息的关键能力。OpenClaw 的 web 内置工具提供了强大的搜索功能,支持多种搜索引擎后端,还能配合 browser 工具进行深度信息提取。本文将详细介绍如何配置和优化 OpenClaw 的网络搜索技能。
Web 工具架构
OpenClaw 的 web 工具是七阶段工具管线中"OpenClaw 内置工具"阶段注入的核心工具之一。它直接运行在 Pi SDK 嵌入层内,可以执行 HTTP 请求、调用搜索 API 和抓取网页内容。
与 browser 工具不同,web 工具不需要真正的浏览器实例,而是通过 HTTP 客户端直接发起请求,因此更加轻量和快速——非常适合高并发的搜索操作。
搜索引擎配置
Google Search API
tools:
web:
search:
provider: google
apiKey: ${GOOGLE_API_KEY}
searchEngineId: ${GOOGLE_CX}
defaultResultCount: 10
safeSearch: moderate
language: zh-CN
region: CN
Bing Search API
tools:
web:
search:
provider: bing
apiKey: ${BING_API_KEY}
defaultResultCount: 10
market: zh-CN
safeSearch: moderate
SearXNG(自托管)
对于注重隐私或需要完全控制搜索行为的场景,OpenClaw 支持连接自托管的 SearXNG 实例:
tools:
web:
search:
provider: searxng
endpoint: "http://localhost:8888/search"
format: json
engines:
- google
- bing
- duckduckgo
defaultResultCount: 10
搜索结果处理
结果格式化
搜索结果在呈现给 AI 智能体之前会经过格式化处理。每条结果包含标题、URL、摘要和来源信息。AI 智能体利用这些信息来判断哪些结果值得深入阅读。
内容提取
当 AI 智能体决定深入阅读某条搜索结果时,web 工具会获取目标页面并提取主要内容。提取过程包括:
- HTML 解析:解析页面 DOM 结构
- 内容识别:使用算法识别正文内容区域,过滤导航栏、广告、侧边栏等无关内容
- 格式转换:将 HTML 转换为干净的纯文本或 Markdown 格式
- 长度控制:截断过长的内容,同时保留最相关的部分
tools:
web:
extraction:
method: readability
maxContentLength: 5000
includeImages: false
includeLinks: true
outputFormat: markdown
缓存策略
为了减少重复请求并提高响应速度,web 工具内置了多层缓存机制:
tools:
web:
cache:
searchResults:
enabled: true
ttl: 3600
maxEntries: 1000
pageContent:
enabled: true
ttl: 7200
maxSize: 100MB
搜索结果缓存的 TTL 通常设置得较短(1 小时),因为搜索结果可能频繁变化。页面内容缓存的 TTL 可以更长,因为页面内容变化相对较慢。
搜索质量优化
查询改写
在调用搜索之前,AI 智能体会自动改写用户的自然语言问题,提取关键词并组合成更有效的搜索查询。
tools:
web:
queryRewriting:
enabled: true
addDateFilter: auto
expandAcronyms: true
当 addDateFilter 设置为 auto 时,AI 智能体会根据问题的时效性要求自动添加日期过滤器。例如,"最新科技新闻"会自动将搜索范围限制为近期内容。
多轮搜索
对于复杂问题,单次搜索往往不够。OpenClaw 支持 AI 智能体进行多轮搜索——先进行广泛搜索了解大致方向,然后根据初步结果细化查询进行深入搜索。
tools:
web:
multiRound:
enabled: true
maxRounds: 3
maxTotalResults: 30
来源多样性
为了避免单一来源的信息偏差,可以配置来源多样性要求:
tools:
web:
diversity:
minDomains: 3
maxResultsPerDomain: 3
与 Browser 工具的协作
web 工具和 browser 工具互为补充:
- Web 工具:适用于快速搜索和轻量级内容提取,不需要 JavaScript 渲染
- Browser 工具:适用于需要交互操作或 JavaScript 渲染的页面
AI 智能体会根据页面特征自动选择合适的工具。当 web 工具提取的内容不完整时(如单页应用),智能体会切换到 browser 工具进行完整渲染和提取。
渠道适配
搜索结果在不同渠道中的展示方式有所不同:
- Discord:使用 embed 消息展示搜索结果卡片,包含标题、摘要和链接
- Telegram:使用 HTML 格式化,链接可直接预览
- Slack:使用 Block Kit 构建结构化搜索结果
- WhatsApp:纯文本格式,包含可点击链接
安全与合规
域名过滤
tools:
web:
security:
blockedDomains:
- "*.malware.com"
- "phishing-site.example"
allowedDomains: [] # 为空表示允许所有未被屏蔽的域名
内容过滤
搜索结果和提取的内容会经过内容安全检查,过滤不当内容。
速率限制
tools:
web:
rateLimit:
searchesPerMinute: 30
pagesPerMinute: 60
perUser:
searchesPerMinute: 5
监控与分析
OpenClaw 会记录搜索工具的使用统计数据,包括搜索次数、平均响应时间、缓存命中率和常见查询词。这些数据可以帮助你了解搜索工具的使用模式,持续优化配置。
总结
网络搜索技能是 AI 智能体通往互联网的窗口。通过合理配置搜索引擎、优化查询策略、设置缓存和安全规则,你可以让 AI 智能体高效、安全地获取实时信息,为用户提供准确及时的回答。