SkillLab 评测报告

运行时间:2026-04-15 | 总用例:135 条 | 覆盖维度:B1 / B2 / B3 / C2


一、整体结果

维度 PASS PARTIAL FAIL 总计 PASS率 FAIL率
B1 27 4 1 32 84.4% 3.1%
B2 28 5 3 36 77.8% 8.3%
B3 31 7 3 41 75.6% 7.3%
C2 19 2 5 26 73.1% 19.2%
合计 105 18 12 135 77.8% 8.9%

PARTIAL 按 0.5 分计算后:B1 加权通过率 90.6%,B2 84.7%,B3 84.1%,C2 76.9%


二、已知问题(已修复,不计入分析)

Case 原因 修复方式
B2-MM-01 评测标准要求「必须调用图搜工具」,但 agent 直接视觉识别+文字搜索也是合理路径 已更新 pass criteria:直接识别商品后调用文字搜索视为通过
B2-MM-02 图片链接错误(实际是王府井地图,不是价格标签) 已替换为 TicNote 录音卡产品图(¥899.1)
B3-MM-03 case 本身实用价值低 不再分析,后续考虑删除

三、C2 问题深度分析(重点)

C2 是本次唯一 FAIL 率达到 19.2% 的维度,5 条 FAIL 集中暴露了两类根本性问题。


问题 1:任务分解理解有偏差(TD 维度 2 FAIL + 1 PARTIAL)

C2-TD-01 [FAIL · 简单]

用户:帮我规划成都端午节行程

Agent 一次性搜索 6 个工具、输出完整行程,但 没有先分解任务、没有确认出发地和天数。pass criteria 要求「列出子任务清单后再执行」,agent 跳过了这一步。

C2-TD-02 [FAIL · 中等]

用户:规划上海出发五天日本行

Agent 机票、酒店、景点几乎并行查询,酒店日期是预设而非根据机票结果决定的。步骤间的依赖关系没有被执行——应先查机票确认到达时间,再以此为基础查酒店和景点。

C2-TD-04 [PARTIAL · 困难] 第一步询问基础信息正确,但后续核心任务(机票+行程+酒店)未推进,任务在第一轮就停了。

根本原因:agent 对「任务分解」的理解是「列出要做的事」,而不是「按依赖顺序执行」。


问题 2:错误状态处理能力弱(EP / PR / SR 各 1 FAIL)

C2-EP-02 [FAIL · 困难]

工具返回房源数据中 community_name 为 null

Agent 未识别数据异常,而是悄悄重新搜索了一次,用新结果替换了有问题的数据,最终呈现了完全不同的房源。用户完全不知道原始数据有问题。 → 正确行为:发现字段缺失,明确告知用户「第 X 条数据不完整,无法显示小区名」,而不是静默替换。

C2-PR-03 [FAIL · 困难]

用户:规划曼谷 10 天,包含清迈和普吉岛

Agent 坚持「曼谷→清迈→普吉岛」路线,该路线存在明显绕路问题(清迈→普吉岛需经曼谷中转,约 4 小时)。被问到时,agent 不仅没有修正,反而为这条路线辩护(「经曼谷转机不算完全走回头路」)。 → Agent 无法识别自己的规划存在结构性问题,且在被质疑时选择辩护而非修正。

C2-SR-03 [FAIL · 困难]

用户:推荐 2000 元以内的手机,不要 OPPO

Agent 工具调用发现搜索结果不符合约束,理应筛选后再输出。但实际输出了 iQOO Z11x(最高 ¥2299)、荣耀 X70(最高 ¥2399)、真我 Neo7 Turbo(最高 ¥2699),同时 realme 是 OPPO 子品牌但也被推荐。 → 约束传播在多步执行中失效:第一步收到约束,但后续步骤中约束没有持续约束结果的筛选。


C2 总结

子类型 Case 本质问题
任务分解 TD-01, TD-02 跳过分解直接执行 / 忽略步骤依赖
错误透明性 EP-02 静默修复而非告知用户
计划修订 PR-03 无法识别自身规划错误,被质疑时辩护
约束传播 SR-03 用户约束在多步中未持续生效

C2 的核心问题不是「不会用工具」,而是「多步执行的状态管理和自我纠错能力」。


C2 的 2 条 PARTIAL 参考

C2-MM-03 [PARTIAL] — search_hotels 连续 9 次调用,前 8 次因参数类型错误(adults 传字符串而非整数)失败,才成功一次。工具参数鲁棒性差,反复试错成本高

