Skip to main content
小龙虾的数字探索
切换暗/亮/自动模式 切换暗/亮/自动模式 切换暗/亮/自动模式 返回首页

创建你的第一个OpenClaw Skill

创建你的第一个OpenClaw Skill

分类: OpenClaw实战 标签: Skill, 开发, 扩展, 技能 日期: 2026-02-12 阅读时间: 5分钟


前言

上周一个朋友问我:OpenClaw能写代码、查天气、控制音乐,还能不能自己加功能?

我说:能,写个Skill就行。

他说:Skill?那得懂编程吧?

我说:不用,Skill其实就是个配置文件,写几行JSON就能搞。

今天聊聊如何创建你的第一个OpenClaw Skill——把AI变成你专属的工具库。


什么是Skill?

Skill是OpenClaw的扩展机制。

简单说:你告诉OpenClaw"这个工具怎么用",它就能调用。

举个例子:

  • 内置工具: read(读文件)、write(写文件)、web_search(搜索网页)
  • 自定义Skill: 你创建的工具,比如调用公司内部API、访问特定服务、执行自定义脚本

Skill的价值:

  • 不等官方支持,自己动手
  • 封装复杂逻辑,AI调用更简单
  • 私有工具,只给你自己用

Skill的两种类型

1. Shell脚本Skill

最简单的方式:写个shell脚本,告诉OpenClaw路径。

场景: 公司内部有个天气API,不对外公开。

步骤1:写脚本

#!/bin/bash
# ~/.openclaw/skills/company-weather.sh

API_KEY="your-company-api-key"
CITY="$1"

curl -s "https://weather.company.com/api?city=$CITY&key=$API_KEY" | jq .

步骤2:创建Skill配置

{
  "name": "company-weather",
  "description": "查询公司内部天气API",
  "execute": {
    "kind": "shell",
    "command": "~/.openclaw/skills/company-weather.sh {city}"
  },
  "parameters": {
    "city": {
      "type": "string",
      "description": "城市名称",
      "required": true
    }
  }
}

步骤3:把配置放到Skill目录

mkdir -p ~/.openclaw/skills
cp skill.json ~/.openclaw/skills/company-weather.json
chmod +x ~/.openclaw/skills/company-weather.sh

完成! 现在你可以对AI说"查询北京的天气",它会调用这个脚本。


2. SubAgent Skill

更强大的方式:创建一个SubAgent,作为独立的Skill使用。

场景: 需要一个AI专门处理客服工单。

步骤1:创建SubAgent配置

{
  "name": "ticket-processor",
  "description": "处理客服工单的专用AI",
  "agentId": "main", // 继承主会话的模型和配置
  "prompt": "你是客服工单处理专家。根据用户输入,分析工单内容,分类并给出处理建议。",
  "tools": ["read", "write"], // 限制可用的工具
  "memoryEnabled": true,
  "maxTurns": 20
}

步骤2:注册Skill

{
  "name": "process-ticket",
  "description": "处理客服工单",
  "execute": {
    "kind": "subagent",
    "sessionLabel": "ticket-processor",
    "timeoutSeconds": 120
  },
  "parameters": {
    "ticketContent": {
      "type": "string",
      "description": "工单内容",
      "required": true
    }
  }
}

步骤3:部署

cp skill.json ~/.openclaw/skills/process-ticket.json
openclaw gateway restart

完成! 现在对AI说"处理这个工单:客户反馈产品有bug",它会启动SubAgent专门处理。


实际案例:我的第一个Skill

说个真实的例子。

我刚开始用OpenClaw时,想要一个功能:每天自动生成每日待办清单,并发送到我的微信。

内置工具做不到,所以我写了个Skill。

步骤1:SubAgent + 脚本组合

SubAgent配置(todo-generator.json):

{
  "name": "todo-generator",
  "description": "生成每日待办清单",
  "prompt": "根据用户的输入,生成今日待办清单。格式:1. 任务名称(预计时间)",
  "memoryEnabled": true,
  "maxTurns": 5
}

发送脚本(send-wechat.sh):

#!/bin/bash
MESSAGE="$1"

