1. 为什么你的 OpenClaw 装完像个“空壳”
很多人第一次把 OpenClaw 跑起来,心情是激动的:终端里 Gateway 起来了,模型也接上了,对话框能正常回话。可聊了没几句就发现不对劲——你让它整理一份中文会议纪要,它给你一段泛泛的总结;你让它查一下某个库的最新用法,它凭记忆瞎编;你让它操作浏览器填个表单,它说“我目前没有这个能力”。
问题不在模型,而在 skills。OpenClaw 的定位是一个运行在你自己机器上的 AI Agent 运行时,它本身只提供“调度、记忆、工具调用”的骨架,真正让它干活的是一个个 skill。初始状态下 skills 目录基本是空的,或者只有几个面向英文场景的默认技能,所以它看起来“能聊天”,但“干不了活”。
我试过在干净环境里跑 OpenClaw,默认配置下让它做三件事:总结一段中文技术文档、把一段 JSON 转成表格、调用本地脚本处理文件。结果是第一件勉强能做但质量一般,第二件它直接手写代码而不是调用工具,第三件它说没有对应 skill。这就是典型的“空壳”状态:模型有智力,但没有可调用的手脚。
要解决这个问题,核心不是去背 48000 个 skill 的名字,而是给 OpenClaw 装上一个“找技能的能力”。这就是 find-skills 的价值:它本身是一个 skill,作用是让 Agent 能够检索、筛选、加载其他 skill。装完它之后,你不需要手动去 skills.sh 网站翻页,直接在对话里说需求,Agent 会自己去搜、去比对、去推荐。
这篇内容面向三类人:刚装好 OpenClaw 但不知道下一步做什么的新手;手里有一堆 skill 却不知道怎么组织的中级用户;以及想把 OpenClaw 接进日常编码、文档、自动化流程的开发者。下面从环境准备讲到 config.toml 骨架,再到验证请求和排错,全部是可复制的操作。
2. 前置准备:TaoToken 接入与 npx 环境确认
在动 skills 之前,得先保证 OpenClaw 的模型通道是通的。因为 find-skills 的检索、推荐、安装确认这些动作,都需要模型来理解你的自然语言需求并生成结构化调用。如果模型通道不稳定,后面所有步骤都会卡在“Agent 不响应”上。
TaoToken 在这里的角色是提供统一的模型接入层。你可以在官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 了解它的接入方式,API 入口是 https://taotoken.net/api。它的好处是你不用在 OpenClaw 里分别配置多家模型的 key,而是通过一个兼容接口统一调用,切换模型时只改一个字段。
具体操作上,先去控制台创建一个 API Key。打开 https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,登录后进入 API Keys 页面,新建一个 key,复制出来。这个 key 后面要写进 OpenClaw 的 config.toml。
然后是 npx 环境。find-skills 的安装命令走的是 npx skills add 这条链路,所以本机需要有 Node.js 和 npm。验证方式很简单,在终端执行:
node -v npm -v npx -v三个命令都能输出版本号就说明环境 OK。如果 npx 报“command not found”,说明 npm 版本太老或者 Node 没装好,建议用 Node 18 LTS 以上。Windows 用户如果遇到 npx 执行权限问题,用管理员身份的 PowerShell 跑一次即可,不需要改系统策略。
这里有个容易忽略的点:npx 第一次执行 skills 相关命令时会临时下载包,如果你的网络环境对 npm registry 访问慢,可能会卡住。可以先手动预热一次:
npx skills --version看到版本号输出,说明 npx 链路通了。这一步不涉及任何敏感网络操作,只是确认包管理器能正常拉取公开包。
环境确认完之后,建议把 OpenClaw 的配置目录结构先看一眼。不同安装方式路径不一样,常见的是~/.openclaw/或项目根目录下的config/。你可以用:
ls -la ~/.openclaw/确认里面有config.toml或者类似的配置文件。如果没有,OpenClaw 首次启动时一般会自动生成,你也可以手动创建。
3. 可复制配置:config.toml 骨架与 find-skills 安装
这一节是全文的核心。先给出一份可以直接抄的 config.toml 骨架,再讲 find-skills 的安装命令和它写进配置的方式。
3.1 config.toml 骨架
下面这份配置假设你使用 TaoToken 作为模型通道,并且启用了 skills 目录扫描。字段名以你实际安装的 OpenClaw 版本为准,如果某个字段报未知,删掉即可,核心是 model、api_base、api_key、skills 这几块。
# OpenClaw 主配置 [gateway] host = "127.0.0.1" port = 8787 # 只监听本地,不要暴露到公网 bind_local_only = true [model] # 通过 TaoToken 统一接入 provider = "openai-compatible" api_base = "https://taotoken.net/api" api_key = "sk-你的TaoTokenKey" model = "claude-3-5-sonnet" # 对话与工具调用分开配置时,工具调用建议用指令遵循更强的模型 tool_model = "claude-3-5-sonnet" max_tokens = 4096 temperature = 0.3 [skills] # skills 根目录,find-skills 安装后会在这里生成子目录 root = "~/.openclaw/skills" # 启动时自动扫描并加载 auto_load = true # 允许 Agent 在对话中动态检索技能 dynamic_discovery = true # 检索时返回的最大候选数 max_candidates = 5 [skills.registry] # 技能来源,默认走 skills.sh 生态 source = "skills.sh" # 安装前是否需要用户确认 confirm_before_install = true [logging] level = "info" file = "~/.openclaw/logs/openclaw.log"几个关键点解释一下。bind_local_only = true是安全底线,OpenClaw 的控制台如果暴露到公网,任何人都能读到你的对话和 key,这个坑网上已经有很多案例。dynamic_discovery = true是让 find-skills 生效的开关,关掉它 Agent 就只能用预装技能。confirm_before_install = true建议保持开启,避免 Agent 自作主张装一堆用不上的技能。
3.2 安装 find-skills
配置写好后,用一条命令装 find-skills:
npx skills add vercel-labs/skills --skill find-skills这条命令做的事情是:从 skills.sh 生态拉取vercel-labs/skills这个仓库里的find-skills技能,安装到你的 skills 根目录。执行过程中会提示确认,输入 y 回车即可。安装完成后,你会看到类似输出:
Installing find-skills... Cloning vercel-labs/skills... Linking skill find-skills -> ~/.openclaw/skills/find-skills Done. 1 skill installed.如果你想把 find-skills 作为所有新 Agent 的“第一技能”,可以在 OpenClaw 的初始化模板里把它写进默认 skills 列表。这样每次新建 Agent 时它会自动带上,不用重复装。
3.3 验证 skills 目录
安装后检查目录结构:
ls -la ~/.openclaw/skills/应该能看到find-skills目录,里面通常有SKILL.md、manifest.json或类似的描述文件。这个文件定义了技能的触发条件、输入输出格式和调用方式。OpenClaw 启动时会读取它,把 find-skills 注册成一个可调用的工具。
如果目录是空的,说明安装路径和配置里的skills.root不一致。检查 config.toml 里的路径是否用了~展开,有些运行时不支持波浪号,需要写成绝对路径如/Users/yourname/.openclaw/skills。
4. 验证请求:让 Agent 自己找技能
配置和安装都完成后,重启 OpenClaw Gateway,然后进入对话界面做验证。验证的目标不是“find-skills 装没装”,而是“Agent 会不会主动用它”。
4.1 第一个验证请求
在对话里输入:
帮我找一个能做中文文档摘要的 skill,要求支持长文本,最好有评分参考。如果 find-skills 生效,Agent 的响应应该包含这几个动作:先说明它要调用 find-skills 检索,然后返回若干候选技能,每个候选带名称、来源、功能描述和装机量或评分,最后询问你是否安装。一个典型的成功响应长这样:
我先用 find-skills 搜索一下中文文档摘要相关的技能。 找到 3 个候选: 1. doc-summarizer-zh(来源:community/skills,装机量 8.2K,支持中文长文本) 2. long-text-summary(来源:vercel-labs/skills,装机量 5.1K,通用摘要) 3. cn-doc-toolkit(来源:community/skills,装机量 3.4K,含摘要与关键词提取) 推荐第 1 个,是否安装?看到这个响应,说明 find-skills 已经被正确加载,并且 Agent 知道在遇到“找技能”类需求时调用它。如果 Agent 直接凭记忆回答“你可以用某某库”,而没有走检索流程,说明dynamic_discovery没生效,或者 find-skills 没被注册。
4.2 第二个验证请求:安装并调用
确认第一个请求后,回复“安装第 1 个”。Agent 应该执行安装命令,然后你可以继续发一个实际任务:
用刚装的技能,把下面这段文字总结成三句话: (粘贴一段 500 字左右的中文技术说明)成功的标志是:Agent 调用新装的 skill,而不是自己手写摘要。你可以在日志里看到 skill 调用记录:
tail -f ~/.openclaw/logs/openclaw.log日志里会出现类似skill_invoked: doc-summarizer-zh的行。这一步验证的是“检索→安装→调用”的完整链路。
4.3 第三个验证请求:技能管理
再验证一下技能列表和更新:
npx skills list npx skills checklist会列出当前已安装的所有技能,check会检查是否有可更新版本。如果这两个命令能正常输出,说明 skills 管理链路也是通的。到这里,你的 OpenClaw 已经从“空壳”变成了“能自己找工具”的状态。
5. 本篇常见错排查
实际操作中,大部分人卡在下面几个错误上。逐个说清楚原因和修法。
5.1 npx skills add 报 404 或仓库不存在
错误信息通常是404 Not Found或repository not found。原因一般是技能名写错,或者 skills.sh 上的仓库路径变了。vercel-labs/skills是组织名加仓库名,--skill find-skills是仓库内的技能名,两者不能混。如果你从别处复制命令,注意核对。
修法:先去 skills.sh 网站搜 find-skills,复制页面上给出的完整安装命令,不要手打。如果网站访问慢,可以先用npx skills search find-skills在终端里搜。
5.2 安装成功但 Agent 不调用
现象是目录里有 find-skills,但对话时 Agent 还是自己回答。原因通常是 config.toml 里dynamic_discovery为 false,或者skills.root路径不对导致启动时没扫描到。
修法:确认配置后重启 Gateway。重启命令一般是:
openclaw gateway restart或者直接 kill 掉进程再启动。重启后看日志里有没有loaded skill: find-skills这一行。没有的话就是路径问题,把skills.root改成绝对路径再试。
5.3 模型不返回结构化调用
有些模型对工具调用的支持不好,你让它检索技能,它给你一段自然语言描述,而不是触发 find-skills。这时候要检查tool_model配置。建议工具调用单独指定一个指令遵循强的模型,不要和对话模型混用。
修法:在 config.toml 里把tool_model设成支持 function calling 的模型,比如 Claude 系列或 GPT 系列。TaoToken 的模型列表可以在 https://taotoken.net/api 的文档里查到,选标注了工具调用能力的。
5.4 安装后 OpenClaw 启动变慢
技能装多了之后,启动时扫描所有 SKILL.md 会变慢。如果超过 10 秒,说明技能数量太多或者某个技能的描述文件有问题。
修法:先用npx skills list看数量,把不用的卸载掉:
npx skills remove 技能名另外检查有没有技能的 SKILL.md 里写了死循环的触发条件,这种会让扫描卡住。逐个禁用排查即可。
5.5 中文需求检索不到合适技能
find-skills 的检索是基于语义匹配的,如果你的描述太短,比如只写“摘要”,返回的候选会很杂。建议在需求里带上语言、场景、输入类型,比如“中文长文档摘要,输入是 Markdown,输出三句话”。
修法:把需求写具体。如果还是搜不到,可以先用英文关键词搜一遍,很多技能的描述是英文的,找到后再看它是否支持中文。
6. 把 find-skills 变成你的默认工作流
配置跑通之后,真正拉开差距的是使用习惯。我的做法是把 find-skills 当成 OpenClaw 的“第一技能”,每次新建 Agent 或者换一个工作场景时,先让它用 find-skills 扫一遍相关技能,再开始干活。
具体来说,你可以建立一个简单的流程:遇到新需求时,第一句话不是“帮我做 X”,而是“先找一下有没有做 X 的 skill,有的话装上再用”。这个习惯看起来多了一步,但实际省掉的是后面反复试错的时间。Agent 找到的技能往往比通用知识更新、更贴合场景,尤其是那些社区维护的垂直技能。
另外,定期用npx skills check和npx skills update维护技能库。技能生态更新很快,过时的技能可能调用失败或者输出质量下降。保持技能库干净,比一次性装一堆更有用。
如果你想把这条链路接进日常编码,可以进一步了解 Coding Plan 相关的接入方式,把 OpenClaw 的技能调用和你的开发流程串起来。模型对话能力可以在 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_content=models&utm_campaign=rewrite 体验,接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite 可以查到完整的配置字段说明。API Key 管理入口还是 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite ,需要新建或轮换 key 时从这里进。
最后提醒一句:OpenClaw 的 Gateway 一定要保持本地监听,不要为了图方便绑到 0.0.0.0。技能装得越多,Agent 能调用的工具越强,暴露出去的后果也越严重。把bind_local_only守住,剩下的就是让 find-skills 帮你把能力一点点长出来。