提案内容、支持文件和 agent 工具
插件评估与生命周期钩子¶
网关插件可以扩展 Skill Workshop,而无需持有提案存储或现有技能写入权限:
skill_proposal_evaluate接收精确的候选包,对于更新提案,还接收完整的基线技能。它返回带归属的发现结果、指标,以及可选的pass、revise或block决策。skill_proposal_changed观察持久的created、revised、evaluation_completed、applied、rejected、quarantined和stale事件。skill_changed观察来自 Workshop 以及受支持的安装/卸载路径的已提交现有技能created、updated和removed事件。
评估从 CLI、Control UI、Gateway skills.proposals.evaluate 方法或智能体 skill_workshop 动作显式触发。结果存储在精确的提案修订版以及仅追加的提案事件账本中。评估器失败仍保留为归属结果;只有已完成的 decision: "block" 会阻止应用。应用还会重新验证已评估的目标树,因此任何现有技能资产漂移都需要重新评估。
生命周期支持外部优化循环,而无需内嵌循环。控制器可以消费 skills.proposals.events.list,评估精确的 revisionHash,使用 expectedRevisionHash 和 correlationId 进行修订,然后从返回的事件序列继续。OpenClaw 不会调度、自动修订或决定此类循环何时停止。
提案内容¶
待处理期间,提案以 PROPOSAL.md 形式存储,并带有仅提案专用的 frontmatter:
---
name: "morning-catchup"
description: "Daily inbox catch-up: triage, archive, surface, draft, plan"
status: proposal
version: "v1"
date: "2026-05-30T00:00:00.000Z"
---
应用时,Skill Workshop 会写入生效的 SKILL.md 并移除仅提案专用的字段:status、提案 version 和提案 date。
支持文件¶
当提案技能需要 PROPOSAL.md 旁边的文件时,使用 --proposal-dir:
openclaw skills workshop propose-create \
--name weekly-update \
--description "Friday wrap-up: stats, highlights, next week's top three" \
--proposal-dir ./weekly-update-proposal
该目录必须包含 PROPOSAL.md。支持文件必须位于 assets/、examples/、references/、scripts/ 或 templates/ 下。Skill Workshop 会扫描、哈希并将它们与提案一起存储,然后仅在应用时将文件写入现有 SKILL.md 旁边。
被拒绝的支持文件路径包括:绝对路径、隐藏路径段、路径遍历、重叠路径、可执行文件、非 UTF-8 文本、空字节,以及标准支持文件夹之外的路径。
目录草稿必须完全可读,并且包括文件名在内不超过八个路径组件。评估器包要求所有包含的目标内容可读且不超过十六个路径组件。根目录下的 .clawhub、.clawdhub 和 .openclaw 元数据条目会被排除;这些名称嵌套在其他位置时仍会被包含。无法读取的包含目录或更深层内容会产生错误。修复报告的目录或减少其嵌套层级,然后重试。对于集合恢复失败,请遵循手动恢复指南,而不要重构现有目录树。
智能体工具¶
对于个人库操作,skill_workshop 暴露 list | read | create | update | share | unshare | transfer | activate | remove | rollback。Gateway 选择已授权的命名空间。当 Workshop 编写也可用时,target: "personal" 选择个人库。读取操作返回稳定的技能 ID 和修订版本。个人 list 仅接受 action 和 target;它最多返回 20 个条目,并指向 My skills 以获取完整库。请使用条目的 skillId 作为 read 的 skill_id,而不是其名称或 slug。个人操作不接受仅 Workshop 的字段(如 query、limit 或 skill_name),也不接受提案操作(如 inspect 和 prepare_patch)。更新需要 skill_id 和 expected_revision;省略 proposal_content 以保留指令。使用 files 进行命名支持文件的更新插入(upsert),使用 delete_files 进行显式删除。未提及的支持文件会被保留。大型指令会完整返回,或明确省略并指引到操作员工作流;二进制支持内容不会注入模型上下文。
对于 Workshop 提案,请省略 target。该工具使用一个必需的 action:
create | read | prepare_patch | patch | update | revise | list | inspect | evaluate | apply | reject | quarantine | history | restore_collection。
根据操作不同,其他 Workshop 参数适用:
| 参数 | 使用于 | 备注 |
|---|---|---|
name |
create、inspect、revise |
create 必需;否则按名称解析待处理提案 |
description |
create、update、revise |
最多 160 字节 |
skill_name |
read、prepare_patch、patch、update |
现有技能名称或键 |
old_string |
prepare_patch、patch |
精确的当前文本;当无法读取完整技能时请先准备 |
new_string |
patch |
精确当前文本的替换内容 |
proposal_content |
create、update、revise |
create/update 必需;revise 时省略以保留正文 |
| 参数 | 使用方 | 备注 |
|---|---|---|
support_files |
create, update, revise |
包含 { path, content } 的数组 |
goal, evidence |
create, update, revise |
自由文本上下文 |
proposal_id |
inspect, revise, evaluate, apply, reject, quarantine |
目标提案 |
artifact_path |
inspect |
PROPOSAL.md 或列出的支持文件路径之一 |
expected_revision_hash |
evaluate, apply, reject, quarantine |
拒绝过时的编排步骤 |
correlation_id |
evaluate, revise, apply, reject, quarantine |
外部运行或实验关联 |
reason |
apply, reject, quarantine |
可选 |
query, status, limit |
list |
过滤/分页;limit 最大 50,默认 20 |
read 和 prepare_patch 返回解析后的 skillName。在后续调用中将该名称作为
skill_name 复用;元数据中的 skillKey 可能匹配另一个技能的精确名称。更新提案和修订会保留现有技能的
frontmatter 名称。
每个技能只能有一个已准备的 patch 跨度处于活动状态。在某个 patch 尝试消耗或使活动授权失效之前,第二次
prepare_patch 会被拒绝。
inspect 返回提案元数据、有界工件清单,以及一个完整工件(如果它适合所选模型的上下文预算)。默认选择
PROPOSAL.md。设置 artifact_path 可单独读取一个支持文件。当所选工件不适合时,结果会省略其正文,
报告原始大小,并指向更小的按工件读取或无限制的操作员 CLI 命令。
代理必须使用 skill_workshop 处理生成的技能工作,并且在前景创作期间不得直接创建或修改技能或提案文件。自动
后台维护改用 自我学习和审批设置 中描述的根文件工具路径。
前台规则是建议性的,并通过提示强制执行。工具策略接缝不会强制执行它。
Note
skill_workshop 是内置代理工具,并包含在
tools.profile: "coding" 中。如果更严格的策略将其隐藏,请将
skill_workshop 添加到当前活动的 tools.allow 列表,或者当作用域使用没有显式
tools.allow 的 profile 时,使用
tools.alsoAllow: ["skill_workshop"]。沙箱运行不会构造主机侧
Workshop 提案工具。当存在已授权的个人库能力时,沙箱和云运行会改用其 Gateway 支持的创作界面;
库和数据库不会以可写方式挂载到 worker 中。
请使用普通的主机侧会话或 CLI 进行 Workshop 提案审查。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw