资讯动态

LifeOS 中的 AgentRace 工作流:在 cmux 竞技场中用多 Agent 并行竞赛定位并修复疑难 Bug

发布时间:2026/9/14 18:48:32 来源:尧图企业网站定制
LifeOS 中的 AgentRace 工作流在 cmux 竞技场中用多 Agent 并行竞赛定位并修复疑难 Bug【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS导读AgentRace 是 LifeOS 的 CMUX 技能包AgentRace.md中定义的一种针尖挑海式needle-in-a-haystack热修复编排模式当一个问题有多种可能的切入思路、但无法预测哪种方案能命中时在一个工作区内并行拉起 N 个 Agent 同时求解同一问题第一个给出正确答案者胜出其余全部关闭。读完本文你将掌握cmux.ts race的完整调用链——从发起竞赛、捕获 surface 引用、轮询判定胜者、读取胜者答案到清理败者——并理解其底层实现原理与适用边界。适用场景什么时候该赛而不是试AgentRace 的适用前提非常明确一个生产环境 Bug任何单个 Agent 都有可能解决但你无法提前预测哪一种问题建模framing能命中。典型信号是刚才我试了思路 A 不行、思路 B 也不行——此时继续串行猜测是在线性支付每一次失败尝试的完整延迟而竞赛模式则让问题的形态自己去选择赢家。一句话概括AgentRace.md 给出的判断标准是——一个生产 Bug任何一个 Agent 都可能解决但无法预测哪种 framing 能奏效。与其串行猜测不如一次扇出 N 个 Agent取第一个正确结果。五步竞赛流程第 1 步发起竞赛Launch the race一个工作区workspace、N 个 surface每个 surface 都执行同一条启动命令、针对同一个问题bun ~/.claude/skills/CMUX/Tools/cmux.ts race \ --feature checkout-500 --agents 4 --cwd ~/Projects/App \ --cmd claude The /checkout endpoint 500s on empty cart. Find and fix it.命令执行后会发生什么见 cmux.ts 中commandRace的实现创建名为race-feature的工作区createWorkspace内部先new-workspace再rename-workspacecmux.ts打开 N 个 surface——首个 surface 复用工作区已有的 surface其余通过new-split right向右切分cmux.ts将每个 surface 重命名为race-1、race-2……race-Nrename-tabcmux.ts在每个 surface 中通过sendsend-key Enter等价于sendToSurface(..., entertrue)启动--cmd并返回全部 surface 引用。参数细节--feature必填同时用于命名工作区--agents必填且必须为正整数源码中agentsValue 1直接报错--cmd可省略——此时使用默认占位命令printf %s\n race agent ready: featuredefaultRaceCommand返回后你再通过send把真正的提示词发进各 surface。第 2 步捕获引用Capture the refsrace的输出是单条 JSON——这就是你的通讯录后续所有 send/read 都要用到{ok:true,workspace:workspace:7, surfaces:[ {tab:race-1,surface:surface:30}, {tab:race-2,surface:surface:31}, {tab:race-3,surface:surface:32}, {tab:race-4,surface:surface:33}]}⚠️ 注意SKILL.md 特别提醒cmux 的引用是位置式的会随开/关操作而漂移workspace:1/surface:2这类索引在增删 surface 后可能变化。对于需要长期持有的引用建议从tree中解析 UUID--id-format uuids。第 3 步轮询判定胜者Poll for a winnermonitor会逐 surface 分类其状态idle / working / done / awaiting-input并在某个 surface 首次进入done的瞬间通过 {{DA_NAME}} 语音播报bun ~/.claude/skills/CMUX/Tools/cmux.ts monitor --workspace workspace:7 --interval 3这里的底层机制值得说明cmux 没有事件订阅/推送接口DESIGN.md 中明确poll, not event所以monitor是一个轮询循环——每个周期对每个 surface 执行surface-healthread-screen尾 40 行再交给classifyScreen做状态分类cmux.ts状态判定依据正则awaiting-input尾部含[y/n]、(y/n)、press enter、confirm、continue?或行尾为?done行首为done/completed/exit code: 0或含 ✓ 完成标记idle尾部是 shell 提示符$%#❯等结尾working以上都不满足输出仍在移动 / 进程仍在运行当状态发生迁移旧状态 ≠ 新状态且新状态为done或awaiting-input时monitor调用notifyVoice()——向 Pulse 发送一条 fire-and-forget 的 POSTcmux.tsPOST http://127.0.0.1:31337/notify { message: cmux surface surface:32 is done, voice_enabled: true }Pulse 的基址定义在 endpoint.ts默认http://127.0.0.1:31337可用环境变量PULSE_URL覆盖。monitor的--interval默认 3 秒是可调旋钮——太紧浪费 CPU 且可能刷屏语音太松则完成通知滞后需要一次性的状态快照检查时用--once单轮分类后退出。第 4 步捕获胜者答案Capture the winning answer读取最先完成的那个 surface 的屏幕内容bun ~/.claude/skills/CMUX/Tools/cmux.ts read --surface surface:32 --lines 80read底层是read-screen --lines N返回{ok:true, text:...}默认 80 行cmux.ts。把text中的 diff 或解释保存下来——这就是胜者the keeper。第 5 步关闭败者Close the losers把机器资源释放掉——把剩余每个 surface 逐个交给close-surface或者在取出胜者后直接关闭整个工作区cmux close-surface --surface surface:30 cmux close-surface --surface surface:31 cmux close-surface --surface surface:33为什么要竞赛而不是重试这是 AgentRace 的核心论点AgentRace.md串行重试在学到任何东西之前就要为每一次失败尝试支付完整延迟。竞赛只支付一次尝试的延迟总量并让问题自身的形状去挑选赢家——faming 与 Bug 契合的那个 Agent 会最先完成。你付出的是算力compute而不是墙钟时间wall-clock。换句话说串行方案的时间成本是各次尝试延迟之和并行竞赛的时间成本约等于最快那条路径的延迟这是本质差异。实战示例生产热修复用户被锁在门外假设登录回归导致所有用户无法登录AgentRace.md 的完整示例# 1. 六个 Agent 同时扑向登录回归每个可以自由选择自己的理论 bun ~/.claude/skills/CMUX/Tools/cmux.ts race \ --feature login-lockout --agents 6 --cwd ~/Projects/App \ --cmd claude Prod: all logins fail with 401 since the last deploy. Root-cause and patch. # 2. 旁观第一个 done 触发语音播报 bun ~/.claude/skills/CMUX/Tools/cmux.ts monitor --workspace workspace:9 --interval 2 # 3. race-4 最先解决——抓取修复方案 bun ~/.claude/skills/CMUX/Tools/cmux.ts read --surface surface:44 --lines 100 # 4. 关闭其余五个合入 race-4 的补丁 bun ~/.claude/skills/CMUX/Tools/cmux.ts flash --workspace workspace:9 # 视觉高亮胜者flash子命令执行trigger-flash --workspace ref用于在工作区上打出视觉注意力脉冲cmux.ts方便你在多工作区间快速定位胜者。运行前提与关键 Gotchas务必先读从 SKILL.md 与 DESIGN.md 可以确认以下硬性前提Mac-onlycmux 是 macOS 图形终端应用com.cmuxterm.app通过 Unix socket 驱动socket 仅在应用运行时存在。Linux/Windows 无此路径该场景回退 tmux。Socket 默认拒绝default-DENY——第一大坑即使应用在运行外部进程连接也会收到Access denied。两条通过路径(a) 在 cmux surface 内部运行编排器继承CMUX_SOCKET_PATH环境变量免密码(b) 在 cmux Settings 中设置 socket 密码并导出为环境变量CMUX_SOCKET_PASSWORD——封装层会自动拼接--password参数buildCmuxCommand。安全提示socket 密码意味着任何持有它的本地进程都能驱动你的整个 Agent 舰队务必刻意设置、绝不可提交到公开文件。send只打字不提交cmux 的send只是把文本放进 surface不会按回车。必须使用--enter或追加一次send-key Enter再用read回读确认命令真正执行——声称正在工作可能是假完成false done-claim。自动拉起若 socket 缺失cmuxExec会先open -a cmux拉起应用再以 750ms 间隔轮询ping至多 15 秒PING_WAIT_MS仍未就绪则报错返回cmux.ts。状态判定是启发式的done依赖完成标记正则在不同 shell / Agent CLI 下可能误判可靠的确认手段是 send → read-back 回环验证这也是monitor状态迁移逻辑的基础。状态与演进边界引用时请注明按照仓库内 SKILL.md 与 DESIGN.md 的如实记录截至 2026-07-07封装层wrapper已完成类型检查与离线验证voice已在线验证但race / boot-team / fleet / monitor 的在线驱动live-driving尚未经过完整的 socket 认证握手验证。验证的最低门槛是一次认证后的ping 一次send/read回环。在证明之前这些子命令应视为分阶段staged能力。与相邻工作流的边界AgentRace 不是孤立流程它与 CMUX 技能包中另外三个工作流互为补充路由表见 SKILL.mdMonitor.md轮询观察机制的完整文档分类规则、/notify语音链路、--once单轮检查。AgentRace 的胜者判定与免打扰旁观都依赖它——文档明确watch 机制详见 Monitor.md。Fleet.md命名的并行团队2x2 网格或跨主机 SSH mini-fleet与同一问题竞赛是两种不同形态——文档注明命名的并行团队非同一问题竞赛详见 Fleet.md。BootTeam.md三层编排orchestrator → lead → worker的团队启动方式使用send/read驱动与race共用同一套 send/read/open-close 底层循环。值得强调的是 CMUX 的设计哲学DESIGN.mdwindow ⊃ workspace ⊃ pane ⊃ surface的四层树形模型之上一切能力的核心都是send打字→ send-key Enter提交→ read回读→ close-surface拆除这个程序化访问循环——AgentRace 不过是把这个循环以同一命令 × N 个 surface的方式组合出来而已。小结AgentRace 把不知道哪种思路能修好的未知转化为让 N 个 Agent 各持一种理论并行竞争的确定性收敛race负责扇出与命名、monitor负责轮询与语音播报胜者、read负责取回胜者答案、close-surface负责回收败者资源。它支付的是算力而非墙钟时间特别适合生产环境突发、思路不明的热修复场景。使用时请始终记得三大前提cmux 仅限 macOS、socket 认证是默认拒绝、send必须配合--enter提交并用read回读验证。【免费下载链接】LifeOS⛰️ The Life Operating System — an intent engineering platform that moves you from your current state to your ideal state, in life and work.项目地址: https://gitcode.com/GitHub_Trending/pe/LifeOS创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价