需编写自定义skill:新建文件夹并含skill.md(必备)、scripts/脚本和assets/模板;skill.md用yaml声明元数据与自然语言指令;python脚本通过sys.argv接收参数并安全执行;模板用占位符动态填充;通过技能管理添加路径,热加载调试。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望在ToClaw中实现高度个性化的自动化任务,但发现预设功能无法覆盖您的具体业务场景,则需要通过编写自定义技能来扩展能力。以下是完成此目标的具体操作路径:
一、理解ToClaw技能的基本结构
ToClaw的自定义技能沿用OpenClaw兼容的轻量级目录规范,本质是一个含元数据说明与可执行逻辑的文件夹。它不依赖编译或打包工具,修改后立即生效,适合快速迭代验证。
1、新建一个本地文件夹,命名为如my-file-organizer;
2、在该文件夹内创建必需文件SKILL.md,作为技能核心说明书;
3、根据需要添加scripts/子目录存放Python脚本,或assets/存放模板文件;
4、确保所有文件保存为UTF-8编码,避免中文乱码导致加载失败。
二、编写SKILL.md核心说明文件
该文件是ToClaw识别并加载技能的唯一入口,必须包含准确的元数据声明与清晰的指令描述,否则AI无法正确解析调用意图。
1、在SKILL.md顶部使用YAML格式声明基础信息,例如:
name: clean-c-drive<br>description: 自动扫描并安全清理C盘临时文件与回收站<br>trigger: ["清理C盘", "帮我释放C盘空间"];
2、在YAML下方空一行后,用自然语言详细描述该技能的适用条件、输入预期(如是否需用户指定保留天数)、输出形式(如生成清理报告);
3、若涉及脚本调用,在文档中明确写出执行命令,例如:run: python scripts/cleaner.py --days 7;
4、保存文件时确认无BOM头,推荐使用VS Code或Notepad++等编辑器检查编码格式。
三、集成Python脚本实现自动化逻辑
当标准指令无法满足复杂判断或系统交互需求时,可通过Python脚本接管实际执行环节,ToClaw支持直接调用本地脚本并捕获其标准输出作为结果返回。
1、在技能文件夹中新建scripts/目录;
2、放入cleaner.py,内容需包含if __name__ == "__main__":入口,并使用sys.argv接收ToClaw传入参数;
3、脚本中禁止调用需交互式确认的系统命令(如rm -rf无提示强制删除),必须内置安全校验逻辑;
4、脚本执行完成后,通过print()输出结构化文本(如JSON行或键值对),供ToClaw提取关键结果字段。
四、配置资产模板增强输出质量
对于需生成格式化文档、邮件或报告类任务,可将预设模板存入assets/目录,由脚本读取并填充动态内容,避免每次重复编写排版逻辑。
1、在assets/下创建report_template.md,使用{{date}}、{{size_freed}}等占位符;
2、在对应Python脚本中使用jinja2.Template或字符串.format()替换占位符;
3、确保模板文件名与脚本中加载路径完全一致,区分大小写;
4、模板中不得包含执行权限相关代码或外部链接引用,防止意外触发远程加载。
五、启用并调试自定义技能
ToClaw采用热加载机制,无需重启客户端即可识别新增或变更的技能目录,但需确保路径注册正确且无语法错误,否则技能将被静默忽略。
1、打开ToClaw主界面,点击左上角「设置」→「技能管理」→「添加本地技能」;
2、选择已准备好的文件夹根目录(含SKILL.md的那层),点击确认;
3、在输入框中发送任意一条匹配trigger字段的指令(如“清理C盘”),观察底部状态栏是否显示“技能已加载”;
4、若执行失败,点击右下角「日志」图标,查看最近10条运行记录,重点检查SKILL.md解析错误或脚本退出码非0的提示。











