尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Superpowers 并行代理分发与条件等待:让 3 个代理同时干活,告别 sleep(50)

Superpowers 并行代理分发与条件等待:让 3 个代理同时干活,告别 sleep(50) Superpowers 并行代理分发与条件等待让 3 个代理同时干活告别 sleep(50)【免费下载链接】superpowersAn agentic skills framework software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowersSuperpowers 的并行代理分发和条件等待是 Claude Code 里的两个高级功能前者让多个 AI 代理同时排查相互独立的故障后者用 waitFor 替代 setTimeout(50) 这类猜时序写法消除 flaky 测试。本文跟一次真实调试会话走一遍完整流程。 一次真实故障排查下午两点你刚做完一次大重构按下测试按钮屏幕一片红6 个失败。扫一眼分布——agent-tool-abort.test.ts 挂了 3 个batch-completion-behavior.test.ts 挂了 2 个tool-approval-race-conditions.test.ts 挂了 1 个。失败原因还各不相同时序问题、工具压根没执行、执行计数卡在 0。你要是从第一个开始挨个查接下来两小时基本就搭进去了。有没有更聪明的办法 并行分发——别排队了想象餐厅后厨三位客人都点好了菜主厨不会让一个厨子从头做到尾而是把凉菜、热菜、甜品台分别交给不同厨师同时开火。Superpowers 的并行代理分发就是这个思路把独立的故障拆成独立的问题域每个代理领一份各自跑各自的排查线互不阻塞最后由你统一收口。识别按文件、按子系统给故障分组确认彼此不共享状态分派每个代理只领一个测试文件目标明确约束是不许动其他代码并发在同一条回复里发出全部派遣代理们同时开工整合逐个读总结确认改动不打架跑全量测试收口判断标准一句话3 个以上相互独立的故障才值得开并行如果修一个故障可能牵动另一个或者代理要改同一个文件就别拆拆了只会互相打架。这个技能的完整用法在 skills/dispatching-parallel-agents/ 里。⏱️ 条件等待——别猜了等就完了新手最容易犯的错是在测试里写一句 setTimeout(50)——猜 50 毫秒够异步操作跑完。为什么这在 CI 上必挂因为 CI 机器往往更慢、还挂着并行任务本地 50ms 刚好够在那边可能连调度都没排上。猜时间本质上是希望它好了条件等待则是确认它好了——waitFor 反复检查你真正关心的那个条件满足就立刻返回真没等到才超时报错。场景等什么等事件事件列表里出现了一条完成类型的事件等状态状态机的状态字段变成了就绪等计数结果列表的长度涨到了 5 个以上组合条件就绪标志位起来了而且数值跨过了阈值这套模式在 skills/systematic-debugging/condition-based-waiting.md 里有完整说明包括什么时候才该老老实实用固定超时。 实战走一遍回到那个下午把时间线拉出来14:02 —— 你看完 6 个失败的报错做了判断abort 那组考的是中断逻辑batch 那组考的是批量完成行为race 那组考的是审批流三块代码互不共享状态可以拆。14:05 —— 你在同一条回复里发出口令代理 1 只管 agent-tool-abort.test.ts代理 2 只管 batch-completion-behavior.test.ts代理 3 只管 tool-approval-race-conditions.test.ts每人领的约束都是只修测试别碰生产代码。14:11 —— 三个代理全部回传。代理 1 在 agent-tool-abort.test.ts 里揪出几处睡 50 毫秒就去取结果的写法——替换前测试是干等 50ms 然后假定中断状态一定就绪了替换后改成了await waitFor(() getResult() ! undefined)变成等中断结果真的出现才继续。代理 2 修了个字段放错位置的结构 bug代理 3 补了一处漏掉的异步等待。全量测试绿了。️ 参数怎么调轮询间隔— 默认 10ms — 1ms 太频繁白烧 CPU100ms 又让测试变肉10ms 是平衡点超时— 默认 5000ms — CI 慢机器上调到 10000 防误报本机快环境 3000 就够错误信息— 默认模板 — 换成我在等什么状态超时一眼定位条件函数— 无默认你提供 — 循环里取新数据别在循环前把状态缓存下来 效果到底怎么样不讲虚的直接看数字。这些测试把时序猜测全部换成条件等待之后flaky 测试通过率60% → 100%执行时间提速约 40%修复覆盖3 个文件15 个 flaky test竞态条件清掉之后重跑不再翻车。以上数据来自 2025-10-03 的一次真实调试会话。 你适合怎么入手如果你的测试一直 flaky先从条件等待下手改动小、见效快如果你经常一次面对多模块故障试试并行代理分发把活拆出去如果代码里还在写 sleep(50)从今天起换成 waitFor——少睡一觉就少一个解释不了的失败。工具都齐了下次测试再红别慌先看看是不是该等了。【免费下载链接】superpowersAn agentic skills framework software development methodology that works.项目地址: https://gitcode.com/GitHub_Trending/su/superpowers创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表