ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

OpenClaw 装完 ClawHub 的 Skill,模型 Base URL 填 TaoToken

OpenClaw 装完 ClawHub 的 Skill,模型 Base URL 填 TaoToken clawhub install remind-me 跑完TaoTokenhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_end负责给你 Key 和 Base URL技能能不能真在对话里被调用还得看 ~/.openclaw/skills 和工作区 skills 这两处目录以及 Dashboard 里那次提问究竟返回了什么。很多人第一次折腾 OpenClaw 的技能体系注意力全押在 ClawHub 和 SKILL.md 上装完 skills list 里也确实列出来了于是顺手在 Dashboard 里问一句「你现在有哪些 skills」结果要么半天没回要么直接甩回来一个鉴权错误。技能文件本身没问题问题在于技能只是一段能力描述真正读懂它、判断要不要调用它的是模型而模型得有一条能用的通道。这篇文章把两件事拆开前半段说技能怎么进 OpenClawclawhub install remind-me 也好手工把 SKILL.md 丢进目录也好都是本地文件层面的事后半段说模型通道怎么接Key 从哪来、Base URL 填什么、结尾要不要带 /v1、模型 ID 从哪抄这些在原文里基本是空白的但对能不能跑起来是决定性的。如果你已经卡在「技能看得见、对话里不响应」这一步可以直接跳到第 2 节先拿 Key再回头看目录。1. clawhub install remind-me 之后skills list 为什么还是「哑」的1.1 技能是能力描述不是模型通道技能在 OpenClaw 里是纯文本资产。一个 Skill 落到磁盘上通常就是一个独立目录加一份 SKILL.md里面写清楚这个技能叫什么名字、在什么情况下应该被用上、需要模型按什么格式产出参数。OpenClaw 在启动或扫描目录的时候把这些文件读进来它读到的是「存在这么一个能力」而不是「这个能力已经执行过一次」。这就解释了为什么 skills list 容易骗人。列表里能列出来只代表文件被识别了从「被识别」到「在对话里被调用」中间还隔着一次完整的模型请求。模型需要先看到技能的描述文本再判断用户这句话是否匹配这个技能最后产出结构化的调用参数——这一整串动作全在消耗模型的 Token而 Token 是通过模型通道发出去的。通道不通技能再规范也只是躺在硬盘上的说明书。1.2 两种把技能放进 OpenClaw 的方式把技能弄进 OpenClaw 常见两条路。一条是走 ClawHub也就是社区那套 Skills registry直接clawhub install remind-me装完默认落到~/.openclaw/skills/下面好处是版本由 registry 管后面升级一条命令的事。另一条是手工把拿到的 SKILL.md 连同目录一起丢进~/.openclaw/skills/或者丢进当前工作区的skills/目录——后者更适合只在某个项目里用的技能不会污染全局环境。两条路装完都要跑一次skills list对照。列表里出现 remind-me说明路径和命名没问题如果压根没出现先检查目录层级是不是多套了一层。正确的是~/.openclaw/skills/remind-me/SKILL.md写成~/.openclaw/skills/SKILL.md系统就不知道这个技能该叫什么名字自然也没法在需要的时候把它拉出来。clawhub install remind-me ls ~/.openclaw/skills/ skills list2. 建 Key 这一步省不掉在 TaoToken 控制台创建 YOUR_API_KEY2.1 注册、创建 Key、顺手把模型 ID 抄下来技能装好之后接下来是原文没交代的那半截。模型通道需要一个 Key 和一个 Base URL这两样东西在 OpenClaw 自己的安装流程里拿不到得单独准备。打开 TaoToken 注册登录进控制台创建一把 API Key本文统一用YOUR_API_KEY指代它。控制台里一般还能看到用量和额度后面验收的时候会再回来对一次账。Key 到手别急着关页面去模型广场确认你打算用的模型 ID。这个 ID 必须原样抄不能自己拼日期后缀也不要凭印象写 gpt-5 之类的名字——清单里有什么就填什么以模型广场当时的列表为准。模型 ID 填错的典型表现不是鉴权失败而是提示找不到模型很容易被误判成 Key 出了问题白折腾半小时。2.2 官网地址和接口地址不是一回事这里有个新手绕不开的坑落地页和接口地址长得很像但不是同一个东西混用的结果就是 404。落地页是给人点的用来注册、创建 Key、看用量、翻模型列表接口地址是填进工具配置里的只写到https://taotoken.net/api为止后面不要追加/v1也不要带任何查询参数。判断方法很朴素能在浏览器里打开、看到按钮和表格的是官网会被 OpenClaw 拼到/chat/completions前面的才是接口地址。用途填什么注册、登录、创建 Key、看用量、看模型列表https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end写进 openclaw.json 的 baseUrl、或环境变量https://taotoken.net/api请求鉴权YOUR_API_KEY3. openclaw.json 里把模型通道指到 https://taotoken.net/api3.1 先用环境变量打一枪动配置文件之前建议先用环境变量试一次确认 Key 和模型 ID 是活的。变量名以你本地 OpenClaw 版本实际读取的为准下面是一种常见写法export OPENCLAW_MODEL_BASE_URLhttps://taotoken.net/api export OPENCLAW_MODEL_API_KEYYOUR_API_KEY export OPENCLAW_MODELYOUR_MODEL_ID重开一个终端跑一次最简单的对话。这一步通了再往配置文件里写能省掉一半排查时间。如果这一步就报 401问题在 Key提示模型不存在问题在模型 ID报 404 找不到路径基本可以断定 Base URL 结尾多了/v1或者干脆把官网地址粘进去了。3.2 写进 openclaw.json 的 provider 段环境变量只适合临时验证长期挂着跑还是落到配置文件。OpenClaw 的模型通道通常在openclaw.json里的一段 providers 中声明核心就三个值baseUrl 指向https://taotoken.net/apiapiKey 填YOUR_API_KEY模型 ID 用你刚从模型广场抄下来的那一个。{ models: { default: YOUR_MODEL_ID, providers: { taotoken: { type: openai-compatible, baseUrl: https://taotoken.net/api, apiKey: YOUR_API_KEY, models: [YOUR_MODEL_ID] } } }, nativeSkills: true }不同版本里字段名可能略有出入但三个值的位置不会变。改完保存重启 OpenClaw 让配置生效然后回去重跑skills list确认技能清单没受影响。3.3 三个最容易填错的地方第一个是结尾的/v1。不少客户端会自己补一层路径你再手写一个/v1最终请求里就出现两段服务端直接回 404。第二个是把官网地址当接口地址填进 baseUrl也就是把带查询参数的那串粘进配置结果同样是 404。第三个是模型 ID 凭感觉写尤其是从别人的旧博客里直接抄——模型上下架是常态唯一可信的来源是模型广场的当前列表。还有个小细节JSON 里 apiKey 的引号别丢不接受裸字符串值如果在别的窗口复制 Key注意别把首尾空格一起带进来这种错误肉眼几乎看不出来但一定报鉴权失败。4. Dashboard 里那句「你现在有哪些 skills」是技能和通道的联合验收4.1 先确认技能清单被读进去配置保存、服务重启之后先回到命令行跑一次skills list把条目在心里记个数。然后打开 Dashboard问一句「你现在有哪些 skills」。这句话本身就是一次模型请求它同时验证了两件事通道能不能通以及技能清单有没有进到模型能看到的上下文里。顺手把 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 上模型广场的列表也打开对一眼确认自己填的模型 ID 还在架。如果模型复述出来的技能和你skills list看到的对不上比如少了一个刚装的 remind-me那问题多半在技能目录不在通道。这时候别急着去改 baseUrl先看目录层级和 nativeSkills 开关改通道是治不了技能没被识别的。4.2 再触发一次 remind-me清单对得上进入第二步真的用一次。remind-me 这类技能的价值在于「到点提醒」所以要给它一个明确的触发句比如让它过一分钟提醒你喝口水。技能被调用的那一刻模型会按 SKILL.md 里约定的格式产出参数OpenClaw 再拿着参数去执行。这一步跑通了说明从 Dashboard 的输入、到模型通道、再回到技能执行整条链路是闭合的。技能归 OpenClaw 管TaoToken 在这里只负责把 Key 和 Base URL 递过去它不参与 SKILL.md 的加载也不管 nativeSkills 是开还是关这两件事分属两层。4.3 技能调用和 Token 消耗的关系有人默认技能是「免费的」——文件在本地调用应该不花钱。不是这样。技能被加载进上下文要占位置被调用时模型要做匹配判断和参数生成这些都是实打实的 Token。装十个技能、每轮对话都把它们塞进上下文和只装两个高频技能消耗完全不是一个量级。所以技能不是越多越好。先从一两个最常用的装起跑顺了再加比一次性装一堆然后搞不清哪个在烧量要明智得多。5. 技能装上却调不动按这个顺序排查5.1 目录、命名和 nativeSkills 开关排查顺序建议从里往外先看技能文件本身再看 OpenClaw 有没有认它最后才怀疑模型通道。目录层级对不对remind-me 必须是一个独立目录SKILL.md 待在这个目录里而不是散落在 skills 根目录下。技能名和目录名是否一致调用时用到的名字来自 SKILL.md 的声明声明和目录名对不上模型即使想调也找不到入口。全局目录还是工作区目录放在~/.openclaw/skills/是全局可见放在工作区skills/只在当前工作区可见换个目录启动就「消失」了。nativeSkills 开关它决定原生技能体系是否启用和你填什么 Base URL 没有任何关系别把两件事混在一起查。逐条过一遍绝大多数「装了不生效」都能在这里找到答案而且比反复改配置文件快得多。5.2 报错对照表现象大概率原因怎么改401 / 鉴权失败Key 写错、已失效或引号里带了空格回控制台重新创建一把替换 YOUR_API_KEY404 找不到路径baseUrl 结尾多了 /v1或误填了官网地址改成 https://taotoken.net/api提示模型不存在模型 ID 抄错或已下架以模型广场当前列表为准重新填通道正常但技能不被调用目录层级、技能名、nativeSkills 开关回到 5.1 逐条检查时而通时而不通多个工具共用一把 Key请求分不清来源每个工具单独建 Key 并标注用途表格最后一行值得多说一句Key 不是越省越好。不同工具共用一把出问题时你分不清是哪个客户端在打请求账单上也看不出归属。按工具各建一把排查和记账都清爽。6. 跑通之后把技能和通道都固定下来6.1 用一个小工作区固化技能组合能跑通之后别停在这。把常用的那几个技能固定在一个专门的工作区里工作区的skills/目录只放这个项目需要的技能全局目录留最少的一两个。这样每次开新会话进到模型上下文里的技能描述是可控的既省 Token也减少模型在几个相似技能之间选错的概率。升级技能同样走两条路ClawHub 装的用 clawhub 更新手工放的文件就手动替换 SKILL.md。改完记得再跑一次skills list确认新版本被读进去再回 Dashboard 触发一次。6.2 去控制台对一下这次调用的账最后一步是回控制台对账。刚才那次「你现在有哪些 skills」和那次 remind-me 触发都应该记在账上。在 TaoToken 模型对话 里用同一把 Key 发一条测试消息可以交叉验证模型 ID 和 Base URL 没填错要长期挂着 OpenClaw 跑技能顺手看一眼 Coding Plan 的额度是否够用Key 需要新建或者轮换直接去 控制台 API Keys。真正容易被忘掉的是这一层关系技能是装在本地磁盘上的资产通道是走网络的请求路径两边的配置各自独立。以后换模型、换 Key只需要动 baseUrl 和 apiKey 那一小段SKILL.md 一个字节都不用改。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进