news 2026/9/14 13:38:03

OpenClaw 跑 baidu-search Skill:模型 Key 走 TaoToken

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenClaw 跑 baidu-search Skill:模型 Key 走 TaoToken

在 OpenClaw 里创建 my-first-skill 时,我卡在了模型通道上。SKILL.md 写清楚、scripts/search.py 放到位,技能还是不动,直到把模型推理走通,才找到原因。OpenClaw 要跑 baidu-search,必须让大模型先理解「去搜索今日AI新闻」再调度脚本,这一步需要稳定 Key。我注册了 TaoToken,打开 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 创建 API Key,把 Base URL 填成 https://taotoken.net/api,任务立刻下发了。

这篇文章就按实际踩坑顺序来:先看 Skill 本身在 OpenClaw 里的角色,再给本体配好模型 Key,然后安装 baidu-search,最后跑通「今日AI新闻」并留下排障清单。每个环节都放可复制的配置,不绕弯子。

1. Skill 与 MCP:为什么「能安装」不等于「能跑通」

1.1 Skill 是「菜谱」,MCP 是「厨房接口」

在 OpenClaw 里,Skill 是核心扩展机制,你可以把一份 Skill 想象成菜谱:它规定什么时候做这道菜、先放什么料、用什么火候、最后装盘成什么样。我第一次写 my-first-skill 时,就是照着这个思路把 SKILL.md 填满的,触发条件、调用步骤、输出格式都写了,目录结构也完好,以为这样就能跑。

但 Skill 本身不执行,它解决的是「教 AI 怎么做对」。真正让 AI 能去碰外部工具的是 MCP,它负责标准化连接,相当于厨房里的水电气管线,AI 通过它去开炉灶、用刀具。没有 MCP 的能力供给,Skill 只是一份写得再详细也无法执行的文档;没有 Skill 的流程编排,MCP 也只知道工具能调用,却不知道什么时候调、调完怎么用。懂了这个分工,后面遇到「技能没反应」就能分清是流程问题还是接口问题了。

1.2 一个 Skill 的最小目录结构

一个能跑的 Skill 通常长这样:

my-first-skill/ ├── SKILL.md # 技能说明:触发条件、使用步骤、输出格式 ├── scripts/ # 执行脚本 │ └── search.py ├── references/ # 参考文档(可选) └── _meta.json # 元数据(可选)

SKILL.md 是 OpenClaw 判断「什么时候派这个技能上场」的依据,所以里面要写清楚适用场景和调用方式。scripts 是真正的执行体,OpenClaw 不会自己发明脚本内容,它负责的是理解你的任务,再决定调哪个脚本。如果把 SKILL.md 比作岗位说明书,scripts 就是员工的实际产出物,两者缺一不可。

1.3 模型推理才是那条「隐藏的水管」

装好 Skill 遇到空转,问题往往不在 SKILL.md 里,也不在脚本本身,而在模型通道。OpenClaw 是一个智能体网关,它依赖大模型完成两件事:第一,把用户一句自然语言(比如「搜索今日AI新闻」)拆解成具体动作;第二,决定哪个 Skill 能完成这个动作,并生成调用脚本所需的参数。这个过程每一次都要消耗大模型的 Token,必须有真实可用、地址正确的模型接口在背后支撑。

如果你的模型 Key 没配、地址填错,或者模型 ID 不存在,OpenClaw 根本走不到「调用脚本」那一步,表现就是日志里没有任何记录。所以先把模型通道打通,再谈 Skill 好不好用。下一步,给 OpenClaw 本体接上 TaoToken。

2. 先给 OpenClaw 本体配好模型 Key:TaoToken 统一通道

2.1 去官网拿 API Key

准备材料不复杂:一个 TaoToken 账号,一个 API Key,一个以模型广场为准的模型 ID。打开 TaoToken 注册登录,在控制台创建 API Key,复制出来后先存到临时变量里。注意这里拿到的 Key 是给 OpenClaw 本体做模型推理用的,跟后面 baidu-search 技能里的百度 API Key 是两回事,别搞混。

官网落地页负责注册、创建 Key、看模型广场和用量;真正填进 OpenClaw 的接口地址是 https://taotoken.net/api,末尾不要加 /v1。这两个地址分开记:一个是「人操作页面」,一个是「程序填的连接点」。记混了的话,OpenClaw 连接时会一直失败。

2.2 把 Base URL 写进 OpenClaw 配置

OpenClaw 的模型配置可以用环境变量,也可以写在 ~/.openclaw/config.json。环境变量适合快速试验,config.json 适合固定下来。先给环境变量方式:

export OPENCLAW_API_KEY="YOUR_API_KEY" export OPENCLAW_BASE_URL="https://taotoken.net/api" export OPENCLAW_MODEL="MODEL_ID_FROM_TAOTOKEN"

MODEL_ID_FROM_TAOTOKEN 这个占位符需要你去 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的模型广场确认当前可选模型,选好后替换。写进 config.json 则长这样:

{ "model": { "provider": "taotoken", "apiKey": "YOUR_API_KEY", "baseUrl": "https://taotoken.net/api", "model": "MODEL_ID_FROM_TAOTOKEN" } }

