A/B 测试揭示 AI Agent 工具瓶颈:选择可靠性才是关键
一篇工程博客通过对照实验发现,将工程规范拆分为领域专属技能并未提升 Claude Code Agent 质量,真实瓶颈在…
一位基于 Claude Code 构建内部工程规范市场的开发者,通过对照实验回答了一个看似无法靠直觉解决的问题:随着规范覆盖的领域越来越多,应该把所有规范放进一个统一技能,还是拆成多个领域专属技能?实验给出的简短结论是——拆分并未提升质量,真正的瓶颈是技能选择可靠性,而非上下文容量。
为什么 Agent 工具尤其需要 A/B 测试
AI Agent 本身具有非确定性:相同的代码、相同的任务,连续运行两次也可能因模型采样差异而得到不同结果。这一性质使得围绕 Agent 的工具迭代极易被"轶事式证据"误导——对提示词、插件技能或插件市场的某处改动看起来"在 diff 里很对",跑了一两次效果不错,便合并上线。
问题在于,每一次额外的运行都需要手动触发且耗时数分钟,"跑了一两次"往往就是检查的终点。文章指出,对普通代码来说这种证据标准无法通过评审,但对 Agent 工具却常常过关。Agent 工具理应承受同等甚至更高的怀疑态度——正因为非确定性,单次成功运行的信号极弱。
核心假设:拆分还是统一
该团队的工程规范通过 Claude Code 的插件技能注入到编码会话中。随着规范覆盖样式、测试、可观测性、依赖、治理等越来越多的领域,团队遇到了一个真正的设计分叉:
- 保留一个覆盖全部领域的统一技能;
- 拆分为多个聚焦的、领域专属的技能。
两种方案都有看似合理的论据。"拆分"看起来更整洁:每个技能覆盖面更小,Agent 加载的无关上下文更少,市场也可以按领域逐步扩展。但它同时把更难的判断任务推给了 Agent:不再只是识别"永远适用"的那一个技能,而是要在多个听起来相似的技能中做出选择。
文章将这一分歧转化为可证伪的假设:「通过领域专属技能路由规范,至少能与单一统一技能一样可靠地选中正确的指导。」假设若成立,市场可按领域扩展;若不成立,则能在发布前定位真正的瓶颈。
实验设计要点
整个对照实验严格遵循科学方法,作者定义了四个核心概念:
- 变体(variant):被测试的完整配置,即 Agent 会话启动时的工作区设置。
- 种子(seed):任务提示词,一份简短的 Markdown 文件,描述工程师可能交给 Agent 完成的工作。
- 试验(trial):一次 Agent 会话,在某一种子与某一变体下执行,构成一个数据点。
- 实验(experiment):所有种子在每个变体下各运行 N 次的集合。
两个变体都以 Claude Code 插件形式承载规范,并共享完全相同的激活基础设施:一个在每次用户提示时触发的钩子(hook),指示 Agent 在执行任何操作前先查阅规范。文章特别说明,这一选择遵循 Anthropic 官方建议——钩子适合"每次都必须发生、零例外"的场景,因其具有确定性。在实验语境下,这种确定性意味着规范查阅每次必然触发,且激活机制在所有会话中完全一致,从而在对比中相互抵消。最终唯一保留的变量,就是钩子指令所指向的技能拓扑——一个统一技能,还是多个领域专属技能。
核心发现:瓶颈在选择,不在容量
实验得出的关键结论如下:
- 将规范拆分为领域专属技能并未提升质量;当正确技能被成功加载时,两种设计表现持平。
- 拆分引入了一个此前未被注意的静默失败模式:在少数试验中,Agent 完全没有选择任何技能,直接在完全没有任何规范约束的情况下工作。
- 真正制约表现的瓶颈是选择可靠性,而非上下文大小。
文章强调,这一结论只能在反复试验中浮现——单次成功运行既无法证明拆分有效,也无法暴露选择失败。它借此质疑了仅凭直觉或个别案例就推进 Agent 工具改动的做法,并主张 Agent 工具的设计决策同样需要可证伪的假设、对照试验与反复验证,而不是一次次"看起来不错"的手动运行。
