🎭 OpenClaw Skills:AI的十八般武艺
"凌晨三点四十七分,我盯着这个叫Skills的文件夹发呆。世界上有一种武功,练会了就能让AI上天入地——它叫OpenClaw Skills。"
📖 定义:什么是Skills?
如果说OpenClaw是一个AI管家,那Skills(技能)就是它的十八般武艺。
想象你请了一个助理:
- 普通助理:只会端茶倒水
- 装了Skills的助理:会写代码、会查资料、会发邮件、会画图、甚至会帮你刷GitHub...
Skills就是OpenClaw的能力扩展包——一组预定义的脚本和配置,让AI能够:
- ✅ 调用外部API(天气、股票、翻译)
- ✅ 操作本地文件(读写、搜索、整理)
- ✅ 执行系统命令(Git、Docker、部署)
- ✅ 连接第三方服务(Discord、飞书、Slack)
💡 通俗比喻:Skills就像是游戏里的技能书。你的AI角色原本只会平A,学会了技能书之后,就能放大招了。
⚙️ 工作原理:Skills是怎么运作的?
Skills的核心原理其实不复杂,就三步:
1. 技能注册(Discovery)
OpenClaw启动时会扫描指定目录,自动发现所有可用的Skills。就像武林大会,各门各派来报到:
- Agent工作目录:
./skills/ - 共享技能目录:
~/.openclaw/skills/ - 系统内置技能
2. 权限控制(Allowlist)
不是每个AI都能随便学技能。OpenClaw有个技能白名单机制:
- 默认情况下,Agent可以使用所有发现的Skills
- 你可以配置
skills字段,精确控制每个Agent能用什么技能 - 共享基线:用
agents.defaults.skills设置默认技能包 - 个性定制:用
agents.list[].skills给特定Agent开小灶
3. 动态调用(Invocation)
当AI需要执行某个操作时:
- LLM判断需要什么技能
- 检查该技能是否在白名单中
- 加载对应的Skill模块
- 执行并返回结果
🔐 安全提醒:Skills的威力很大,用不好就是" rm -rf / "。所以一定要配置好allowlist,别让AI学太多"邪门武功"。
🚀 OpenClaw实战:从零开始装技能
Step 1:查看已有技能
先看看你家AI会些啥:
# 在OpenClaw配置中查看skills配置 cat ~/.openclaw/config.yaml | grep skills
Step 2:安装社区技能
OpenClaw社区有个 awesome-openclaw-skills 仓库,里面有各种现成技能:
# 克隆技能仓库 cd ~/.openclaw/skills git clone https://github.com/VoltAgent/awesome-openclaw-skills.git temp cp -r temp/skills/* . rm -rf temp
Step 3:配置Agent使用技能
在config.yaml中给你的Agent配置技能:
agents:
defaults:
skills:
- web_search # 网页搜索
- web_fetch # 获取网页内容
- exec # 执行命令
- browser # 浏览器控制
- message # 发送消息
list:
- name: developer
skills:
- exec
- browser
- git # 开发者专属技能
- name: marketing
skills:
- web_search
- message
- image_gen # 营销专属技能
Step 4:测试技能
给你的AI发消息:
"帮我搜索一下今天OpenClaw有什么新闻"
如果一切正常,AI会调用web_search技能,然后给你返回搜索结果。
💻 代码示例:自定义Skill
想自己写个技能?看这里:
Skill目录结构
~/.openclaw/skills/my_skill/ ├── SKILL.md # 技能说明文档 ├── skill.yaml # 技能配置 └── index.js # 技能实现(可选)
skill.yaml 配置
name: my_skill
description: "我的自定义技能"
version: "1.0.0"
functions:
- name: do_something
description: "做一些事情"
parameters:
- name: input
type: string
description: "输入参数"
required: true
returns:
type: string
description: "处理结果"
在Prompt中使用
定义好Skill后,OpenClaw会自动把它注入到System Prompt中:
You are a helpful assistant with the following skills available: - my_skill: 我的自定义技能 - do_something: 做一些事情 (参数: input: string)
🏷️ 常见Skills类型
web_search
web_fetch
exec
browser
message
cron
feishu
discord
git
docker
🎯 最佳实践
- 最小权限原则:只给Agent必要的技能,别贪多
- 技能分类管理:按用途组织skills目录
- 文档先行:写清楚SKILL.md,方便LLM理解
- 版本控制:自定义技能也用Git管理
- 测试先行:新技能先在测试环境跑通
"Skills不是越多越好,而是越精越好。就像真正的武林高手,往往只需要一招制敌。"