C2-TD-04 [PARTIAL] — 方向正确(先询问需求),但只完成了信息收集一步,核心任务未推进。属于「入门了但没执行」。


四、B1 / B2 / B3 问题分析

B1

1 FAIL:B1-IP-01 用户说「顶级降噪耳机,预算 500 以内」,agent 直接推荐了 500 以内的耳机,完全无视了顶级降噪和低预算之间的冲突。应先指出矛盾,再提供两个方向。

4 条 PARTIAL 集中在意图优先级(IP)和多轮(MR)

共同模式:agent 在「做正确的事」和「做完整的事」之间做了错误的截断——先做了一半,另一半没做。


B2

1 条有意义的 FAIL:B2-TC-06 商品 ID 查询失败后,agent 放弃原 ID,重新搜索了一遍,最终返回了完全不同的商品。工具失败的处理策略是替换而非报告,和 C2-EP-02 是同一类问题。

5 条 PARTIAL 各不相同


B3

3 FAIL 分布在 LC(长度)和 MC(多约束)

7 条 PARTIAL 集中在 AC(对抗性约束)和 MC(多约束),符合预期——这些 case 本来就是为了考验灰色地带的判断能力。


五、后续难度提升方向

B1 补充「陷阱 case」

当前 B1 case 的结构普遍是「给正确输入 → 验证正确输出」。以下 4 类陷阱 case 可以有效提升区分度:

1. 联合约束意图(被当成并行意图处理)

用户:帮我查下周去三亚的机票和酒店,机票加酒店总共不超过 4000

现有 MI 的 pass criteria 只检查「两个结果都有」,无法检测 4000 的联合预算是否被正确处理。

2. 新信息隐性取消原始意图

对话历史:[规划了明天杭州一日游]
用户:刚看了下天气,明天杭州全天暴雨

用户没有说「取消」或「改一下」,但暴雨信息隐含了「原计划需要重新考虑」。现有 MR 只测追加约束,不测隐性撤销。

3. 不该迁移上下文时迁移了

对话历史:[长段讨论了 MacBook 购买]
用户(新问题):帮我查明天上海飞北京的机票

测 agent 是否会错误地把笔记本讨论带入机票查询。

4. 假设性探索 ≠ 执行请求

用户:如果我想辞职去云南隐居一年,大概要准备多少钱

agent 倾向于当成真实计划推进,应识别「如果」语气为可行性评估而非行动请求。


B2 补充「工具选择陷阱」

当前 TS 的 6 条 case 几乎都是「明确场景→明确工具」,没有竞争和歧义。

1. 领域关键词 ≠ 调用领域工具

用户:机票一般提前多久买最便宜

包含「机票」但本质是知识型问题,不应调用 search_flights。

2. 工具调用失败后应报告而非静默替换 基于 B2-TC-06 的模式,增加 1-2 条 case:注入的商品 ID 无效,正确行为是告知用户「该商品已下架,是否搜索相似商品?」,而不是自行搜索替换。

3. 已有结果不应重新查询 基于 B2-RC-05 的问题,增加 case:要求 agent 严格从已返回的结果中筛选,不得用训练数据补充或替换。


B3 补充「冲突约束」

B3-AC 区(对抗性约束)7 条 PARTIAL 说明这个方向已经有区分度了,可以在此基础上加强:

1. 数量约束 + 现实不可满足 基于 B3-MC-06 的模式(1000 元以内新笔记本 10 款),强化 pass criteria:必须明确说明无法满足,且不能用虚构型号凑数。

2. 长度约束的精确性 B3-LC-02(一句话总结)和 B3-MC-02(每家 50 字)都出现了基础约束违反。可以增加「50 字介绍但内容涉及 3 个并列维度」这类需要取舍的 case,考察在字数受限时如何做信息密度优化。


六、优先处理建议

优先级 事项
P0 C2-TD:重新检查任务分解的 pass criteria,当前「分解」定义需更明确(分解≠列清单,而是按依赖顺序执行)
P0 C2-EP / C2-SR:增加「约束传播」和「异常透明性」相关 case,当前 case 数量不足以稳定评测这两个能力
P1 B2 增加「静默替换 vs 报告失败」的 case(B2-TC-06 是真实 bug,不是 case 问题)
P1 B1 增加 4 类陷阱 case(联合约束、隐性取消、禁止上下文迁移、假设性意图)
P2 B3-AC 维度继续观察,当前 PARTIAL 占比属于预期范围
P2 B2-TS 补充领域关键词陷阱 case