### [给 SearXNG 接入豆包搜索,解决 OpenClaw 中文信源不稳定](https://www.zuoshipin.com/article/5880) **Published:** 2026-07-17T09:36:51 **Author:** 17600879176 **Excerpt:** 通过 SearXNG 的 json_engine 接入豆包搜索,再让 OpenClaw 统一调用。本文保留完整 YAML 配置,并补充 Agent Plan、双大括号、引擎命名、验证与排错方法。 OpenClaw 的联网搜索效果,很大程度上取决于信源。Google 在部分网络环境下不可用,Bing 偶尔不稳定,Startpage 和 DuckDuckGo 也可能触发验证码。即使部署了 SearXNG,底层搜索引擎一旦失效,Agent 得到的结果仍会变差。 一个实用的解决办法,是把**豆包联网搜索**接入 SearXNG,再让 [OpenClaw](https://www.zuoshipin.com/link/916.html) 统一通过 SearXNG 搜索。这样既保留元搜索引擎的聚合能力,又增加一个更适合中文内容的信源。 ![SearXNG 聚合搜索引擎与 OpenClaw 搜索信源](https://admin.zuoshipin.com/wp-content/uploads/2026/07/searxng-doubao-search-openclaw.avif) SearXNG 聚合搜索引擎与 OpenClaw 搜索信源 **整体链路:**OpenClaw 发起搜索 → SearXNG 接收查询 → json\_engine 调用豆包搜索 API → SearXNG 统一返回标题、链接和摘要。 [查看 SearXNG 站内详情与部署入口](https://www.zuoshipin.com/link/5740.html) ## 为什么给 SearXNG 增加豆包搜索? SearXNG 是一个开源元搜索引擎,它不会自己生产搜索结果,而是向多个上游引擎发起请求,再统一聚合。因此,部署成功不代表信源永远稳定:免费引擎会修改接口、增加验证码或限制服务器 IP。 **中文结果更友好** 豆包搜索更容易覆盖中文网页、资讯和本地化内容。 **JSON 结构稳定** API 返回结构化结果,适合 SearXNG 的 json\_engine 解析。 **作为备用信源** 其他搜索引擎被验证码或限流时,仍能给 Agent 提供结果。 原体验使用火山方舟 Agent Plan 的豆包搜索 Harness,并提到个人套餐每月提供一定免费调用额度、超出后可使用 AFP 抵扣。**套餐额度和计费会调整**,请以当前控制台显示为准。 ## 接入原理:使用 SearXNG 的 json\_engine SearXNG 内置通用 `json_engine`,可以在 `settings.yml` 中配置任意 JSON 搜索 API。我们只需要定义请求地址、POST 请求体、鉴权 Header,以及返回数据中标题、链接和摘要所在的字段。 这一能力可在 [SearXNG JSON Engine 官方文档](https://docs.searxng.org/dev/engines/json_engine.html) 中核对。官方也明确说明:POST 请求可使用 `request_body`,非占位符的大括号必须双写。 ## 普通 API 接入方式 如果没有开通 Agent Plan,可以先在火山引擎控制台开通对应搜索服务并获取 API Key,然后编辑 SearXNG 的 `settings.yml`,在 `engines` 部分加入以下配置: ``` - name: doubao-search engine: json_engine search_url: https://open.feedcoopapi.com/search_api/web_search method: POST request_body: >- {{"Query": "{query}", "SearchType": "web", "Count": 10, "NeedSummary": true}} results_query: Result/WebResults url_query: Url title_query: Title content_query: Summary headers: Content-Type: application/json Authorization: Bearer YOUR_API_KEY_HERE X-Traffic-Tag: skill_web_search_common categories: - general disabled: false ``` **最容易踩的坑:双大括号。**`json_engine` 会用 Python `.format()` 处理请求体,因此 JSON 自身的 `{` 和 `}` 必须写成 `{{` 与 `}}`。只有真正的 SearXNG 变量 `{query}` 保持单括号,否则会触发 `KeyError`。 ## Agent Plan 接入方式 如果已经开通方舟 Agent Plan,可以使用对应的 Agent Plan API Key。配置结构不变,只需要将 `YOUR_API_KEY_HERE` 替换为控制台生成的密钥。示例中的密钥是占位符: ``` headers: Content-Type: application/json Authorization: Bearer ark-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-xxxxx X-Traffic-Tag: skill_web_search_common ``` 可从 [火山方舟 Agent Plan 控制台](https://console.volcengine.com/ark/agent-plan) 查看当前套餐和 API Key。不要把真实密钥写进公开仓库、截图或文章;更稳妥的做法是通过环境变量或私有配置注入。 **注意:**普通联网搜索 API Key 与 Agent Plan API Key 可能属于不同凭证体系。若出现 401,除了检查拼写,还要确认密钥类型、套餐状态和对应服务权限。 ## 第二个坑:引擎名不能包含下划线 SearXNG 会校验引擎名称。这里应使用 `doubao-search`,不要写成 `doubao_search`,否则可能出现: ``` Engine name contains underscore ``` 连字符 `-` 可以使用,下划线 `_` 不行。这个错误与 API 本身无关,发生在 SearXNG 加载配置阶段。 ## 重启并验证配置 保存 `settings.yml` 后重启 SearXNG 容器: ``` docker restart searxng ``` 随后访问下面的 JSON 搜索接口,将主机和端口替换为自己的部署地址: ``` http://你的地址:端口/search?q=测试&format=json ``` 检查返回结果里是否出现 `doubao-search` 引擎。如果没有,查看容器日志: ``` docker logs searxng | grep doubao ``` ## 常见问题排查 | 现象 | 可能原因 | 处理方式 | | --- | --- | --- | | 启动时报 KeyError | JSON 大括号未双写 | 保留 `{query}`,其余改为双括号 | | 返回 401 | API Key 错误、类型不匹配或无权限 | 重新生成密钥并确认服务授权 | | 引擎加载失败 | 名称包含下划线 | 改为 `doubao-search` | | JSON 有结果但 OpenClaw 看不到 | OpenClaw 的 SearXNG 地址或格式配置错误 | 先单独验证 SearXNG JSON 接口,再检查 Agent 配置 | ## 最终效果与实际建议 配置完成后,OpenClaw 的搜索请求先进入 SearXNG,豆包搜索成为聚合结果中的一个稳定中文信源。相比完全依赖海外免费搜索引擎,中文查询的可用性通常更好,也降低了单个引擎失效导致整个 Agent 无法检索的风险。 豆包产品信息可查看 [豆包站内详情页](https://www.zuoshipin.com/link/809.html)。不过,建议不要只启用一个引擎:保留 Bing、Brave 或其他可用信源,并通过 SearXNG 做聚合和容灾,效果通常比单一路径更稳。 **我的观点:**这套方案真正解决的不是“让 OpenClaw 能搜索”,而是把搜索信源从 Agent 本身解耦。以后更换上游 API,只需要调整 SearXNG,不必修改每个 Agent。对于长期运行的个人知识助手,这种中间层比绑定某一家搜索服务更容易维护。 ## 安全与维护提醒 - 不要在公开配置、日志截图或 Git 仓库中暴露 API Key。 - 修改前备份 `settings.yml`,升级 SearXNG 后重新验证 json\_engine 配置。 - 对搜索结果保持交叉验证,摘要不等于原文事实。 - 定期查看调用次数、AFP 消耗和异常日志,避免密钥泄露导致额外费用。 ## 总结 通过 SearXNG 的 `json_engine`,只需在 `settings.yml` 增加一段配置,就能把豆包搜索接入 OpenClaw 的检索链路。关键点只有三个:请求体大括号要双写、引擎名使用连字符、API Key 类型必须匹配。 完成后先用 SearXNG 的 JSON 接口独立验证,再接入 OpenClaw。这样排错路径更清晰,也能为后续增加其他搜索 API 留出空间。 说明:API 地址、免费额度与计费规则依据当前资料整理,可能随服务调整;实际使用前请以火山引擎控制台和 SearXNG 当前版本文档为准。 **Tags:** OpenClaw, SearXNG, 火山方舟 Agent Plan, 豆包搜索 **Categories:** AI资讯 ---