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