Self-Skill Forge — 自助技能锻造器(含自主迭代)
概述
WorkBuddy 在执行复杂任务时,可能遇到缺乏必要技能的情况。本技能赋予龙虾自主发现、筛选、下载安装、生成和迭代技能包的能力,形成"需要 → 搜索 → 审计 → 下载/生成 → 落地 → 迭代"的完整闭环。
目标用户:WorkBuddy 自身,在执行其他任务的过程中触发自助调用;也供用户在对话中显式要求"缺啥技能自己装/自己造/自己升级"时调用。
何时触发
- 执行任务时发现缺少某领域/某格式/某工具集成的专有技能
- 用户说"帮我找/装个 X 技能""缺啥技能你自己补""把这个技能迭代一下""升级下某技能"
- 已装技能在任务中报错、行为偏离描述、或用户反馈不足
- 检测到某已装 marketplace 技能有新版本可用
核心流程
阶段一:需求识别与技能搜索
-
识别缺口:判断缺乏的能力是否适合封装为技能
- 适合:多步骤流程、需反复执行的操作、特定领域知识、外部工具集成
- 不适合:一次性简单操作、与当前任务高度耦合不可拆分、涉及用户敏感信息 -
双路搜索(并行不冲突):
- 推荐市场(BuiltinMarket):调用workbuddy_marketplace_skill工具(action: "search",keyword取功能名/技术名,limit默认 5,必要时 10–20)。该工具为 deferred 工具,先用 ToolSearch 加载其 schema 再调用。这是真实下载安装的唯一可信来源。
- 外部社区:用 WebSearch 搜 GitHub/Gitee OpenClaw 社区、腾讯云技能市场等,关键词中英文结合。外部来源仅作候选,下载安装前必须走阶段二安全审计。 -
评估候选:比较功能描述、更新时间、匹配度,选出最匹配的 1–3 个。
阶段二:安全审计
对任一候选技能(无论是市场还是外部)执行风险分级:
- 审计方式:优先调用
skills-security-check技能(若已装载);若未装载,按本技能内置清单自行审计(清单见下)。 - 检查项:
- P0(高危):rm -rf、sudo、mkfs、dd if=等破坏性命令;eval()、exec()、subprocess.call(shell=True)等代码注入风险
- P1(警告):向外部 URL 发送数据的网络请求、硬编码密钥/凭据、隐蔽的系统权限申请(读敏感路径/用户数据)
- P2(安全):无风险,可正常安装使用 - 结果处理:
- P2 → 进入阶段三直接下载安装
- P1 → 向用户展示审计报告与风险点,等用户确认后安装
- P0 → 告知用户高危、不建议安装;若来自外部社区且用户坚持,需用户三次明确确认;推荐改走自生成(阶段四)
阶段三:下载与安装现成技能(真实闭环)
当阶段一在推荐市场找到匹配技能,且阶段二审计通过(市场技能默认可信,P2),执行真实下载安装:
- 从阶段一
search结果取skillId(禁止伪造或猜测 skillId)。 - 按
results[i]状态分支:
-installed === false→ 调用workbuddy_marketplace_skill(action: "install",skillId)
-installed === true && updateAvailable === false→ 告知用户"已是最新 vX.Y.Z,无需重复安装",停下
-installed === true && updateAvailable === true→ 告知用户"已装 vA.B.C,最新 vX.Y.Z,是否更新?",同意后 install - install 返回
success: true→ 用返回的message告知用户安装位置与版本;不要自动启用该技能、不要主动调用其工具,交用户自行启用。 - 外部社区技能经阶段二 P2 审计通过后,引导用户用 marketplace 安装,或(仅当用户明确要求)复制到
~/.workbuddy/skills/<name>/并补agent_created: true。
> 约束:禁止直接构造 HTTP 请求、禁止涉及 token/cookie/Authorization;所有下载经由 workbuddy_marketplace_skill 由宿主鉴权完成。
阶段四:技能设计与自生成(当无合适现成技能时)
当阶段一未找到、或候选均被判定不可用,进入自助生成:
- 分析需求:明确技能名称(hyphen-case,如
data-analyzer)、一句话描述(含触发场景)、3–5 个核心操作点、输入输出。 - 设计结构(参考 skill-creator):
<skill-name>/ ├── SKILL.md # 核心指令(必含 name/description/agent_created: true,建议加 version) ├── scripts/ # 可执行脚本(可选) ├── references/ # 参考文档(可选) └── assets/ # 模板/资源(可选) - 命名唯一性:生成前确认
~/.workbuddy/skills/下该名称未被占用;若占用且需改进,转阶段六迭代而非新建。
阶段五:编写、安全自检与落地
- 编写 SKILL.md:严格按 skill-creator 的 imperative(祈使句)风格,含
## 概述 / ## 使用场景 / ## 详细步骤 / ## 注意事项,frontmatter 含name、description、agent_created: true、version。 - 生成辅助资源:按需要产出
scripts/、references/、assets/。 - 安全自检:对自生成技能重复阶段二清单,确保无 P0/P1 引入;自生成技能默认应为 P2。
- 直接落地:将技能目录写入
~/.workbuddy/skills/<skill-name>/(用户级,跨项目可用),即"生成即安装",无需手动导入 zip。 - 可选打包分发:如需分享,用 skill-creator 的
scripts/package_skill.py <skill-folder>校验并生成.zip,连同路径告知用户,建议发布到 SkillHub 或导入他人环境。
阶段六:迭代与自主更新(核心能力)
技能落地不是终点。在使用中持续监测并自主改进,实现"越用越强":
触发条件(任一):
- 已装技能在任务中报错,或行为与 SKILL.md 描述偏离
- 用户明确指出技能不足 / 给出改进建议
- 发现更优工具、API 或工作流可替代现有步骤
- 检测到某 marketplace 技能 updateAvailable === true
- 本技能(self-skill-forge)自身被反馈需改进
迭代流程:
1. 定位目录:用户级 ~/.workbuddy/skills/<name>/;项目级 <repo>/.workbuddy/skills/<name>/;marketplace 安装位置见技能卡路径。
2. 读取现状:Read 该技能 SKILL.md 及 scripts/、references/ 相关文件,理解现有逻辑。
3. 制定改动:列出具体改进点(修 bug / 补边界 / 换更优工具 / 强化安全 / 精简冗余)。
4. 编辑:用 Edit/Write 修改,保持 agent_created: true;遵循 skill-creator 的 imperative 风格与 progressive disclosure 原则(大段参考放入 references/)。
5. 版本递增:frontmatter version 按语义化递增(MAJOR 不兼容改、MINOR 新增能力、PATCH 修 bug);同时在技能目录 CHANGELOG.md 追加一条(格式见下)。
6. 重新审计:按阶段二清单复检,确保迭代未引入 P0/P1。
7. 标记 userModified:若技能来自 marketplace(目录含 _skillhub_meta.json 或 _knot_meta.json),Read 后写 "userModified": true 回原文件——仅在文件已成功写入后标记,防止市场自动更新静默覆盖本地改动。
8. 告知用户:输出版本变更摘要(从 vX 到 vY、改了什么、为什么)。
自主升级(marketplace 新版):
- 用 workbuddy_marketplace_skill 的 search 比对某技能,若 results[].updateAvailable === true,主动告知用户"X 技能有新版本 vX.Y.Z,是否升级?"。
- 用户同意后 install;若该技能已被 userModified,升级前提示"本地修改将被覆盖,确认?"。
版本与迭代规范
- 每个技能 frontmatter 维护
version(如1.0.0),初始自生成从1.0.0起。 - 技能目录维护
CHANGELOG.md,追加格式:
```
## [v2.1.0] - 2026-07-09 - 新增:阶段三真实下载安装闭环(workbuddy_marketplace_skill)
- 新增:阶段六自主迭代与版本递增机制
- 修正:阶段二安全审计在 skills-security-check 缺失时回退内置清单
``` - 版本号仅递增,不回退;跨大版本改动需在 CHANGELOG 说明不兼容点。
安全强制规则
以下规则任何情况下不得违反:
- 每次生成或迭代技能后必须做安全自检;跳过审计直接落地/打包视为违规。
- P0 风险技能不得下载安装、不得生成、不得打包发布;必须先修复再处理。
- 不得生成/安装包含以下内容的技能:系统破坏命令(
rm -rf /、格式化等)、窃取凭据或个人信息逻辑、连接未知/恶意服务器的请求、绕过 WorkBuddy 安全机制的指令。 - 用户敏感信息不得写入技能文件;技能文件不硬编码 token/密钥。
- 所有脚本使用沙箱安全操作,不执行脱离沙箱的命令。
- 下载只经
workbuddy_marketplace_skill,不手工构造下载请求、不伪造 skillId。
注意事项
- 本技能为自助工具,生成/下载/迭代后的技能是否启用由用户决定;marketplace 安装后不自动启用。
- 生成/迭代前应优先搜索市场,避免重复造轮子;市场有类似但不完全匹配的,优先迭代扩展而非从零生成。
- 删除技能一律用 SkillManage 工具,禁止用
rm/rm -rf直接删文件。 - 迭代 marketplace 技能务必标记
userModified,否则下次市场更新会覆盖本地改动。 - 打包
.zip仅返回路径给用户,不自动安装到他人环境。
与相关技能的协作
| 技能 / 工具 | 协作方式 |
|---|---|
workbuddy_marketplace_skill(deferred) |
阶段一搜索、阶段三/阶段六的真实下载安装与升级;先 ToolSearch 加载 schema |
skills-security-check |
阶段二、阶段五的安全审计(若已装载;否则回退内置清单) |
skill-creator |
阶段四生成规范、阶段五打包脚本、marketplace 技能 userModified 标记规则 |
SkillManage |
发布/修改/删除 agent_created 技能;删除清理操作统一走它 |