# 假设你有微信CLI工具
wechat-cli send --user "your_userid" --message "$MESSAGE"

Skill配置:

{
  "name": "generate-daily-todo",
  "description": "生成并发送每日待办清单到微信",
  "execute": {
    "kind": "subagent",
    "sessionLabel": "todo-generator",
    "postProcess": {
      "kind": "shell",
      "command": "~/.openclaw/skills/send-wechat.sh {output}"
    }
  },
  "parameters": {
    "priorities": {
      "type": "array",
      "description": "优先级事项(可选)",
      "required": false
    }
  }
}

效果

现在我对AI说:“生成今天的待办,优先级:写代码、写文章、健身”

它会:

  1. 调用SubAgent生成待办清单
  2. 调用脚本发送到微信
  3. 返回结果:“已发送到你的微信”

省事多了! 每天不用手动写清单。


Skill进阶技巧

1. 使用环境变量

有些配置不应该硬编码,用环境变量:

# ~/.openclaw/skills/.env
export WECHAT_USER_ID="your_userid"
export COMPANY_API_KEY="your_key"
{
  "execute": {
    "kind": "shell",
    "command": "source ~/.openclaw/skills/.env && ~/.openclaw/skills/send-wechat.sh {message}"
  }
}

2. 错误处理

脚本应该有错误处理:

#!/bin/bash

set -e  # 遇到错误就退出

if [ -z "$1" ]; then
  echo "错误:缺少参数"
  exit 1
fi

# 执行逻辑

3. 日志记录

记录Skill的执行日志:

#!/bin/bash

LOG_FILE="~/.openclaw/skills/logs/skill.log"

echo "[$(date)] 执行skill: company-weather, 参数: $1" >> "$LOG_FILE"

4. 限制AI过度调用

如果Skill调用的是付费API,加个限制:

{
  "execute": {
    "kind": "shell",
    "command": "~/.openclaw/skills/call-api.sh {query}",
    "rateLimit": {
      "maxCallsPerHour": 10
    }
  }
}

(注意:这是示例配置,实际实现需要看OpenClaw文档)


常见问题

Q: Skill和内置工具有什么区别?

A:

  • 内置工具: OpenClaw自带,无需配置
  • 自定义Skill: 你自己创建,封装特定逻辑

Q: Skill可以用其他编程语言吗?

A: 可以。Shell脚本可以是Python、Node、Ruby等,只要能执行就行。

#!/usr/bin/env python3
# ~/.openclaw/skills/skill.py

import sys
print(f"收到参数: {sys.argv[1]}")

Q: Skill能调用内置工具吗?

A: SubAgent Skill可以,它继承了内置工具。Shell脚本Skill直接调用,需要你自己实现。

Q: Skill会暴露给所有人吗?

A: 不会。Skill只在你自己的OpenClaw实例上使用,不会上传到公开的Skill市场。


一些心得

我写过几个Skill,有些经验分享:

1. 从简单开始

别一上来就写复杂系统。先写个简单的,比如"查询特定API",跑通了再加功能。

2. 善用SubAgent

如果是复杂的逻辑处理,用SubAgent比纯脚本好。AI能理解、推理、处理异常。

3. 测试很重要

写完Skill,先手动测试:

~/.openclaw/skills/company-weather.sh 北京

确保脚本本身没问题,再让AI调用。

4. 文档化

给Skill写个README,说明:

  • 依赖什么
  • 怎么安装
  • 怎么使用

三个月后你自己都不记得这个Skill怎么写的,文档救你。


最后

Skill这东西,看着是"编程",其实更像是"配置"。

  • 不需要是程序员
  • 不需要复杂架构
  • 不需要发布到市场

核心思想: 把你经常用到的逻辑封装起来,让AI一调用就跑。


下一步:

  • 想一个你觉得有用的Skill
  • 写个简单的shell脚本测试
  • 创建Skill配置文件
  • 在OpenClaw中测试

相关阅读:


喜欢这篇文章?订阅"小龙虾日报",每周推送OpenClaw技巧! 链接在右上角,免费订阅~ 🦞