返回资讯中心
外部精选
软件工程
#开发者实时流

Baton:在多个AI编程代理间轮转,维持长时间编码目标

来源标题:Baton – Keep long coding goals moving across AI coding agents

Baton 通过在多个 AI 编程代理之间转交任务,让一个长期编码目标持续运行数天。它支持 Codex 和 Antigravity,Claude 为可选第三方(需自备 API Key、按使用付费);单个代理单轮上限为 50 美元或 5 小时,同一目标累计花费 150 美元后该代理退出。任务仅在验证命令退出码为 0 时才判定完成,代理自称“完成”无效。

Hacker News 最新cahian2026/11/6 · 今天30 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

baton 让一个长期编码目标持续运行数天,方式是在多个编码 agent 之间传递这个目标,并在每个 agent 即将花掉不该花的钱之前把它停下。它单独就能配合 Codex 和 Antigravity 使用;Claude 是可选的第三个 agent,按使用量付费,只有在你为它保存了 API key 之后才会加入队列。它的单轮在达到 50 美元或 5 小时时结束,以先到者为准;在某个目标中花费达到 150 美元后,它会被排除在该目标之外;而月度上限始终高于以上所有限制。

你给它一个目标(一个 objective、一个工作目录和一个验证命令)。它会运行一个 agent,直到该 agent 接近其限制或其轮次(5 小时)结束,然后把工作交给下一个;当所有 agent 都用尽后,它会休眠到最早的重置时间,然后继续。只有当验证命令以 0 退出时,它才会完成;agent 说“done”没有任何意义。

每个 agent 都通过其厂商自己的 CLI 运行。baton 不重新实现任何 agent。上下文通过仓库、其提交和一个 handoff 文件在它们之间传递,而每个厂商自己的对话会在其轮次再次到来时恢复。

在一个目标内部,工作遵循 plan、build 和 review 的循环,每个 provider 使用一个强模型和一个工作模型(见 Phases)。

flowchart LR subgraph queue["队列:一次只运行一个 agent"] direction LR codex["codex"] --> antigravity["antigravity"] --> claude["claude"] claude -. "轮次结束:回到第一个" .-> codex end queue --> cycle subgraph cycle["目标的每一轮循环"] direction LR plan["plan"] --> build["build"] --> review["review"] end review --> check{"检查通过?"} check -- "否:回到 plan" --> plan check -- 是 --> consensus["共识:每个 agent 都批准"] consensus -- "某个 agent 要求修改" --> build consensus -- "全部批准" --> done(["完成"]) Loading baton 的工作方式:Codex、Antigravity,然后是 Claude 轮流;每个目标都运行 plan、build 和 review,然后检查,然后所有 agent 达成共识,只有到这时才算完成。

baton 不自带 AI,也不自带方法。它驱动你安装的工具,并与两个并非它编写的项目协作。它依赖或协作的一切:

baton 使用 code CLI 0.166.0、Claude Code 2.1.318 和 ai-memory 3.4.1 测试过。它依赖的流格式和 hook 选项与版本相关,因此其他版本的行为可能不同。

各部分如何配合。baton 负责轮换、阶段、限制和防护。每个厂商 CLI(Codex、Antigravity、Claude Code)在 baton 选择的模型内,一次一轮地完成实际工作。Superpowers 为每一轮提供方法。ai-memory 为目标提供长期记忆。OpenCode 是这一切前面的聊天窗口。

Superpowers 不是可选项,也没有关闭它的设置。没有它,任何一轮都不会运行:找不到它的目标会等待,但仍保持运行,并每 5 分钟再次查找,因此只需安装它即可。原因在于设计:Superpowers 是每个 provider 的工作方法。Codex、Antigravity 和 Claude 在每一个新对话中都会得到相同的规划、测试驱动构建、验证和评审纪律,无论当时是哪个 agent 持有 baton。按上表安装它;在找到它之前,baton doctor 会失败。baton 只会从官方 Claude Code 插件安装位置或从 ~/.config/baton/superpowers 自动找到它;安装在其他任何位置都需要在 defaults.toml 中设置 [superpowers] dir。

本文会带你完整走一遍,无需事先了解 baton。大约需要 15 分钟。命令假定使用 macOS;在 Linux 上一切都能工作,除了后台服务,因此请使用第 4 步中的说明。

开始之前。准备好 What you need 中的工具:至少 codex 或 agy 之一,并已登录你的计划,外加用于聊天窗口的 OpenCode。Superpowers 会在第 1 步中安装。

git clone https://github.com/cahian/baton.git cd baton uv tool install . git clone https://github.com/obra/superpowers ~/.config/baton/superpowers

最后一行是必需的,这是设计使然:没有 Superpowers,任何一轮都不会运行(见 Superpowers is required)。

mkdir -p ~/.config/baton cp examples/defaults.toml ~/.config/baton/defaults.toml

Claude 是可选的。用任意文本编辑器打开 ~/.config/baton/defaults.toml,并选择以下之一:

如果你只有 codex 或 antigravity 之一,也用同样的方式更改其 enabled。

在 Claude Console 中创建 API key 并复制它。然后运行以下命令,它会将你复制的内容保存到一个只有你能读取的文件中:

touch ~/.config/baton/anthropic.key chmod 600 ~/.config/baton/anthropic.key pbpaste > ~/.config/baton/anthropic.key

不要将 key 粘贴到聊天或项目中。

先检查你的账单。baton 无法查看或更改它。如果 Console 开启了自动充值,或持有你购买的额度,使用该 key 可能会花掉那笔钱。请关闭自动充值。

baton install-service baton doctor

install-service 会让 baton 在后台保持运行,即使重启后也是如此。doctor 的每一行都应显示 ok(包括 Superpowers);没有 Claude key 时,它会显示 claude_api: not configured (optional),这没问题。FAIL 会告诉你需要修复什么;warn 只是提醒。它不会花费任何东西,因此可以随意频繁运行。

在 Linux 上,跳过 install-service,并让 baton serve 在终端中保持运行。

可选:长期记忆。将 ai-memory 二进制文件放到你的 PATH 中,baton 会完成其余工作;没有它,baton 也会像以前一样工作。见 Long-term memory。

baton opencode-config

这会打印一段设置。它放到哪里取决于你是否已经在使用 OpenCode:

还没有 ~/.config/opencode/opencode.json:直接保存它:

mkdir -p ~/.config/opencode baton opencode-config > ~/.config/opencode/opencode.json

你已经有该文件:不要运行上面的命令,它会抹掉你的设置。打开该文件,并将 baton 条目复制到你现有的 provider 部分。

然后告诉 OpenCode 读取更改。如果你跳过这一步,baton 将不会显示出来:

opencode reload

  1. 连接它,一次

第一次尝试时使用一个临时文件夹。agent 对以下文件夹拥有完全访问权限:

(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →