Signal or Noise? A Benchmark Study of Agent Skills in Web Development
Ziyue Yang, Fan Ding
cs.CL
2026-08-24
百度 NLP 把 31 个公开 WebDev Skill 打进 50 个项目、1000 道有序任务。匹配注入后四模型 Pass@2 平均跌 1.3 到 4.2 点,token 开销增加 72% 到 394%,真正赚钱的组合只有 17% 到 36%。
Agent Skill 是一段可复用的操作说明书:一份 SKILL.md,外加可选的脚本、参考文档和示例,在一次编码 agent 会话里反复注入,用来把框架惯例、反模式和工具用法钉进模型行为。市面上已经有成千上万份公开 Skill,很多产品默认在会话开头就挂上。
注入会拉长每一次请求的 prompt。现有基准各说各话:SkillsBench 在跨域任务上报告 +16.2 个百分点,SWE-Skills-Bench 则发现 49 个 Skill 里有 39 个对 pass rate 零提升。Web 开发基准(Web-Bench、ArtifactsBench)测的是生成能力,根本不改 Skill 条件。缺的是一件事:在真实 Web 任务上,一份已经匹配技术栈的 Skill,该不该被注入。
百度 NLP 搭了 WebDev-Skills-Bench。任务面用 ByteDance 的 Web-Bench:50 个项目、11 类技术栈(React/Vue/Angular/Svelte、Express/Fastify、ORM、CSS、Canvas/SVG/Three.js、打包器和 DOM 应用),每个项目 20 道前后依赖的有序任务,共 1000 道,用 Playwright 确定性测试打分,不用 LLM-as-judge。Skill 面是 31 份第三方公开内容,来自 Anthropic 文档、Vercel Labs、Addy Osmani 等可见仓库,论文作者一份都没写。SKILL.md 长度大约 1.2K 到 22K 字符,这是唯一进 prompt 的文本。
两名有职业 Web 经验的标注员独立给 1550 个(Skill, 项目)对打标:core 表示声明的框架或领域直接覆盖项目主栈,skip 表示没有实质重叠。每对大约 5 分钟,两人合计约 258 人时。原始一致率 96.5%,Cohen's κ 约 0.74,争议 55 对协商后一律偏 skip。最后留下 117 个 core 对,覆盖全部 50 个项目。
对照只改 prompt 里的 SKILL.md,工作区、harness、任务顺序、解码设置、Playwright 套件全锁死。四个条件:
辅助文件不进 prompt,只挂到工作区 .skills/<id>/ 目录。多文件 Skill 也能做等长对照,prompt 长度只由 SKILL.md 决定。模型面板是 Claude Sonnet 4、GPT-5.1、DeepSeek-V4-flash、Qwen3-Coder-30B-A3B,覆盖闭源前沿和开权、通用和代码特化。解码 greedy、temperature=0、64k maxTokens,每个(模型, 条件, 对)单元格 3 个独立种子,跑之前用 git clean -fdx 重置工作区。
四个模型的平均 ΔPass@2 全是负的。
| 模型 | ΔPass@2 | ΔPass@1 | 完成深度 | Win/Tie/Loss | token 增幅 |
| Claude Sonnet 4 | −4.2 pp | −2.8 pp | −0.85 | 30/9/61 | +72% |
| GPT-5.1 | −1.3 pp | −1.6 pp | −0.26 | 35/20/45 | +74% |
| Qwen3-Coder-30B | −2.3 pp | −3.2 pp | −0.47 | 17/35/48 | +91% |
| DeepSeek-V4-flash | −2.0 pp | −4.1 pp | −0.40 | 36/16/48 | +394% |
三个模型的 Pass@2 置信区间不含零。GPT-5.1 的 Pass@2 区间擦边含零,Pass@1 不含。任务完成深度(TCD)是 20 道链上最长连续 Pass@2 前缀,四个模型同步下降,所以这不是通过率口径制造出来的假象。DeepSeek 的 +394% 被早期 C0 失败缩小了分母,数字夸张,方向和其他模型一样:更贵、链条更浅。负均值旁边仍有正尾:赢家比例 17% 到 36%,Qwen 最差,DeepSeek 最高。
损失集中在简单的早期任务。easy 桶四个模型的置信区间都不含零:GPT-5.1 −4.0 pp,Sonnet −5.3,DeepSeek −7.3,Qwen −10.7。moderate 和 challenging 噪声大,单元格少,有天花板和地板;Qwen 这两个桶不足 5 个单元格直接没报;DeepSeek 在 moderate 上 +11.7 pp。自然假设是「难了才需要说明书」,数据指向相反方向:模型已经会做的题,注入最伤。
机制被叫作 retry lock-in。Web-Bench 给两次尝试,第一次按钮文案、类名、嵌套写错,第二次换个字就能过。Skill 把这些选择钉死,可挽回的失败变成断链。附录里 Sonnet 跑 zustand 项目、注入 react-expert:C0 的 Pass@2 是 55%,C1 掉到 40%,卡在 task-4。标题和提交按钮都叫「Create Blog」,Playwright 严格模式命中两个元素。C0 重试把按钮改成 Submit,过了,链条走到 task-11;C1 按 Skill 的命名惯例改成 Create Blog Post,子串仍然撞标题,链条在 task-4 断掉。
等长对照把平均损失拆成两种机制。Sonnet 和 Qwen 是长度分心:Sonnet 的 ΔLength = −3.3 pp、ΔContent = −0.9 pp,内容项置信区间含零;Qwen 的 ΔLength = −3.5、ΔContent = +1.2。一份同样长的无关 Skill 就能复现大部分损失,更接近注意力被一块 Skill 体积的文本稀释。GPT-5.1 和 DeepSeek 是内容带偏:长度项接近零(−0.2 和 −0.6),内容项为负(−1.1 和 −1.4)。变长本身几乎无害,匹配内容把模型带歪了。即便平均被长度拖着走,C1 赢家里多数过了长度对照:Qwen 95%、GPT-5.1 71%、DeepSeek 64%、Sonnet 60%。模型级倾向不能给单对盖章。
跨模型几乎不相关。117 对上 Pearson 在 −0.08 到 +0.12 之间,Spearman |ρs| ≤ 0.16。74% 的对至少一个模型为正、一个为负;四模型全赢只有 1%,全输 4%。极端例子是 lowdb 配 database-optimizer:Sonnet 从 33% 升到 67%(+33 pp),DeepSeek 从 42% 掉到 20%(−22),Qwen 从 22% 掉到 0%(−22),GPT-5.1 从 22% 到 20%。同一份内容,跨度 55 个点。基线难度解释不了:DeepSeek 的 C0 最强,掉得也最狠。
C3 只在 5 个跨模型稳定赚钱的对上做,完整 Skill 在这里 +5.1 pp,跟面板平均符号相反,讲的是有用的 Skill 哪一块在干活,不是 Skill 平均有没有用。反模式是唯一在任务级方向可靠的切片(McNemar 不一致数 111 vs 74,p=0.008),正向规则平均 0.0 pp,示例代码平均 −0.7 pp。拿掉示例平均省 34482 个输入 token,约占 SKILL.md 预算的 22.7%。便宜的「不要这样写」是性价比最高的信号。去掉 Sonnet 之后,示例翻成最强正项(+4.2 pp,Wilcoxon p=0.005):DeepSeek +8.3、Qwen +3.7、GPT-5.1 +0.7,Sonnet −15.3。最强模型身上,示例像一副枷锁,压住它更好的先验。
给做 agent 产品的人一条冷结论:会话开头无条件挂 Skill,在这个基准上是亏的。平均掉点,token 贵 72% 到 394%,赢家是少数。Skill 不是便携资产,是关于(Skill, 项目, 模型)三元组的假说。市集按 star 排一份总榜,换一个后端可能正好符号反了。在 Sonnet 上验证过再塞给更便宜的模型,也不安全。
可执行的启发式有三条。当 opt-in,不要当默认。按任务链位置而不是只按技术栈:早期简单任务先别注,错误率起来再注。评测最低标准要有等长无关对照,否则会把长度分心和内容带偏混成同一个「Skill 没用」。
写 Skill 的人该把反模式写短、写硬,别默认堆代码块。示例对弱模型有用,对 Sonnet 这类强模型是负的,还最贵。有帮助的少数里,真正值得留下的是禁令,不是示范。
三个 Sonnet 种子上,C0 和 C1 的总体 Pass@2 分别晃 4.4 和 3.6 个点,跟头条效应量一个量级。模型级均值靠 N=3 稳住,单对估计要打折读。C2 在 117 对上只用了 109 次独立等长 run,同项目共享过 prompt,聚类自助和完全去重还没做。路由故意保守,只评 core,错配部署会怎样不知道。Skill 全来自高可见公开仓库,企业内部流水线或经过 router 微调的可能另一副样子。这是预部署审计,不是线上 A/B,没有真实用户流量、人工介入和产品级验收标准。指标是 Playwright 功能正确性和 token 开销,可读性、无障碍、视觉完成度、评审时间都不在账上。
C3 只切了 5 个已经赚钱的对,不能外推到平均 Skill。easy 桶损失清楚,后段任务单元格少,「难任务上 Skill 有用」目前证据不够。Web-Bench 的两次尝试预算直接参与了 retry lock-in 故事;换成单次尝试或更松的定位器,机制强度可能变。公开仓库的 Skill 质量参差,这篇测的是「现在市面上能下到的说明书」,不是「一份精心写过的内部 Skill 上限」。