技术实践

百度LLM Arena用Git工作区支持多仓并行开发

应用与实践智能体系统AI 基础设施Agent 协作Agent HarnessSandbox编程

概述

百度LLM Arena团队在已用 Git Submodule 管理 versus-server、versus-fe 等多仓库的 LLM Arena 平台上,把此前单仓库的 Git worktree 方案扩展到多仓库场景:父仓库 worktree 创建后子模块目录仍为空,需在每个 worktree 内执行 submodule sync/update 完成初始化,团队编写 wt.sh 把 worktree 创建、子模块初始化、端口分配(后端 9000+N / 前端 4000+N)与环境配置固化为确定性流程,端口与代理只在 worktree 内本地改动并用 assume-unchanged 避免污染入库代码,提交复用 scripts/commit.sh 走百度 iCode Gerrit 评审流程。 为解决多 Agent 并行时的 REQ-ID 冲突(两个 Session 同时读到最新需求目录 REQ-30、都把下一个编号算成 REQ-31),团队让 REQ-ID 参与分支命名,把创建 feat/<REQ-ID> 分支作为编号预占操作,借助 Git 已禁止同名分支重复创建与同一本地分支被多个 worktree 检出的约束实现互斥,并在主仓库 .wt 目录记录已分配 ID。 实测启动两个 Session 后两个 Agent 分别获得 REQ-42 与 REQ-43,成功创建各自 worktree 与需求分支、未发生冲突。团队进一步新增 worktree-manager Sub-Agent 作为流水线第 0 步(对 wt.sh 的 Agent 化封装:Agent 理解意图与编排、脚本执行确定性操作),并把原本写在 versus/CLAUDE.md 的 7 个 Sub-Agent 编排规则迁移为 /teamwork-preview Skill(受 Google Antigravity Agent Teams 演示启发),用一条稳定指令启动完整协作流程。 原本串行处理的分类管理分页、模型效果页卡片对齐等需求升级为相互隔离的 worktree 并行推进。