展示 HN: Foremerge – 捕捉并行编码代理间的意图冲突
摘要
Foremerge是一个开源协调协议,用于AI编码代理,通过基于Git的数据库共享代理计划,在意图冲突导致代码问题之前进行检测。
在GPTree,我们使用并行工作树在单个仓库上运行多个编码代理。除了在PR时审查和修复冲突所浪费的时间外,最伤脑筋的失败是当多个计划或工单导致架构更改,而这些更改不能同时成立时。例如,一个代理正在替换一个类,而另一个代理正在扩展它。Git只会在生成的补丁碰巧触及相同行时注意到,而审查只有在熟悉两个工单时才会捕捉到。<p>Foremerge是一个本地“类似git”的协调层,位于git之上(即不与git和工作树的交互方式互动或改变),在编辑前,每个代理发布一个意图及其将更改的范围,以及计划在每个范围上完成的操作。<p><pre><code> foremerge intent publish --agent "$A" \
--summary "Replace PaymentService with StripePaymentService" \
--scope symbol:PaymentService=replace
foremerge intent publish --agent "$B" \
--summary "Add PayPal support to PaymentService" \
--scope symbol:PaymentService=extend
</code></pre>
第二个代理的发布在编写任何代码之前返回一个HIGH级别的破坏性与增量性发现。代理保持自己的工作树,共享状态是git公共目录中的一个SQLite文件。没有钩子,没有合并驱动程序,没有任何东西重写你的历史。<p>它作为一个Rust二进制文件发布,带有CLI和MCP服务器,具有18个工具,`foremerge setup all`将其集成到Claude Code、Codex和Cursor中。因为该协议没有任何提供商特定的内容,Claude代理和Codex代理通过同一存储进行协调。在任何工作被接受之前,Foremerge会运行一个命名检查,该检查针对更改的确切git状态进行配置。一个声称测试通过的代理会被记录,但如果没有运行检查本身,它不会满足接受门。<p>检测是确定性的,没有裁判模型阅读你的代码。HIGH冲突仅针对声明的操作断言,即从散文中推断的匹配不会高于high。索赔是咨询性租赁,而不是锁,因此两个代理仍然可以持有相同范围而不会死锁。开源版本是单一匹配,因此不是分布式共识。<p>我们已经测试了最多98个并行代理在同一个仓库上工作,零冲突(本来应该是100个,但有2个代理由于资源限制未能运行)<p>我按照发生顺序回放了上周构建中自己代理的76个意图。样本中恰好有1个冲突(已标记),审查发现了一个盲点,其中一个代理通过类名声称范围,另一个通过内部方法声称范围。我们正在为下一个版本修复这个问题。<p>设置是一个30秒的安装,通过将readme.md中的快速入门指令粘贴到你的代理中或手动执行:
`curl -fsSL <a href="https://foremerge.com/install.sh" rel="nofollow">https://foremerge.com/install.sh</a> | sh` 或 `cargo install --locked foremerge`,然后在仓库中执行 `foremerge init && foremerge setup all`。
Apache-2.0.<p>我最想要的反馈是,你实际上希望标记哪些代理计划之间的冲突,以及哪些冲突你会容忍为噪音?<p>仓库在这里:<a href="https://github.com/naw103/foremerge" rel="nofollow">https://github.com/naw103/foremerge</a>
网站:<a href="https://foremerge.com" rel="nofollow">https://foremerge.com</a><p>关于此解决方案解决的问题的更多信息:<a href="https://foremerge.com/blog/" rel="nofollow">https://foremerge.com/blog/</a>
查看缓存全文
缓存时间: 2026/09/21 21:47
Foremerge
相似文章
若无底层 Git,你会如何捕获两个即将执行不兼容变更的智能体?
作者介绍了 Foremerge——一个为并行编码智能体设计的开源协调协议,它能在变更发生前检测冲突,并探讨了该协议在非代码领域的应用可能性,同时寻求实际案例。
Show HN: 为并行Claude Code代理设计的本地合并队列
Claude Code Merge Queue 是一个本地、零成本的合并队列,可将并行Claude Code代理的落地操作序列化,以避免推送冲突和构建冲突。它提供了用于管理并行代理工作流的CLI工具和配置。
我两个代理的 git 工作树的干净合并,但它自身的测试失败了
作者描述了一个实验,其中合并两个 AI 代理的 git 工作树导致了测试失败,尽管合并是干净的,突显了在没有相互意识的情况下并行代理开发的挑战。
@alex_prompter: 两个AI代理同时编辑同一代码库会互相破坏对方的工作,除非你给它们这个指令。同时运行两个代理…
一个实用的技巧:在同一个代码库上运行多个AI代理时,使用共享的 notes.md 文件进行协调,以避免冲突。
Show HN:面向AI代理的Git
re_gent 是一个开源的版本控制系统,专为AI代理活动设计,记录每一次工具调用及其相关提示,使开发者能够审查和回滚代理的变更。