ARTICLE · 1091557
OpenClaw skill_workshop 实战:把「踩过的坑」变成可复用的技能包
为什么需要 skill_workshop
你一定有过这种经历:某个环境配置、某个部署报错,第一次花两小时查出来,第二次又花两小时——因为上次只记在脑子里(或根本没有记)。
OpenClaw 的 skill_workshop 工具就是专门解决这件事的:把已经跑通的操作步骤,提炼成一个可复用的 Skill(技能包),下次遇到同类问题,AI 直接加载技能照做,不用重新摸索。
它和 skills/ 目录里现成的技能不同:现成技能是别人写好的,而 skill_workshop 让你把自己工作区里验证过的真实流程沉淀成新技能。
skill_workshop 能做什么
这个工具不是让你手写一堆文件,它管的是技能的「生命周期」:
| 动作(action) | 作用 | 什么时候用 |
|---|---|---|
| create | 从零新建一个技能提案 | 你有一个反复出现的任务想固化 |
| prepare_patch / patch | 对现有技能做精准修改 | 某个技能步骤过时了、有坑没写 |
| read | 读取正在运行的技能完整内容 | 想看清一个技能到底怎么写的 |
| revise | 整体重写某个技能 | 技能逻辑要大改 |
| list | 查看待处理(pending)的技能提案 | 攒了一堆想法,先盘点 |
| inspect | 检查某个提案/支持文件 | 发布前确认内容是否完整 |
| evaluate | 用插件评估草稿质量 | 想判断技能写得够不够好 |
| apply / reject / quarantine | 应用 / 拒绝 / 隔离某个提案 | 评审通过或淘汰 |
| history | 查看最近 20 条处理记录 | 回溯「上次那个技能怎么改的」 |
| restore_collection | 还原上次清理保留的备份 | 误操作后回退 |
关键点:你写的叫「提案(proposal)」,只有 apply 之后它才变成真正生效的 SKILL.md。这层保护很实用——写错了不会直接污染工作区。
实操:把一次部署排错固化成技能
下面用真实流程演示。假设你刚解决了一个「Nginx 反代 WebSocket 一直 502」的问题,想把排错步骤存下来。
第一步:新建提案
调用 skill_workshop,动作选 create,描述写清触发场景:
action: create
name: nginx-websocket-502-debug
description: 当 OpenClaw 频道(飞书/微信)WebSocket 连接反代后频繁 502/掉线时激活。
按「查 upstream 配置 → 查 Upgrade 头 → 查 proxy_read_timeout → 改配置重载」顺序排查。create 之后工具会返回提案路径,内容还是空壳——你接下来要填的是步骤,不是文档。
第二步:写步骤(这是核心)
一个好技能只写「操作步骤 + 完成判据」,不写背景故事。示例正文骨架:
# SKILL.md
## 触发
飞书/微信频道经 Nginx 反代后 WebSocket 频繁 502 或几分钟掉线。
## 步骤
1. 检查反代配置是否带 Upgrade 头:
`grep -n "Upgrade" /etc/nginx/sites-enabled/你的站点`
判据:必须同时存在 `Upgrade $http_upgrade;` 和 `Connection "upgrade";`。
2. 检查 read/timeout:
`grep -n "proxy_read_timeout" /etc/nginx/sites-enabled/你的站点`
判据:低于 60s 会导致长连接被掐,建议设为 300s。
3. 修改后测试配置并重载:
`nginx -t && systemctl reload nginx`
判据:`nginx -t` 输出 `syntax is ok` 且 `test is successful`。
## 验证
用频道发一条消息,静置 5 分钟无掉线即修复成功。注意三条铁律(来自技能编写规范):
- 步骤以动作结尾
,每步带一个 AI 能自查的「完成判据」。
- 只写步骤,不写记录
:日志、历史、个人偏好属于记忆文件,不该塞进技能。
- 句子都要改变行为
:复述默认、空话、纯描述一律删掉。
第三步:发布前评估与修复
写好草稿后,用 action: evaluate 跑一遍插件评估,看技能是否够「可操作」。如果评估指出「某步缺少判据」,用 prepare_patch 精确补上那一段,而不是整篇重写。
第四步:应用
确认无误后 action: apply,提案内容写入对应技能的 SKILL.md,正式生效。下次同类问题,AI 加载该技能会直接走这套流程。
几个容易踩的坑
- 不要把一次性任务写成技能
。技能解决的是「会重复出现」的问题。一次性部署脚本放 scripts/更合适。
- 别在技能里塞密钥或环境细节
。 secrets工具管凭据,技能只写方法。
- 提案不等于生效
。 pending状态的提案不会被加载,别以为写完了就有用——记得apply。
- 过时的技能比没有更糟
。环境变了(比如 Nginx 版本升级)要 patch或revise,别让旧步骤误导。
和它配合的相邻能力
| 你想做的事 | 用哪个 |
|---|---|
| 固化自己的排错流程 | skill_workshop(本文) |
| 安装/搜索别人写好的技能 | clawhub |
| 审查/打磨 SKILL.md 结构 | skill-creator(现成技能) |
| 让 AI 记住长期偏好 | MEMORY.md / 记忆系统 |
一句话总结:skill_workshop 是把「我这次搞定了这个坑」变成「团队下次不用再踩」的转换器。它不神秘,核心就是「写步骤 + 给判据 + 应用生效」三步循环。把每天排掉的雷都攒成技能,你的工作区会越用越聪明。
关注公众号,获取更多 OpenClaw 实操技巧