☰
OpenClaw系列---【OpenClaw手动安装skill的完整流程与TaoToken配置】
2026/10/15 12:26:19 网站建设 项目流程

1. 手动装 skill 到底在解决什么问题

OpenClaw 的 skill 机制本质上是一套「能力插件」:核心运行时只负责调度、会话和模型调用,具体能干什么——读本地文件、查数据库、调外部接口、跑一段脚本——都交给 skill 来扩展。官方市场里能一键装的那些当然方便,但真实开发场景里,你经常遇到的是:内网机器出不去、公司网络只放行特定域名、某个 skill 是同事私下改过的版本、或者你想把一个内部脚本包装成 skill 自己用。这时候「手动安装」就不是可选项,而是唯一路径。

手动安装 skill 这件事,说穿了就三件事:把文件放到对的目录、让 OpenClaw 知道它的存在、确认它真的能被加载并调用。听起来简单,但坑基本都集中在第二步和第三步——目录放错了不报错、依赖没声明清楚加载时静默失败、模型通道没配好 skill 跑起来调不通。这篇就按「目录结构 → 依赖声明 → 本地加载 → 通道配置 → 验证 → 排障」的顺序,把每一步拆到能直接复制执行。

适合读这篇的人:需要在离线或受限网络环境下扩展 OpenClaw 能力的开发者;手里已经有一个 skill 包(自己写的或别人给的),想把它挂到本地 OpenClaw 上跑起来;以及已经装上了但调用时报错、想搞清楚到底哪一环断了的人。全文以 Windows 路径为主,macOS/Linux 的差异我会在对应位置标出来,逻辑完全一致。

先明确一个前提:OpenClaw 的 skill 目录默认在用户主目录下的.openclaw/skills。Windows 是C:\Users\<用户名>\.openclaw\skills,macOS/Linux 是~/.openclaw/skills。这个路径是后面所有操作的基准,记不住没关系,下面会给校验命令。

2. TaoToken 前置:把模型通道先打通

skill 装好了不代表能跑。绝大多数 skill 在执行过程中都要调用大模型——做意图识别、生成参数、总结结果。如果你的模型通道没配好,skill 加载成功但一调用就报 401 或者连接失败,你会误以为是 skill 本身有问题,白白排查半天。所以我的建议是:装 skill 之前,先把模型通道配通。

TaoToken 在这里的角色是统一入口:你不需要为每个 skill 单独去配不同厂商的 Key,而是通过一个 Base URL 加一个 Key,让 OpenClaw 里所有需要模型调用的 skill 都走同一条通道。这对多 skill 场景特别省事——换模型、换额度、加限制,只改一处。

你需要准备两样东西:一个 API Key,以及确认要用的模型 ID。Key 在控制台的 API Keys 页面创建,地址是 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 。创建后复制出来,注意它通常只完整显示一次。

模型 ID 这块,OpenClaw 的 skill 一般会在自己的配置里声明默认模型,你也可以在全局配置里覆盖。常见的选择是 Claude 系列用于需要长上下文和工具调用的 skill,或者按 skill 文档指定的模型来。拿不准用哪个,可以先去模型对话页面实际发一条消息确认通道和模型都正常:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 。

这里有个关键点要提前说清楚:OpenClaw 的模型配置里,Base URL 填的是https://taotoken.net/api,注意结尾不带斜杠,也不要加任何多余路径。很多 401 和 404 就是因为这里多写了一段或者少写了一段。Key 就是刚才创建的那串,Model ID 填你要用的模型标识。这三件套(Base URL + Key + Model ID)在后面配置 skill 时会反复出现,先记住。

如果你打算长期跑编码类或 Agent 类 skill,调用量会比较大,可以考虑 Coding Plan,额度和稳定性更适合持续使用:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 。接入相关的完整说明在文档里:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 。

3. 可复制配置:skill 目录模板与加载声明

现在进入正题。一个能被 OpenClaw 正确加载的 skill,目录结构是有约定的。下面这个模板你可以直接复制,把名字和内容换成自己的。

.openclaw/ └── skills/ └── my-first-skill/ ├── skill.json # 必需:skill 元信息与依赖声明 ├── index.js # 入口文件(按 skill.json 里的 entry 指定) ├── package.json # 可选:Node 依赖 └── README.md # 可选:说明文档

skill.json是核心,OpenClaw 靠它识别这个目录是不是一个合法 skill。一个最小可用的声明长这样:

{ "name": "my-first-skill", "version": "1.0.0", "description": "一个用于演示手动安装的最小 skill", "entry": "index.js", "runtime": "node", "model": { "provider": "openai-compatible", "baseUrl": "https://taotoken.net/api", "apiKeyEnv": "TAOTOKEN_API_KEY", "modelId": "claude-sonnet-4-5" }, "permissions": ["fs.read"], "triggers": ["demo", "示例"] }

几个字段值得单独说。entry指向入口文件,路径是相对 skill 目录的,别写成绝对路径。runtime目前常见的是node,如果你的 skill 是 Python 写的,这里要按 OpenClaw 支持的运行时填。model块是重点:baseUrl固定填https://taotoken.net/api,apiKeyEnv表示从环境变量读 Key,而不是把 Key 硬编码进文件——这一点很重要,硬编码的 Key 一旦提交到仓库就是事故。modelId填你实际要用的模型。

环境变量怎么设,Windows 下用 PowerShell:

$env:TAOTOKEN_API_KEY = "你的Key"

想永久生效就写进用户环境变量:

[Environment]::SetEnvironmentVariable("TAOTOKEN_API_KEY", "你的Key", "User")

