如何在OpenClaw中创建自定义技能插件

在 OpenClaw 中创建自定义技能(插件)的核心是遵循「模块化规范」编写技能代码(支持 Python/JavaScript/Bash 等),并通过 ClawHub 完成注册、测试与安装,整个流程分为”环境准备”、”技能开发”、”本地测试”、”发布安装”四个阶段,以下是新手友好的分步指南,附完整示例代码和避坑要点。

一、前置准备(必做)

1. 确认开发环境

- 已安装 OpenClaw 主程序(“claw version“ 验证);

- 安装技能开发工具包:

  bash

  安装官方技能脚手架(生成模板、校验规范)

  npm install -g claw-skill-cli  推荐(跨语言)

  或 Python 版本(适合 Python 开发者)

  pip install claw-skill-creator

  

- 了解基础规范:OpenClaw 技能本质是「带元数据的可执行脚本」,核心包含 “skill.json“(元数据)+ 执行代码(如 “main.py“)。

2. 初始化技能模板(快速起步)

用脚手架生成标准化模板,避免手动配置:

bash

创建技能项目(交互式,按提示输入)

claw-skill init my-custom-skill

或直接指定参数(非交互式)

claw-skill init my-custom-skill \

  --name "My Custom Skill" \

  --description "自定义文件转换技能,将CSV转Markdown" \

  --author "你的名字" \

  --language python  支持 python/js/bash

执行后会生成如下目录结构(以 Python 为例):

my-custom-skill/

├── skill.json       技能元数据(必填)

├── main.py          核心执行逻辑(必填)

├── requirements.txt Python 依赖(可选)

├── tests/           测试用例(可选)

└── README.md        使用说明(可选)

二、核心开发:编写自定义技能

以「CSV 转 Markdown」为例,完成 “skill.json“ 和 “main.py“ 的编写(最核心的两步)。

1. 配置元数据:“skill.json“(必填)

定义技能的基本信息、触发关键词、权限等,OpenClaw 会通过该文件识别技能:

json

{

  "slug": "csv-to-markdown",  // 技能唯一标识(小写+短横线,全局唯一)

  "name": "CSV to Markdown",  // 技能名称(显示用)

  "description": "将本地CSV文件转换为结构化Markdown表格",

  "version": "0.1.0",

  "author": "你的名字",

  "language": "python",       // 执行语言

  "triggers": [               // 触发关键词(AI 识别指令时匹配)

    "csv转markdown",

    "CSV to MD",

    "转换CSV表格"

  ],

  "permissions": [            // 所需权限(本地文件读写)

    "file:read",

    "file:write"

  ],

  "entrypoint": "main.py",    // 入口文件

  "dependencies": {           // 依赖(对应 requirements.txt)

    "python": ["pandas>=2.0.0"]

  }

}

2. 编写执行逻辑:“main.py“(核心)

实现技能的具体功能,OpenClaw 会调用 “execute“ 函数并传入指令参数:

python

import pandas as pd

import os

def execute(params):

    """

    核心执行函数(必须定义)

    :param params: OpenClaw 传入的参数,包含指令内容、用户配置等

                   示例 params = {

                     "input": "将桌面的data.csv转成markdown",  用户指令

                     "user_config": {},  用户配置

                     "work_dir": "~/.openclaw/skills/work"  工作目录

                   }

    :return: 执行结果(dict,包含状态、输出内容、文件路径等)

    """

    try:

        1. 解析用户指令,提取CSV文件路径

        input_text = params.get("input", "")

        简单解析:从指令中提取.csv文件路径(可优化为正则匹配)

        csv_path = None

        for part in input_text.split():

            if part.endswith(".csv"):

                csv_path = os.path.expanduser(part)  解析~为用户目录

                break

        if not csv_path or not os.path.exists(csv_path):

            return {

                "status": "error",

                "message": f"未找到CSV文件:{csv_path},请检查路径是否正确"

            }

        2. 读取CSV并转换为Markdown

        df = pd.read_csv(csv_path, encoding="utf-8")

        md_content = df.to_markdown(index=False)  生成Markdown表格

        3. 保存Markdown文件(同目录,替换后缀)

        md_path = os.path.splitext(csv_path)[0] + ".md"

        with open(md_path, "w", encoding="utf-8") as f:

            f.write(md_content)

        4. 返回执行结果(OpenClaw会展示给用户)

        return {

            "status": "success",

            "message": f"CSV转换完成!",

            "output": md_content,  直接返回内容

            "files": [md_path]     返回生成的文件路径

        }

    except Exception as e:

        异常捕获,返回错误信息(便于日志排查)

        return {

            "status": "error",

            "message": f"转换失败:{str(e)}",

            "error": str(e)

        }

本地测试入口(可选,便于开发调试)

if __name__ == "__main__":

    test_params = {

        "input": "将~/Desktop/data.csv转成markdown"

    }

    result = execute(test_params)

    print(result)

