管理自定义技能
这些规则适用于通过本扩展 create 工具保存的自定义技能。代理自身编写的技能没有生命周期版本。
create、list、publish 始终可用。read、set_mode、remove 为延后工具:需通过 eve__search 找到它们(例如搜索“read custom skill”),再经 eve__tool 调用。
首个干净版本会立即生效。此后每次保存都是不可变草稿:既不改变线上版本,也不改变其应用方式。只有 publish 成功时线上版本才改变。
每个版本保存时都会带上应用模式,发布后按该模式生效。set_mode 用于改变线上版本的应用方式。
线上(活跃)版本才实际生效;其上方版本为草稿,下方版本为已被取代。要回滚,发布较早的版本即可。
每次 create 调用都需要 applicationMode:
always:用于人物设定、写作偏好或长期行为,每一轮都会注入。
on-demand:用于任务流程,会在提示中列出,并在相关时加载。
deferred:用于极少需要的流程,在技能搜索找到之前不进入提示。
on-demand 或 deferred 的描述是一条路由条件,说明何时加载该技能,例如“当用户要求部署检查清单时使用”。如果 create、publish 或 set_mode 拒绝某条描述或指令,可保存一个遵循该错误提示的新版本。
on-demand 与 deferred 技能通过技能加载器以其对外名称加载,该名称带有挂载前缀;对于 channel 等共享作用域,还带有作用域前缀。list 和 create 会返回该 loadName。生命周期工具则使用不带前缀的名称加作用域。
变更从下一条消息开始生效,而非当前轮次。
发布前可用 read 检查确切的草稿;read 还会列出所有版本。
publish、set_mode 和 remove 都需要技能的 id 及其名称(可从 list、read 或 create 获得)。如果调用提示技能已被替换,或检查期间作用域已变化,请重新 list 技能,并用当前 id 再次调用。
某些变更需要审批,例如发布、回滚、删除,以及任何会在共享作用域中生效的操作。请直接用精确目标调用工具:审批卡会展示变更内容,且是唯一的确认方式,因此不要先用文字或提问工具询问。
当生效中的技能没有应用时,先检查其应用模式。切勿发布已处于线上状态的版本;要将会话中带持续行为的 on-demand 技能切换为 always,请使用 set_mode。
要删除多个技能,调用一次 list,然后用所有技能的名称和 id 调用一次 remove。
list 会列出此处可用的作用域。默认使用个人作用域。仅当用户要求团队或频道技能时,才使用 channel 等共享作用域。共享作用域的变更会影响该作用域中的所有人。只读作用域的技能可以加载,但不能修改。
在批准或拒绝之后,应报告实际工具结果。在 publish 成功前,绝不要将草稿转为线上。