试着更新 dev-orchestra(Claude Code / Codex / Antigravity)
前言
上一篇,我把自己写的智能体接入了 dev-orchestra。本系列的最后一篇,讲的是如何把 dev-orchestra 更新到新版本。
dev-orchestra 在 1.0.0 之后,发布了 1.1.0 和 1.1.1。更新的方法因所用的 CLI 而异。所以我在 Claude Code、Codex 和 Antigravity 中,分别实际试了一遍从 1.0.0 升级到 1.1.1。
测试时,我准备了与日常配置分开的文件夹,在里面安装 1.0.0,然后再更新(Claude Code 把 CLAUDE_CONFIG_DIR、Codex 把 CODEX_HOME 指向了工作用的文件夹)。
- Windows 11
- Claude Code 2.1.301
- Codex CLI 0.163.0
- Antigravity CLI(agy)1.3.6
关于 dev-orchestra 是做什么的,请看介绍文章。
dev-orchestra 已在 GitHub 上开源(MIT 许可证)。如果你觉得有用,给个 Star 我会很高兴。
先说结论
| CLI | 更新方法 | 生效时机 |
|---|---|---|
| Claude Code | claude plugin marketplace update dev-orchestra → claude plugin update dev-orchestra | 重启 Claude Code |
| Codex | codex plugin marketplace upgrade dev-orchestra → codex plugin add dev-orchestra@dev-orchestra | 从下一个会话开始 |
| Antigravity(以链接方式安装) | 在 checkout 中执行 git fetch --tags → git checkout <新版本的标签>(这次是 v1.1.1) | 重启 Antigravity |
| Antigravity(以复制方式安装) | 同样切换标签后,再执行一次安装时用的命令 | 重启 Antigravity |
最容易踩坑的是 Claude Code:只执行 claude plugin update 并不会更新。
步骤
1. 确认当前版本
在每个 CLI 中,都可以通过已安装插件的列表看到版本。
claude plugin list
codex plugin list
agy plugin list
Claude Code 中会这样显示(节选)。
❯ dev-orchestra@dev-orchestra
Version: 1.0.0
Scope: user
最新版本可以在 GitHub 的 Releases 或 CHANGELOG 中确认。
2. Claude Code:先更新 marketplace,再更新插件
帮助中写着,claude plugin update 会“更新到最新版本(需要重启才能生效)”。所以我先只执行了这一条。
$ claude plugin update dev-orchestra
Checking for updates for plugin "dev-orchestra"…
✔ dev-orchestra is already at the latest version (1.0.0).
它提示“已经是最新版本(1.0.0)”,并没有更新。 这是因为 Claude Code 本地保存的 marketplace 信息还是旧的,不知道 1.1.1 已经发布。
先更新 marketplace 之后,这次就更新成功了。
$ claude plugin marketplace update dev-orchestra
✔ Successfully updated marketplace: dev-orchestra
$ claude plugin update dev-orchestra
Checking for updates for plugin "dev-orchestra"…
✔ Plugin "dev-orchestra" updated from 1.0.0 to 1.1.1 for scope user. Restart to apply changes.
另外,只执行 claude plugin marketplace update 时,claude plugin list 中的版本仍是 1.0.0。两条命令都需要。
正如最后一行所示,重启 Claude Code 后才会使用新版本。
也可以在 Claude Code 会话中用
/plugin操作,但这次我只试了在终端中执行的命令。
3. Codex:重新获取快照,再重新添加插件
Codex 会把 marketplace 以快照的形式保存在本地。首先重新获取它。
$ codex plugin marketplace upgrade dev-orchestra
Upgraded marketplace `dev-orchestra` to the latest configured revision.
接着,再执行一次安装时用的命令。
$ codex plugin add dev-orchestra@dev-orchestra
Added plugin `dev-orchestra` from marketplace `dev-orchestra`.
$ codex plugin list
dev-orchestra@dev-orchestra installed, enabled 1.1.1 ...
这次使用的 Codex 0.163.0,在执行 upgrade 时就已经换成了 1.1.1。不过,我写 Codex 篇时,只执行 upgrade 并不会装上新版本,所以最好连 plugin add 也执行一下,这样更保险。再执行一次也没有问题。
新版本会从下一个启动的会话开始使用。
4. Antigravity:取决于安装方式
Antigravity 会加载放在 plugins/ 文件夹中的目录。因此,更新方法取决于当初是怎么放进去的。
以链接方式安装的情况
如果你是用 install.sh --antigravity(Windows 上是 install.ps1 -Antigravity)把仓库的 checkout 做成链接的,只需把 checkout 切换到新版本的标签。在 Antigravity 篇中,我是 checkout 了标签(v1.0.0)来安装的,所以现在切换到新版本的标签(这里是 v1.1.1)。
cd dev-orchestra
git fetch --tags
git checkout v1.1.1
如果你的 checkout 是跟踪分支(main)的,用 git pull 也可以。
在 Windows 上,PowerShell 版的安装程序会创建目录联接(junction),而不是链接。把 checkout 从 1.0.0 切换到 1.1.1 后,通过联接看到的 plugin.json 中的版本也直接从 1.0.0 变成了 1.1.1。macOS / Linux 的符号链接这次没有试(只试了 Windows 的联接)。
然后重启 Antigravity。
以复制方式安装的情况
采用下面这些安装方式时,放置的是副本。
install.sh --antigravity --copyinstall.ps1 -Antigravity -Copyagy plugin install <checkout 的路径>- 在 Windows 的 Git Bash 中执行了
install.sh --antigravity(Git Bash 的ln -s创建的是副本,而不是链接)
副本不会因为切换 checkout 而改变。和链接的情况一样切换标签后,再执行一次安装时用的命令。
git fetch --tags
git checkout v1.1.1
./install/install.sh --antigravity --copy
如果是在 Windows 的 PowerShell 中安装的,则是这样。
git fetch --tags
git checkout v1.1.1
.\install\install.ps1 -Antigravity -Copy
安装程序会替换掉之前的副本。
Replaced the existing install at .../.gemini/config/plugins/dev-orchestra
Copied the plugin to .../.gemini/config/plugins/dev-orchestra
Re-run this installer after `git pull` to upgrade.
提示信息中写的是 git pull,但对于 checkout 了标签的情况,要像上面那样切换标签,而不是用 git pull。
如果是用 agy plugin install <路径> 安装的,再执行一次后,agy plugin list 中的版本也从 1.0.0 变成了 1.1.1。无论哪种情况,最后都要重启 Antigravity。
如果你用的是安装程序,但不确定自己是哪种方式,请看一下
~/.gemini/config/plugins/dev-orchestra是不是链接(Windows 上是联接)。如果是普通文件夹,那就是副本。用agy plugin install安装的会放在别的位置,并且始终是副本。
5. 从 checkout 直接安装的情况
如果不经过 CLI 的插件机制,而是直接从 checkout 安装,思路也是一样的。README 的“Upgrading”中写着,从 checkout 安装的,用 git pull 更新。如果 checkout 的是标签,就像上面那样切换标签。如果是用 --copy 安装的,之后再执行一次安装程序(references/workflow.md 的“Installing from a skill checkout”)。这种安装方式这次没有试。
6. 更新之后要确认的事
执行一次 dev-orchestra doctor(让 Claude Code 等智能体“运行 dev-orchestra 的 doctor”也一样)。它可以检查 CLI、配置和模型在当前版本下是否仍然没有问题。显示 No problems found. 就没问题,但下面也可能出现提示,请一并阅读。如下面的例子所示,可能会出现某项设置被忽略的提示。
在我的测试环境中出现了这样的差异。原因是我的配置文件里已经提前写了 1.1.0 新增的 design.ask_questions。1.0.0 的 doctor 会把它作为未知设置提示出来,而在 1.1.1 中这条提示消失了。
== 1.0.0
No problems found.
- design.ask_questions in the global file: unknown key, ignored
== 1.1.1
No problems found.
另外,了解下面这些也会更放心。
- 配置和自制的适配器不会丢失。 配置(
config.yaml)和自制的适配器(<配置目录>/providers/)位于插件之外的配置目录中。更新插件后,它们会原样保留 - 看一下 CHANGELOG。 在主版本号相同的期间,配置、产物和命令都遵循保持兼容的方针。如果有需要处理的变更,会写在 CHANGELOG 中
- 新功能通常要自己启用才会生效。 例如 1.1.0 加入的“设计之前先提问”功能(
design.ask_questions)默认是关闭的。仅仅更新,并不会改变以往的运行方式
总结
- 当前版本可以用
claude plugin list/codex plugin list/agy plugin list查看 - Claude Code:
claude plugin marketplace update dev-orchestra→claude plugin update dev-orchestra→ 重启。只执行plugin update会提示“已是最新”而不更新 - Codex:
codex plugin marketplace upgrade dev-orchestra→codex plugin add dev-orchestra@dev-orchestra。从下一个会话开始使用 - Antigravity:如果是链接,就把 checkout 切换到新版本的标签(
git fetch --tags→git checkout <新版本的标签>,这次是v1.1.1;如果跟踪的是分支,则用git pull)。如果是复制,之后再执行一次安装时的命令。两种情况都要重启 - 更新后执行一次
doctor。配置和自制的适配器不会丢失
本系列到此结束。想从头阅读,请从介绍文章开始;想一次看全部,请看“dev-orchestra”文章列表。发布新版本时,请按本文的步骤更新。
GitHub: istb16/dev-orchestra(给个 Star 就是对我最大的鼓励)
相关文章
在 Antigravity 中试用 dev-orchestra
我也在 Antigravity 中装上了 dev-orchestra。作为对话的地方可以正常使用,但把设计和审查交给 Antigravity CLI(agy)是有限制的。这里整理了能做什么、不能做什么,以及我推荐的用法。
重新组合 dev-orchestra 的审查者与角色
介绍如何为 dev-orchestra 的每个角色(role)指定模型、如何选择审查者的侧重点,以及能提议领域专家角色的 config suggest-roles。我还把故意埋了 bug 的改动交给 9 位审查者,测了测增加人数会带来什么变化。
比较 dev-orchestra 的预设 quality / standard / fast
我在 3 种环境(只有 Claude Code、只有 Codex、两者都有)中实际展开了 dev-orchestra 初始设置里可选的预设 quality / standard / fast,并进行了比较。这里总结各角色的模型、审查者人数和成本削减程度有何不同,以及该选哪一个。