macOS/Linux 写进~/.bashrc或~/.zshrc:

export TAOTOKEN_API_KEY="你的Key"

如果你更习惯用 TOML 做全局配置,OpenClaw 的全局配置文件通常在~/.openclaw/config.toml,可以这样写:

[model] provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key_env = "TAOTOKEN_API_KEY" model_id = "claude-sonnet-4-5" [skills] dir = "~/.openclaw/skills" auto_load = true

注意base_url这里同样不带结尾斜杠。auto_load = true表示启动时自动扫描 skills 目录,手动安装的 skill 放进去就能被识别,不用额外注册命令。

把 skill 目录整个复制到C:\Users\<用户名>\.openclaw\skills\下面。复制完先确认目录结构对:

dir "$env:USERPROFILE\.openclaw\skills\my-first-skill"

应该能看到skill.json和index.js。如果skill.json在更深一层(比如多套了一个同名文件夹),OpenClaw 是扫不到的,这是新手最常见的错误之一。

4. 验证请求:确认 skill 真的被加载

文件放好了,接下来要验证它是不是真的被 OpenClaw 加载了。分两步:先看加载日志,再实际调用一次。

启动 OpenClaw 时留意输出,正常加载会打印类似loaded skill: my-first-skill的日志。如果没看到,说明扫描没命中,回到上一步检查目录层级和skill.json是否合法。skill.json里任何一个字段写错(比如 JSON 语法错误、少了逗号),整个 skill 会被跳过,而且不一定有明显报错,所以建议用工具校验一下:

node -e "JSON.parse(require('fs').readFileSync('skill.json','utf8')); console.log('JSON OK')"

在 skill 目录下执行,输出JSON OK就说明格式没问题。

加载确认后,实际调用一次。OpenClaw 里触发 skill 一般通过对话里的关键词,对应skill.json里的triggers。比如我配了demo,就在会话里发一条包含demo的消息。如果 skill 内部要调模型,这一步会真正走 TaoToken 通道。调用成功你会看到 skill 返回的结果;如果 skill 里有日志,也能看到它请求模型的过程。

想更直接地验证模型通道本身通不通,可以单独发一个请求:

curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-5", "messages": [{"role": "user", "content": "ping"}] }'

返回里有正常的choices结构,说明 Key、Base URL、模型 ID 三件套都对。这一步能过,skill 里调模型基本不会因为通道问题失败。Windows PowerShell 里curl是Invoke-WebRequest的别名,建议直接用 Git Bash 或者改用curl.exe执行上面的命令。

实测下来,把「通道验证」和「skill 加载验证」分开做,排障效率会高很多——出问题时你能立刻判断是通道断了还是 skill 本身没加载,不用两头猜。

5. 本篇常见错排查

手动装 skill 报的错就那么几类,对照着看基本能定位。

401 Unauthorized:Key 不对或没读到。先确认环境变量在当前终端里真的存在:echo $env:TAOTOKEN_API_KEY(PowerShell)或echo $TAOTOKEN_API_KEY(bash)。如果为空,说明设了但没生效——永久环境变量设完要重开终端。如果 Key 有值还报 401,检查是不是复制时带了空格或换行,重新从控制台复制一次。

local proxy failed / connection refused:这类错误通常不是 Key 的问题,而是 Base URL 写错或网络到不了。确认baseUrl是https://taotoken.net/api,没有多余路径、没有结尾斜杠。如果你在受限网络里,确认该域名在放行列表内。

reading 'choices' of undefined:这个报错说明请求发出去了,但返回结构里没有choices,多半是模型 ID 写错,或者返回的是一段错误信息被当成了正常响应。回到第 4 节的 curl 命令,把model换成你配置里的modelId单独跑一次,看返回体到底是什么。模型 ID 拼错、大小写不对都会触发这个。

OAuth 相关报错:如果你用的是 Claude Code 这类带 OAuth 流程的工具,报 OAuth 失败通常是认证方式没选对。走 TaoToken 通道时应该用 API Key 方式,而不是 OAuth 登录方式。检查配置里是不是残留了 OAuth 的字段,把它去掉,改用apiKeyEnv指向环境变量。

skill 加载了但触发不了:检查triggers里的关键词和你实际输入的是否匹配,大小写敏感的话要对上。另外确认auto_load是true,或者你手动执行了注册命令。

依赖缺失导致 skill 静默失败:如果 skill 有package.json,进到 skill 目录执行npm install。Node 依赖没装,入口文件require时会抛错,但有些情况下错误被吞掉,表现为 skill「加载了但不干活」。

排查时记住一个顺序:先 curl 验通道,再看加载日志,最后看 skill 内部日志。这个顺序能帮你快速缩小范围。

6. 把通道和 skill 一起管起来

手动安装 skill 这件事,真正花时间的从来不是复制文件,而是让「skill 能加载」和「模型能调通」这两件事同时成立。我的做法是把模型通道的配置集中在一处——环境变量加全局config.toml,skill 自己的skill.json只引用环境变量名,不写死任何 Key。这样你装十个 skill,通道配置还是那一份,换模型、换额度只改一个地方。

对于需要长期跑、调用量大的 skill,用 Coding Plan 会比按量更省心,额度稳定,适合 Agent 类持续调用:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 。Key 的管理和创建都在控制台:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 。接入细节和字段说明以文档为准:https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 。

最后留一个我踩过的坑:skill 目录名和skill.json里的name最好保持一致。不一致时 OpenClaw 有时能加载,但日志和触发会混乱,排查起来很费劲。装完第一个 skill 后,先别急着装第二个,把加载和调用完整跑通一遍,后面就是复制粘贴的事了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询