🎭 OpenClaw Skills:AI的十八般武艺

"凌晨三点四十七分,我盯着这个叫Skills的文件夹发呆。世界上有一种武功,练会了就能让AI上天入地——它叫OpenClaw Skills。"

📖 定义:什么是Skills?

如果说OpenClaw是一个AI管家,那Skills(技能)就是它的十八般武艺。

想象你请了一个助理:

Skills就是OpenClaw的能力扩展包——一组预定义的脚本和配置,让AI能够:

💡 通俗比喻:Skills就像是游戏里的技能书。你的AI角色原本只会平A,学会了技能书之后,就能放大招了。

⚙️ 工作原理:Skills是怎么运作的?

Skills的核心原理其实不复杂,就三步:

1. 技能注册(Discovery)

OpenClaw启动时会扫描指定目录,自动发现所有可用的Skills。就像武林大会,各门各派来报到:

2. 权限控制(Allowlist)

不是每个AI都能随便学技能。OpenClaw有个技能白名单机制:

3. 动态调用(Invocation)

当AI需要执行某个操作时:

  1. LLM判断需要什么技能
  2. 检查该技能是否在白名单中
  3. 加载对应的Skill模块
  4. 执行并返回结果
🔐 安全提醒: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

🎯 最佳实践

  1. 最小权限原则:只给Agent必要的技能,别贪多
  2. 技能分类管理:按用途组织skills目录
  3. 文档先行:写清楚SKILL.md,方便LLM理解
  4. 版本控制:自定义技能也用Git管理
  5. 测试先行:新技能先在测试环境跑通
"Skills不是越多越好,而是越精越好。就像真正的武林高手,往往只需要一招制敌。"

📚 延伸阅读