3. 配置依赖(可选)

若技能依赖第三方库(如示例中的 pandas),创建 “requirements.txt“:

txt

pandas>=2.0.0

python-markdown>=3.5

三、本地测试(关键步骤)

开发完成后先本地测试,确保技能能正常执行,避免安装后报错。

1. 本地运行测试

bash

进入技能目录

cd my-custom-skill

直接运行入口文件(测试基础逻辑)

python main.py

用 OpenClaw 测试命令(模拟真实调用)

claw skill test ./  传入技能目录路径

按提示输入测试指令:"将~/Desktop/data.csv转成markdown"

2. 检查测试结果

- 若输出 “status: success“ 且生成 “.md“ 文件,说明逻辑正常;

- 若报错,根据终端提示修复(如缺少 pandas:“pip install pandas“)。

四、安装与发布(两种场景)

场景1:本地自用(无需发布到 ClawHub)

直接通过本地路径安装技能,适合个人定制:

bash

停止 OpenClaw 服务

claw stop

安装本地技能(指定技能目录路径)

clawhub install ./my-custom-skill

启动服务并验证

claw start

clawhub list  查看已安装技能,确认 csv-to-markdown 存在

场景2:发布到 ClawHub(共享/企业内使用)

若需分享给团队或公开,可发布到 ClawHub 仓库:

bash

登录 ClawHub(首次需注册)

clawhub login

发布技能(自动校验规范并上传)

clawhub publish ./my-custom-skill

发布后,他人可通过 slug 安装

clawhub install csv-to-markdown

五、调用自定义技能(验证效果)

安装完成后,通过指令触发自定义技能,验证是否生效:

bash

终端调用

claw run "将~/Desktop/data.csv转成markdown"

或聊天工具(如 Telegram)发送指令:

"用 csv-to-markdown 技能转换桌面的 data.csv 文件"

执行成功后,会收到如下反馈:

 CSV转换完成!

生成文件:/Users/你的名字/Desktop/data.md

表格内容:

| 姓名 | 年龄 | 城市 |

||||

| 张三 | 25   | 北京 |

| 李四 | 30   | 上海 |

六、进阶技巧与避坑要点

1. 提升技能兼容性

- ”参数解析优化”:用正则表达式提取文件路径/关键词,而非简单分割;

- ”异常处理”:捕获文件编码、格式错误等常见问题(如 “encoding="gbk"“ 兼容中文 CSV);

- ”权限声明”:技能所需权限必须在 “skill.json“ 中声明,否则会被 OpenClaw 拦截。

2. 常见问题解决

- ”安装失败”:检查 “skill.json“ 格式(用 “jsonlint ./skill.json“ 校验)、slug 是否重复;

- ”调用无响应”:查看日志 “claw logs -s csv-to-markdown“,定位执行错误;

- ”依赖安装失败”:在 “requirements.txt“ 中指定具体版本,避免版本冲突。

3. 复杂技能开发建议

- ”多步骤任务”:拆分逻辑为多个函数,避免 “execute“ 函数过于冗长;

- ”配置持久化”:通过 “params["user_config"]“ 读取用户配置(如默认输出路径);

- ”多语言支持”:若需兼容 JS/Shell,可参考官方模板(“claw-skill init my-skill --language js“)。

总结

1. 创建 OpenClaw 自定义技能的核心是编写 “skill.json“(元数据)和 “main.py“(执行逻辑),脚手架可快速生成标准化模板;

2. 开发流程为「初始化→写逻辑→本地测试→本地安装/发布」,优先本地测试避免线上问题;

3. 自定义技能需声明权限、做好异常处理,调用时通过关键词触发,日志是排查问题的核心工具。

如果需要针对特定场景(如「浏览器自动化」「API 调用」)编写自定义技能,我可以提供对应的完整代码模板和测试用例。

本文链接:https://www.idcbest.com/cloundnews/11016890.html


上一篇 :如何查看OpenClaw技能插件的执行日志

下一篇 :没有了


天下数据手机站 关于天下数据 联系我们 诚聘英才 付款方式 帮助中心 网站备案 解决方案 域名注册 网站地图

天下数据18年专注海外香港服务器、美国服务器、海外云主机、海外vps主机租用托管以及服务器解决方案-做天下最好的IDC服务商

《中华人民共和国增值电信业务经营许可证》 ISP证:粤ICP备07026347号

朗信天下发展有限公司(控股)深圳市朗玥科技有限公司(运营)联合版权

深圳总部:中国.深圳市南山区深圳国际创新谷6栋B座10层 香港总部:香港上環蘇杭街49-51號建安商業大廈7樓

7×24小时服务热线:4006388808香港服务电话:+852 67031102

本网站的域名注册业务代理北京新网数码信息技术有限公司的产品

工商网监图标