跳转至

Skill Workshop 工作原理

工作原理

以下生命周期适用于 Workshop 提案。当你要求你的代理修改你拥有的技能(仓库技能源、工作区 skills/ 目录、项目 .agents/skills/,或已配置的额外技能目录)时,它会直接编辑该文件;Workshop 用于代理自行捕获的技能。内置的、通过 ClawHub 安装的以及插件提供的技能会由其所有者的更新替换,因此代理会说明这一点,而不是编辑它们。

  • 先提案: 生成的内容存储为 PROPOSAL.md,而不是 SKILL.md。
  • 应用是唯一生效写入: 创建、更新和修订都不会更改生效技能。
  • 目录归属更新: 创建和更新都保留在 <state-dir>/agents/<agentId>/agent/workshop-skills 内。当且仅当技能包含在该代理的目录中时,它才属于 Workshop 所有。
  • 不覆盖: 如果目标已存在于该代理的 Workshop 目录中,创建会失败。来自其他来源的技能永远不会被更改。对于同名技能,加载顺序 决定使用哪个定义。
  • 哈希绑定: 更新提案绑定到当前目标哈希,如果在应用之前生效技能发生变化,则变为 stale。
  • 扫描器门控: 应用会在写入前重新运行安全扫描器。只有严重发现会阻止应用;警告级别发现仍可见,但不会阻止它。Prompt 相关关键词不是扫描器发现:提及隐藏指令或工具审批不会构成指令覆盖。字面凭据拒绝、审批策略和阻塞评估器决策仍会强制执行。
  • 可恢复: 应用会在触及生效文件前写入回滚元数据。
  • 修订原子性: 创建和修订会刷出完整的不可变提案代次,通过原子重命名发布它,然后在支持的情况下同步其父目录,再一起发布 SQLite 记录和事件。进程中断只会暴露完整的上一代次或完整的新代次。
  • 一致入口: 聊天、CLI 和 Gateway 都调用同一服务。

在控制台 UI 中审查

打开 插件 → Workshop 并选择要检查其技能的代理。

  • 技能 默认打开,并列出当前安装在该代理 Workshop 目录中的技能。具有指令变更的技能会首先显示。选择一个以阅读其完整的当前指令。已变更的技能会在一个可滚动比较中内联显示新增和删除内容,以及所有未变更部分。未变更的技能会以 Markdown 显示其当前指令。在比较已保存版本时,当前指令仍可读。
  • 建议 包含待处理提案,你可以评估、修订、应用或拒绝它们。

操作确认会自动消失。建议已更改的警告会保持可见,以便你审查更新后的草稿。

过去已应用、已拒绝、已隔离和已过期的提案仍可通过 CLI 和 Gateway 检查访问。它们不会作为单独的控制台 UI 部分列出,也不计入已安装技能。

比较使用保留的已应用版本,而不是完整的编辑时间线。相对日期标识已保存的基线,而不是后续编辑发生的时间。辅助文件和 frontmatter 不会被比较。缺失的版本会被标注;即使没有已保存版本,完整的当前指令仍可读。不会重建历史内容。

删除已安装技能不会删除其提案历史。阅读历史草稿不会恢复或重新安装它。手写和外部安装的技能仍保留在其所属技能界面上。

生命周期

create/update -> pending
revise        -> pending
evaluate      -> pending
apply         -> applied
reject        -> rejected
quarantine    -> quarantined
target change -> stale

只有 pending 提案可以被修订、应用、拒绝或隔离。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw