SuperAPI AI 工具集

update

部署与运维

查看项目

更新于 10-16 10:13

技能介绍

Ouroboros 的 update 技能用于检查更新并将 Ouroboros 升级到最新版本,且不会改变当前安装的管理器、环境或可选依赖配置。

用途

该技能的核心用途是安全地升级 Ouroboros。它在升级过程中会绑定包升级与升级后设置到同一个由回执(receipt)支撑的安装身份,包括管理器、环境、已记录的 profile 以及环境本地的控制台脚本,从而避免误判安装来源。

主要能力

  • 检查更新:运行 ouroboros update --check,若显示已是最新版本则报告结果并停止。
  • 执行升级:若检测到有新版本,询问用户选择“立即更新”或“跳过”;选择立即更新后运行 ouroboros update --yes。
  • 刷新双运行时集成:当用户同时使用 Claude Code 和 Codex 时,可运行 ouroboros update --yes --runtime all,在不改变已配置执行后端的前提下刷新两者的宿主集成。
  • 保留配置 profile:uv 和 pipx 升级会重放当前运行环境的本地回执,保留 base、[tui]、[mcp,tui]、[claude,tui]、[all] 等已记录的 profile。
  • 运行时身份校验:运行时可执行文件身份依次遵循受支持的环境变量覆盖、持久化的 orchestrator.*_cli_path、PATH;所选可执行文件会被验证并复用于插件/设置刷新,防止陈旧 PATH 二进制替换操作者选定的运行时。

使用方式

命令形式:

ooo update /ouroboros:update

触发关键词:"ooo update"、"update ouroboros"、"upgrade ouroboros"。

执行流程:

  1. 使用原生命令 ouroboros update --check 作为唯一事实来源。
  2. 若报告已是最新,报告并停止。
  3. 若报告有更新可用,询问用户选择 Update now 或 Skip。
  4. 若用户选择 Update now,运行 ouroboros update --yes。
  5. 若用户同时使用 Claude Code 和 Codex,运行 ouroboros update --yes --runtime all。
  6. 展示命令结果。

ouroboros update 支持 --check、--yes、--dry-run、--prerelease 和 --runtime,详见 ouroboros update --help。

升级成功后,转达原生命令给出的针对运行时的重启指引。如果项目指令内容也需要重新生成,建议运行 ooo setup;不要在包升级过程中编辑项目指令文件。

适用场景

  • 用户希望将 Ouroboros 升级到最新版本时。
  • 用户同时使用 Claude Code 和 Codex,需要刷新两者插件集成时。
  • 需要在不改变安装身份的前提下执行升级时。

限制与安全约定

  • PyPI 是版本的事实来源,被完全撤销(yanked)的版本会被排除。
  • Claude SDK 与 MCP 2 profile 绝不会被合并或替换。
  • 安装身份缺失或含糊时,属于非变更性错误。
  • 自动运行时刷新会保留已配置后端和现有 OpenCode 插件/子进程拓扑,而不是从 PATH 推断替代项。
  • --runtime all 会刷新 Claude 和 Codex 插件集成以及已安装的运行时工件,但不改变已配置执行后端;活动的 Codex 会话仍需重启,因为 Codex 当前不保留正在使用的插件代际;Claude 可使用 /reload-plugins 或重启。
  • 若检查失败但 ouroboros update --help 可用,则报告原生错误并停止,不要用手动更新器替代;尤其不要从全局 uv tool list、pipx list、PATH 顺序、目录名称或活动代理运行时推断归属。
  • 若 ouroboros update --help 不可用,说明是早于回执绑定更新器的旧版安装,此时应失败关闭:允许只读的 ouroboros --version 检查;说明旧技能无法证明原始管理器、环境和 extras/profile,因此不会变更安装;请用户重新运行确切的原始安装命令(包括其 ouroboros-ai[...] extras 和自定义管理器根)以到达带原生更新器的版本;若用户不知道该身份,建议全新隔离安装而非猜测;不要从此旧路径运行包升级、插件刷新或设置命令。

注意事项

最终响应必须以恰好一行面包屑页脚结尾:◆ <current state> → next: <recommended action>。当前状态应来自实时会话状态(当该 MCP 投影可用时通过 ouroboros_session_status 获取),否则根据本技能的实际结果推导。不要使用线性的 Step N of M 页脚,因为 Ouroboros 是演化循环。当下一步存在真实选择时,在 next: 子句中列出 2-3 个诚实的选项。面包屑行必须是响应的最后一行。