ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

openclaw元搜索引擎SearXNG搭建指南:TaoToken统一Key接入与配置验证

openclaw元搜索引擎SearXNG搭建指南:TaoToken统一Key接入与配置验证 1. 为什么我要把 SearXNG 和 OpenClaw 拼在一起SearXNG 是一个开源的元搜索引擎它自己不抓网页、不建索引而是把一次查询并发丢给百度、Bing、Wikipedia 等多个底层引擎再把结果去重、排序、聚合后返回给你。适合谁适合想给 AI Agent 或本地工具链配一个「不依赖商业 API Key、无调用次数限制」搜索后端的开发者。OpenClaw 则是一个把搜索、模型调用、工具编排统一起来的网关它的web_search工具支持多种 ProviderSearXNG 就是其中优先级 200 的兜底方案。问题在于单独跑通 SearXNG 不难难的是让 OpenClaw 稳定调用它同时模型侧还要有一个统一的 Key 通道。我试过把搜索和模型 Key 分开管理结果配置文件散落三处改一个端口要翻半天。这篇就把 SearXNG 本地搭建、settings.yml与config.toml骨架、CC Switch/Cline 配置片段、以及 TaoToken 统一 Key 接入一次性串起来目标是一次跑通元搜索聚合链路。核心检索词先摆出来openclaw 元搜索引擎 SearXNG 搭建指南讲的是本地部署 统一 Key 接入 配置验证三件事。下面所有命令和配置都可以直接复制。2. TaoToken 前置统一 Key 与 API 通道准备在动 SearXNG 之前先把模型侧的 Key 通道理清楚否则后面 OpenClaw 调模型和调搜索会各用一套凭证排查起来很痛苦。TaoToken 在这里的角色是统一入口官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址 https://taotoken.net/api 。你需要先拿到一个可用的 Key。进入控制台创建https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 然后在 API Keys 页面生成https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。生成后先别急着填进 OpenClaw用一条 curl 确认 Key 本身是通的curl https://taotoken.net/api/v1/models \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json返回模型列表就说明 Key 有效。这一步很关键因为后面 OpenClaw 报错时你要能区分是「Key 无效」还是「SearXNG 没起来」。如果你只是想先验证某个模型能不能用可以直接在模型对话页试https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。注意Key 只放在环境变量或.env里不要硬编码进settings.yml或提交到 Git。SearXNG 的secret_key和 TaoToken 的 Key 是两回事别混用。3. 可复制配置SearXNG 骨架 OpenClaw 接入3.1 目录结构与 docker-compose先建工作目录规划成三块编排文件、环境变量、核心配置。mkdir -p /home/tht/searxng/core-config cd /home/tht/searxngdocker-compose.yml骨架如下端口映射 8080配置目录挂载进容器name: searxng services: core: container_name: searxng-core image: ghcr.io/searxng/searxng:latest restart: always ports: - 8080:8080 env_file: ./.env volumes: - ./core-config/:/etc/searxng/:Z - core-data:/var/cache/searxng/ volumes: core-data:.env保持简洁只放版本和监听信息SEARXNG_VERSIONlatest SEARXNG_HOST[::] SEARXNG_PORT80803.2 settings.yml 关键三处core-config/settings.yml是核心决定启用哪些引擎、返回什么格式。OpenClaw 通过 JSON API 调用所以formats必须包含json这是最容易漏的一处。use_default_settings: true general: instance_name: My SearXNG server: secret_key: 替换为随机字符串 bind_address: 0.0.0.0 port: 8080 search: formats: - html - json engines: - name: baidu disabled: false - name: bing disabled: false - name: wikipedia disabled: false - name: google disabled: true - name: duckduckgo disabled: truesecret_key用下面命令生成别用默认值python3 -c import secrets; print(secrets.token_hex(32))3.3 OpenClaw 侧 config.toml 骨架OpenClaw 的搜索 Provider 配置可以走环境变量也可以走显式配置。最省事的是环境变量export SEARXNG_BASE_URLhttp://localhost:8080如果要精细化控制分类和语言用config.toml骨架[tools.web.search] provider searxng [tools.web.search.plugins.entries.searxng.config.webSearch] baseUrl http://localhost:8080 categories general,news language zh-CN参数对照表参数作用示例baseUrlSearXNG 实例地址http://localhost:8080categories搜索分类逗号分隔general、news、sciencelanguage结果语言过滤zh-CN、en3.4 CC Switch / Cline 配置片段如果你在 CC Switch 或 Cline 里接 TaoToken 的统一 Key把 API 基址指向https://taotoken.net/apiKey 填控制台生成的那串。Cline 的配置片段大致如下{ apiProvider: openai, openAiBaseUrl: https://taotoken.net/api, openAiApiKey: 你的_TAOTOKEN_KEY, openAiModelId: 你需要的模型名 }CC Switch 里同理把 Base URL 换成https://taotoken.net/api模型名按控制台列表填。这样搜索走 SearXNG、模型走 TaoToken两条链路互不干扰。长期做编码或 Agent 编排的话可以看下 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。4. 启动与验证搜索请求和 Key 生效4.1 启动容器cd /home/tht/searxng docker compose up -d docker ps --filter namesearxng-core看到状态是Up就对了。首次拉镜像约 200-300MB耐心等。4.2 验证 JSON API这是 OpenClaw 能否调通的关键一步直接打 JSON 接口curl http://localhost:8080/search?qopenclawformatjson | python3 -m json.tool | head -30返回带results数组的 JSON 就说明formats里的json生效了。如果返回 HTML 或报错回去检查settings.yml缩进。4.3 验证 TaoToken Key 生效curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d {model:你的模型名,messages:[{role:user,content:ping}]}返回正常补全内容说明 Key 通道没问题。两条链路都验证过再让 OpenClaw 同时用它们出问题就能快速定位。4.4 验证 OpenClaw 集成重启网关让配置生效openclaw gateway restart然后在 OpenClaw 里触发一次web_search观察日志里是否出现对localhost:8080的请求。预期效果是OpenClaw 把查询发给 SearXNGSearXNG 并发查百度、Bing聚合后返回全程不需要商业搜索 API Key。5. 本篇常见错排查镜像拉取失败ghcr.io在国内服务器经常超时。配置 Docker 镜像加速后重启守护进程sudo mkdir -p /etc/docker echo {registry-mirrors: [https://docker.m.daocloud.io]} | sudo tee /etc/docker/daemon.json sudo systemctl restart docker docker info | grep -i mirrorpermission denied当前用户不在 docker 组。执行sudo usermod -aG docker $USER后重新登录或临时用sg docker -c 命令。容器一直 Restarting多半是settings.yml语法错误或端口冲突。看日志docker compose logs --tail50改了配置不生效SearXNG 不支持热重载必须重启容器docker compose restartOpenClaw 拿不到搜索结果按顺序查三件事——docker ps是否 Up、settings.yml的formats是否含json、curl能否通baseUrl。三者都正常再看 OpenClaw 日志里 Provider 是否被识别为searxng。外网访问不了 8080防火墙没放行sudo ufw allow 8080/tcp。Key 报 401确认Authorization头是Bearer加 Key且 Base URL 是https://taotoken.net/api而不是带路径的地址。6. 把两条链路固定下来跑通之后建议把SEARXNG_BASE_URL和TAOTOKEN_API_KEY都写进 shell 的 profile 或 systemd 的 Environment别每次手动 export。SearXNG 的secret_key生成一次就固定换掉会导致已有 session 失效。如果你还想验证不同模型在这个搜索链路上的表现可以在模型对话页直接试https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 。接入文档在https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 里面有完整的接口说明和参数示例。Claude Code 相关的接入参考https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaude-code-anthropicutm_campaignrewrite 。最后留一个实用技巧SearXNG 的categories支持按需切换日常网页搜索用general追新闻用news查论文用science。在 OpenClaw 的config.toml里按场景配不同 profile比每次改全局配置省事得多。
返回列表