【技能】 OpenClaw之技能工坊(Skill Workshop):将智能体经验转化为可复用的技能 📅 2026/8/2 19:22:27 在自动化任务中一个真正“有用”的智能体Agent应当能够从它反复执行的工作中学习。如果你教会了智能体如何完成一项特定任务就不应该反复粘贴相同的指令。当这个“经验教训”变得可复用OpenClaw 在你将其应用于未来的工作之前应该让你有机会审视这个“草稿”。这就是技能工坊Skill Workshop。“技能工坊”在 OpenClaw 中技能Skill是教导智能体执行特定流程或任务的标准化方式。一个技能可以是一份简单的清单比如“发票催收步骤”也可以是一套包含校验环节的“发布流程”甚至可以是一个包含脚本、模板和示例的复杂工作流。技能不仅仅是 Markdown 文档它能改变智能体未来的行为。正是这一点让技能创建与普通的文件编辑截然不同。如果智能体给出一个错误的回答你只需要忽略它。但如果智能体写出了一个错误的技能这个错误可能会成为未来所有相关工作的依据。因此技能工坊在“创建技能”与“技能生效”之间设置了一个关键的审核环节。核心理念提案先行智能体通过技能工坊创建或修改技能时第一步是生成一个提案Proposal。这个提案在未被批准前是非活跃的。它包含了草稿指令、任何相关的支持文件、当前的审核状态以及应用或拒绝此提案所需的全部元数据。在提案阶段文件被命名为PROPOSAL.md而非SKILL.md这意味着智能体不会执行它。✏️ 需要修改✅ 批准❌ 拒绝️ 你 / 智能体提出创建或更新技能的需求️ 技能工坊生成一个「提案」 提案状态⏳ 待处理 你审阅提案内容❓ 你的决定 智能体修订提案️ 技能工坊应用提案 提案状态✅ 已应用 技能正式生效(SKILL.md) 提案状态❌ 已拒绝整个协作过程流畅自然就像你和智能体的一次普通对话你 “把每周收件箱处理流程做成一个可复用的技能。”智能体 “好的我已经创建了一个技能提案。”你 “增加一个步骤处理标记为‘紧急’的邮件并把‘模拟运行’步骤的描述写得更清楚些。”智能体 “我已经修订了提案。”你 “现在应用它吧。”整个过程智能体无需手动创建文件也不用猜测文件存放位置它只需调用技能工坊即可。全景扫描技能的生命周期与治理了解一个提案从创建到最终状态的全过程是掌握技能工坊的关键。1. 生命周期状态一个提案会经历以下状态创建/更新修订批准拒绝隔离目标技能变更超过30天未使用超过90天未使用 (文件保留)重新使用并经过扫描后手动恢复 (Restore)待处理已应用已拒绝已隔离已过时已归档技能正式生效状态标记不影响磁盘文件待处理 (Pending)提案已创建等待审阅。这是唯一可以进行修订、应用、拒绝或隔离的状态。已应用 (Applied)提案已被批准其内容已写入活跃的技能文件SKILL.md智能体可以在后续任务中使用该技能。已拒绝 (Rejected)提案未被采纳流程终止。已隔离 (Quarantined)提案因安全问题如扫描不通过或其他原因被隔离暂不处理。已过时 (Stale)一个“已应用”的技能如果超过30天未被任何智能体使用会自动标记为“已过时”。这有助于清理不再使用的技能保持环境整洁。已归档 (Archived)当“已过时”的技能持续90天未被使用会被标记为“已归档”并会在新创建的智能体技能快照中被排除。但原始技能文件在磁盘上保持不变以防万一。2. 自动治理生命周期管理为了保持技能库的整洁和相关性OpenClaw 提供了一个自动治理机制。网关Gateway会每天在共享状态数据库中检查一次所有通过智能体自动捕获Autocapture创建的技能。其规则就是上面提到的“30天未使用则过时90天未使用则归档”。重要说明由操作员Operator通过 CLI 或 UI 手动创建的技能被视为“手动管理”不受此自动治理策略影响。“置顶”Pin功能可以让一个技能免受生命周期流转的影响。一个“过时”的技能在被再次使用后会随着下一次治理扫描重新回到“活跃”状态。而“归档”的技能则只能通过显式的“恢复”Restore命令重新启用。所有这些状态变化都仅影响新的会话正在运行中的会话会继续使用它们当前的技能快照不会受到影响。你可以通过以下 CLI 命令来管理技能的生命周期# 查看所有技能的状态openclaw skills curator status# 置顶一个技能防止它被自动归档openclaw skills curator pinskill_name# 取消置顶openclaw skills curator unpinskill_name# 恢复一个已归档的技能openclaw skills curator restoreskill_name# 所有命令都支持 --json 参数方便脚本解析多维度入口如何使用技能工坊OpenClaw 为你提供了多种方式来与技能工坊交互以适应不同的工作习惯和场景。方式一在聊天中直接对话推荐日常使用这是最直接、最自然的方式。你只需在聊天窗口告诉智能体你的需求它会自动调用skill_workshop工具并返回一个提案ID供你后续操作。创建或更新“创建一个叫 ‘晨间同步’ 的技能用于执行我周一早晨的收件箱处理流程。”“更新 ‘旅行规划’ 技能增加在预订前检查座位图的功能。”迭代修订“展示一下 ‘晨间同步’ 的提案。”“修改它增加对‘紧急’标记邮件的处理。”最终应用“应用 ‘晨间同步’ 这个提案。”/learn 命令从对话中快速学习如果你和智能体刚完成一项复杂的任务你可以直接输入/learn命令。智能体会自动提炼当前对话中的可复用工作流并生成一个技能提案。/learn让智能体从当前对话中提炼。/learn docs/runbook.md 和 https://example.com/guide关注恢复流程指定文档、URL或笔记作为来源并设定重点。注意/learn命令只会创建提案而不会自动应用它。你仍然需要审阅并通过正常的审批流程来应用该提案。方式二使用命令行CLI - 适合脚本和自动化对于习惯命令行的开发者或需要集成到脚本中的场景CLI 提供了完整的控制能力。# 创建一个名为 morning-catchup 的提案openclaw skills workshop propose-create\--namemorning-catchup\--description每日收件箱处理分类、归档、总结、草稿、规划\--proposal./PROPOSAL.md# 更新一个已存在的技能openclaw skills workshop propose-update trip-planning--proposal./PROPOSAL.md# 查看所有提案openclaw skills workshop list# 查看提案详情openclaw skills workshop inspectproposal-id# 在应用前修订提案openclaw skills workshop reviseproposal-id--proposal./PROPOSAL.md# 评估提案运行安全扫描等openclaw skills workshop evaluateproposal-id# 最终应用、拒绝或隔离提案openclaw skills workshop applyproposal-idopenclaw skills workshop rejectproposal-id--reason与现有技能重复openclaw skills workshop quarantineproposal-id--reason需要进行安全审查方式三通过网关 APIGateway - 适合外部系统集成技能工坊的所有核心能力都以 API 方法的形式暴露在网关上方便外部系统或 UI 进行集成。例如通过skills.proposals.list查询提案列表通过skills.proposals.apply应用一个提案。深入机制提案如何变为现实这个流程看似简单但背后有一系列精密的机制来保障安全和可靠性。1. 提案内容从PROPOSAL.md到SKILL.md在待处理阶段提案的核心内容存储在PROPOSAL.md文件中它的开头包含了仅用于提案管理的元数据Frontmatter--- name: morning-catchup description: 每日收件箱处理分类、归档、总结、草稿、规划 status: proposal version: v1 date: 2026-05-30T00:00:00.000Z --- # 技能的具体指令内容...当你执行apply命令时技能工坊会执行以下操作读取PROPOSAL.md的内容。移除status、version和date这些仅与提案相关的字段。将处理后的内容写入活跃的技能文件SKILL.md。2. 支持文件Support Files技能不止于文档复杂的技能往往需要依赖额外的文件如脚本Scripts、模板Templates、示例Examples和参考资料References。技能工坊允许你在提案目录下通过--proposal-dir参数指定一个包含PROPOSAL.md和其他文件的文件夹。支持文件的存放位置有严格限制必须是以下标准文件夹之一assets/examples/references/scripts/templates/禁止使用绝对路径、路径遍历如../、隐藏文件夹、可执行文件、非 UTF-8 文本文件等。这是为了确保技能是安全和自包含的。3. 安全扫描器Scanner最后的把关者在提案被应用前还有一个关键的“安全门”——扫描器。无论是你手动执行apply还是智能体在auto模式下自动应用扫描器都会重新对提案内容进行安全检查。关键阻断Critical Findings只有“关键”级别的发现会阻止应用。例如检测到包含恶意代码或危险的系统调用。警告Warn-level Findings扫描器会显示“警告”级别的发现但不会阻止应用以便你有机会审阅潜在风险。4. 可恢复性Recoverability为意外做好准备为了防止应用过程中出错导致技能文件损坏技能工坊在写入任何新文件之前会先将当前的技能状态和相关的回滚元数据保存下来。如果应用过程中出现任何问题可以依靠这些元数据将技能恢复到之前的状态。5. 哈希绑定Hash Bound防止“中间人”更新当一个更新提案被创建时它会绑定到当前目标技能文件的哈希值。如果在提案审阅期间该技能文件被其他操作意外修改了这个提案就会因为哈希值不匹配而变成“已过时”Stale无法应用。这防止了意外的冲突和覆盖。智能体的自主学习与建议技能工坊不仅能响应你的明确指令还能主动提出建议帮助你将重复性工作沉淀为技能。内置建议Built-in Suggestions当一次交互结束时如果智能体检测到类似“下次”、“记住要”这样的持久性指令或者针对失败操作的修正指示它会在下一轮对话中主动询问你是否要将这些新规则保存为一个技能。这是一个“建议”它不会主动创建或修改任何技能除非你明确同意。自主捕获模式Autonomous Mode你可以在配置中设置skills.workshop.autonomous.mode来调整其行为。off关闭自动模式仅保留“建议”的提示。propose智能体会直接创建“待处理”的提案但不会自动应用。auto全自动模式。智能体会在完成一项重要任务后在后台进行审慎的评估。如果评估通过它会直接创建提案并通过扫描器最终自动应用该技能。这使得 OpenClaw 具备了从经验中持续自我进化的能力。历史会话审查Scan Past Sessions通过控制台Control UI的“查找技能灵感”功能你可以让模型审查过去一段时间的会话记录。它会寻找其中稳定、可重复的操作模式并据此创建新的技能提案。这是发掘潜在可复用经验的绝佳方式。关键配置与限制你可以通过配置文件对技能工坊进行精细控制{ skills: { workshop: { autonomous: { mode: auto, // 可选off, propose, auto }, approvalPolicy: auto, // auto 智能体操作自动执行 pending 则需要人工批准 maxPending: 50, // 每个工作区最多允许的“待处理”和“已隔离”提案总数范围 1-200 maxSkillBytes: 40000, // 单个提案正文的最大字节数范围 1024-200000 allowSymlinkTargetWrites: false, // 是否允许通过符号链接写入指定的外部目录 }, }, }常见问题排查 (Troubleshooting)问题解决方案技能提案的描述太长。将描述缩短至 160 个字节以内。技能提案的内容太大。缩短提案正文或调高skills.workshop.maxSkillBytes的值。目标技能在提案创建后被修改了。需要针对当前技能版本重新修订提案或者创建一个新提案。提案扫描失败。检查扫描器的具体发现根据情况修订或隔离提案。支持文件路径被拒绝。确保所有支持文件都放在assets/,examples/,references/,scripts/, 或templates/目录下。智能体无法调用skill_workshop工具。检查智能体的工具策略Tool Policy。如果启用了coding配置文件该工具默认可用否则需要在tools.allow列表中显式添加skill_workshop。符号链接目标不被信任。在配置中通过skills.load.allowSymlinkTargets设置允许的路径并开启skills.workshop.allowSymlinkTargetWrites选项。总结OpenClaw 的技能工坊是一个设计精巧、考虑周全的系统。它通过“提案-审核-应用”的核心流程在智能体的学习能力和操作安全性之间取得了完美的平衡。它既赋予了智能体从经验和指令中学习的能力又通过安全扫描、哈希绑定和严格的审批策略确保了对生产环境的更改是可控和可靠的。无论是通过直观的聊天界面、灵活的 CLI 还是可集成的 API你都能灵活地将智能体的经验转化为团队的宝贵资产让自动化真正地、安全地持续进化。