提示:这里填的是程序接口地址 https://taotoken.net/api,不是官网落地页。官网页面是给人注册和看用量用的,不要填进模型配置。模型 ID 也不要凭记忆手打,去模型广场复制最稳。

2.3 先做一次最小对话验证

配完不要直接去跑搜索技能,先做一次最小验证,确保证道是通的。在 OpenClaw 对话里随便问一句:「你好,只回复OK两个字。」如果模型通道正常,你能在终端看到 OK;如果报出 401 或连接失败,立刻检查 apiKey、baseUrl、model 三项。这一步两分钟的事,能省下后面排查技能问题的两小时。确认通道通畅后,再接 baidu-search。

3. 安装 baidu-search:从 SkillHub 到手动兜底

3.1 SkillHub 安装

模型通道稳定后,再回头装技能。OpenClaw 的技能来源按优先级排列,SkillHub 是首选,如果你在中国网络环境,它比 ClawHub 更快更稳,包结构也经过校验,不容易缺文件。安装 baidu-search,命令就是:

npx skills add baidu-search

命令执行完,OpenClaw 会从 SkillHub 拉取技能包,解压到本地技能目录,再扫描 SKILL.md 完成注册。注意 npx 是 Node.js 的工具执行器,网络要能访问 npm registry。如果这一行直接卡住不动,多半是内网出网受限,往下看手动兜底方案。

3.2 手动安装兜底

公司内网限制得比较严时,SkillHub 拉不下来是常态。别急着放弃,可以让同事帮你在外网环境打包技能目录,或者从公司内部的 Git 仓库安装:

npx skills add git@git.myscrm.cn:skills/xxx-skills.git

手动解压也是合法的兜底方案:把技能包解压到 ~/.openclaw/workspace/.agents/skills/baidu-search/,然后确认目录里能看到 SKILL.md 和 scripts 文件夹。重点是让 OpenClaw 的文件系统里出现一个结构完整的技能目录,缺了 SKILL.md,网关根本不会认为它是一个技能。

3.3 管理命令速查

装好之后,建议先跑一下:

npx skills list

这条命令会列出当前已安装的技能,同时触发 OpenClaw 重新扫描技能目录。之后的日常操作还有 npx skills check 检查更新、npx skills update 批量更新、npx skills remove baidu-search 卸载技能。管理命令不多,但 list 这一步很值得养成习惯,它能在你手动解压后快速确认目录是否被识别。

4. 实战:让 baidu-search 真的去搜「今日AI新闻」

4.1 安装后先检查文件结构

跑技能前,先进入安装目录确认三件事:SKILL.md 存在且 frontmatter 格式完整,scripts/search.py 存在并且有执行权限,_meta.json 里的入口脚本和实际文件名一致。

ls -la ~/.openclaw/workspace/.agents/skills/baidu-search/ ls -la ~/.openclaw/workspace/.agents/skills/baidu-search/scripts/

如果 search.py 没有执行权限,OpenClaw 调用时会直接失败,报错可能是 Permission denied。修复方式:chmod +x scripts/search.py。SKILL.md 的 frontmatter 长这样,抄的时候别漏了 name 和 description:

--- name: baidu-search description: 当用户需要搜索新闻或查询实时信息时使用本技能。 ---

description 写得越清楚,模型越容易在这个技能和其他技能之间做出正确选择。

4.2 配置百度的搜索密钥

baidu-search 技能用百度搜索 API 返回结果,这一步是脚本自己的密钥,跟第 2 章的 TaoToken 无关。去百度 AI 开放平台创建一个应用,拿到 API Key 和 Secret Key,然后在当前终端里设置两个环境变量:

export BAIDU_API_KEY="YOUR_BAIDU_API_KEY" export BAIDU_SECRET_KEY="YOUR_BAIDU_SECRET_KEY"

想把密钥固定下来的话:

echo 'export BAIDU_API_KEY="YOUR_BAIDU_API_KEY"' >> ~/.zshrc echo 'export BAIDU_SECRET_KEY="YOUR_BAIDU_SECRET_KEY"' >> ~/.zshrc source ~/.zshrc

注意:这里的 BAIDU_API_KEY 和你从 TaoToken 拿到的模型 Key 不是同一个东西。搜索请求是脚本直接发给百度的,模型通道只负责让 OpenClaw 知道「该发这个请求了」。两者各管一段,排障时也要分开看。

4.3 先脱离 OpenClaw 测脚本

不要一上来就在 OpenClaw 对话框里测,那样变量太多。先直接调用脚本,确认搜索环节本身可用:

cd ~/.openclaw/workspace/.agents/skills/baidu-search/scripts python3 search.py "今日AI新闻"

这一步通过,说明百度 API 的鉴权和网络都正常。如果这步已经报错,问题就出在百度密钥或脚本依赖,跟 OpenClaw 无关,先解决脚本再回去测网关。脚本能输出结果,再进下一步。

4.4 在 OpenClaw 里触发技能,并理清调用链路

脚本没问题,回到 OpenClaw 对话,输入:「使用百度搜索一下今天的人工智能新闻」。OpenClaw 收到这句话后,完整链路是:大模型先理解任务意图,这一步走的正是你在第 2 章配置的 TaoToken 模型通道;然后 OpenClaw 匹配到 baidu-search 的 SKILL.md,决定调用 scripts/search.py;脚本拿着百度 API Key 去请求搜索接口,把结果整理成文本返回给对话窗口。

如果第 4.3 步脚本能正常输出,但对话里 OpenClaw 不调用技能,问题几乎都出在模型通道:要么模型没有正确理解「应该使用搜索技能」,要么 SKILL.md 的触发条件写得太含糊。前者回头检查 2.2 里的配置,后者去改 SKILL.md 的 description,让它更贴近用户问法。

5. SSL、401 与技能不生效:跑 baidu-search 的真实排障

5.1 SSL 证书验证失败

公司内网经常出现这个报错:SSL: CERTIFICATE_VERIFY_FAILED。出现原因是技能包下载或百度 API 调用的证书链不完整。优先做法是联系网络管理员安装公司根证书;如果只是本机缺少中间证书,可以用 pip 更新一下 certifi 再重试脚本:

pip install --upgrade certifi python3 -c "import certifi; print(certifi.where())"

注意不要为了绕过报错去关闭 SSL 验证,那会把你的 Key 明文暴露在网络里。证书问题的核心是信任链,把根证书补上才是正解。

5.2 OpenClaw 报 401 或 Missing API key

这是模型通道没配好,跟百度 Key 无关。排查顺序先看环境变量:

echo $OPENCLAW_API_KEY echo $OPENCLAW_BASE_URL

确认 OPENCLAW_API_KEY 对应的正是你在 TaoToken 控制台创建的那个 Key,不要带引号,不要有多余空格。再确认 OPENCLAW_BASE_URL 是 https://taotoken.net/api,不是官网落地页。很多人会把这两个地址搞混,记住一句话:人用落地页,机器用接口地址。接口地址末尾也不要习惯性加 /v1,OpenClaw 会自己拼路径,多加了反而连不上。

5.3 技能不生效,日志里没有脚本调用

如果对话里 OpenClaw 一直空转、日志看不到脚本调用记录,按下面顺序排查:

ls ~/.openclaw/workspace/.agents/skills/baidu-search/ head -30 ~/.openclaw/workspace/.agents/skills/baidu-search/SKILL.md tail -f ~/.openclaw/logs/gateway.log

SKILL.md 的 description 如果写得太笼统,模型会犹豫要不要派技能。比如只写「搜索工具」就太泛,写成「当用户需要搜索新闻、查询实时信息或了解最近发生的事件时使用」就明确得多。如果 gateway.log 里一直没有新的脚本调用记录,说明问题又在模型理解环节,先回到 2.3 的最小对话验证,确认模型通道还活着。

6. 技能组合与模板:后续还能怎么玩

6.1 技能组合:搜索完再送一步

baidu-search 只是第一步,OpenClaw 支持多个技能按顺序协同。比如搜索到「今日AI新闻」后,可以让另一个技能把结果格式化,再交给一个消息通知类技能发送到群聊。这个组合不复杂,本质上是让模型根据多个 SKILL.md 的描述,把任务切分成:先搜索、再整理、最后发送。每个技能只负责自己那一段,模型通道始终走同一个 Key,不需要为每个技能单独配模型,这也是统一接入通道最省心的地方。

6.2 把自己的技能模板固化下来

下次要写新技能时,不用从零开始:

mkdir -p my-skill-template/{scripts,references} touch my-skill-template/SKILL.md my-skill-template/scripts/main.py cp -r my-skill-template ~/.openclaw/workspace/.agents/skills/new-skill

然后照着 baidu-search 的 SKILL.md 结构填触发条件,把 scripts 里的业务逻辑替换成你自己的。如果你的新技能也要消耗模型 Token,第 2 章的配置依然有效,同一个 OPENCLAW_API_KEY 可以支撑多个技能同时跑。调完技能后,顺手去 https://taotoken.net/?utm_source=taotoken_aicg_blog_end 的用量页面看一眼,刚才那次「今日AI新闻」的调度究竟消耗了多少 token,这个数据会帮你判断后续还敢不敢让模型再多拆几步。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 13:33:54

VC++随机密码生成器:从安全随机数到7z打包全解析

简介:这是一份面向C/C初学者与编程爱好者的VC随机密码生成器源码包。该项目演示了如何利用C标准库完整实现一个支持自定义长度、可选数字/大小写字母/特殊字符的随机密码生成程序,适合用Visual Studio直接打开编译运行,帮助读者将随机数生成、…

作者头像 李华
网站建设 2026/9/14 13:31:24

Golang Map底层实现与并发安全详解

1. Golang Map 面试核心要点解析在Golang面试中,Map相关的知识点几乎是必考内容。作为Golang中最重要的数据结构之一,Map的底层实现、并发安全性和扩容机制等都是面试官重点考察的方向。下面我将从实际面试角度出发,深入剖析Golang Map的核心…

作者头像 李华
网站建设 2026/9/14 13:30:46

AI巨头的商业化困境与技术挑战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华