B2 · Tool Use · 测试用例
对应框架维度:B2 Tool Use 状态:初稿 最后更新:2026-04-07
工具说明
当前 agent 接入 49 个工具,分为以下类别:
Built-in (12个)
- 文件操作: read_file, write_file, edit_file, share_file, download_file
- 系统: execute_shell_command, get_current_time, get_location
- Web: web_search, web_fetch, search_media
- 部署: deploy_page
垂直领域工具 (37个)
- 贝壳找房 (4个): 二手房搜索、房源详情、小区查询
- 电商 (4个): 淘宝/天猫商品搜索、详情、评论、店铺浏览
- 地图导航 (12个):
- 中国大陆用高德 (maps_*): 天气、POI 搜索、地理编码、导航
- 海外用 Google Maps (_google_maps): 地点搜索、详情、路线规划
- 旅行 (6个): 机票搜索、TripAdvisor 景点/餐厅、酒店搜索
- 社交媒体 (11个): 微博热搜/搜索/评论、知乎问答搜索/详情
关键特性
- 地域互斥:中国大陆必须用高德(maps_*),海外必须用 Google Maps,混用会失败
- 依赖链:部分工具需要先查询 ID 再使用(如 beike_lookup_city_id → beike_search_resale_housing)
- 搜索→详情模式:社交媒体工具需要先搜索拿 ID,再查详情/评论
用例规范
每条用例包含以下字段:
| 字段 | 说明 |
|---|---|
| ID | 格式:B2-{维度缩写}-{序号} |
| 维度 | 所属评测维度 |
| 难度 | 简单 / 中等 / 困难 |
| 输入 | 用户消息 + 上下文 |
| 期望行为 | agent 应该调用哪些工具、参数是什么、执行顺序如何 |
| 判定标准 | Pass / Fail 的明确条件 |
| 评分方式 | 自动 / LLM-judge |
| Skill 配置 | Group A (无 skill) / Group B (有 skill,列出相关 skill) |
一、工具选择准确率(TS: Tool Selection)
是否选了正确的工具(可能有多个合理选项)。
B2-TS-01 · 单一工具明确场景
- 难度:简单
- 输入:
- 用户消息:
查一下明天北京飞成都的机票,一个人 - 上下文:当前日期为 2026-04-07
- 用户消息:
- 期望行为:
- 调用
search_flights - 参数:出发地(北京)、目的地(成都)、日期(明天,即当前日期+1天)、人数(1)
- 不应调用 web_search 或其他工具
- 调用
- 判定标准:
- Pass:调用了
search_flights且参数正确 - Fail:调用了 web_search / 未调用任何工具 / 参数缺失
- Pass:调用了
- 评分方式:自动(检查工具名称和参数)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [flight_booking_skill]
- Group A:
B2-TS-02 · 专用工具优于通用工具
- 难度:简单
- 输入:
- 用户消息:
北京明天天气怎么样 - 上下文:无
- 用户消息:
- 期望行为:
- 调用
maps_weather(专用天气查询工具) - 参数:city(北京)
- 不应调用 web_search(虽然也能查到,但专用工具更准确)
- 调用
- 判定标准:
- Pass:调用了
maps_weather - Fail:调用了 web_search 而非专用工具
- Pass:调用了
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [weather_query_skill]
- Group A:
B2-TS-03 · 地域工具选择(国内)
- 难度:中等
- 输入:
- 用户消息:
帮我查一下从北京南站到首都机场怎么走 - 上下文:无
- 用户消息:
- 期望行为:
- 识别出这是中国大陆境内的导航需求
- 调用
maps_direction_transit_integrated_by_address(高德地图公共交通路线) - 不应调用 Google Maps 相关工具(在中国不可用)
- 判定标准:
- Pass:调用了高德地图的导航工具(maps_direction_*)
- Fail:调用了 Google Maps 工具 / 调用了 web_search
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [navigation_skill]
- Group A:
B2-TS-04 · 地域工具选择(海外)
- 难度:中等
- 输入:
- 用户消息:
从东京站到浅草寺怎么走 - 上下文:无
- 用户消息:
- 期望行为:
- 识别出这是日本境内的导航需求(海外)
- 调用
compute_google_maps_routes - 不应调用高德地图工具(在海外不可用)
- 判定标准:
- Pass:调用了 Google Maps 路线规划工具
- Fail:调用了高德地图工具 / 调用了 web_search
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [navigation_skill]
- Group A:
B2-TS-05 · 多工具可选,需选最佳
- 难度:困难
- 输入:
- 用户消息:
想买个 iPhone 16,帮我看看淘宝上哪家店性价比高 - 上下文:无
- 用户消息:
- 期望行为:
- 主要工具:
taobao_search_products搜索 iPhone 16 - 次要工具:可能需要
taobao_get_product_reviews查看评论 - 不应调用 web_search(淘宝专用工具更精准)
- 不应调用微博/知乎搜索(用户明确说了淘宝)
- 主要工具:
- 判定标准:
- Pass:调用了
taobao_search_products且未调用无关工具 - Fail:调用了 web_search 作为主要工具 / 调用了无关的社交媒体平台
- Pass:调用了
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [shopping_assistant_skill]
- Group A:
B2-TS-06 · 错误工具选择(负面 case)
- 难度:中等
- 输入:
- 用户消息:
帮我查一下北京朝阳区二手房,100 平左右,预算 500 万 - 上下文:无
- 用户消息:
- 期望行为:
- 应该调用 beike 系列工具(
beike_lookup_city_id+beike_search_resale_housing) - 不应调用 web_search(专用房产工具有结构化数据)
- 不应调用 maps_text_search(那是查 POI 的,不是查房源)
- 应该调用 beike 系列工具(
- 判定标准:
- Pass:调用了 beike 相关工具
- Fail:调用了 web_search 或 maps 相关工具
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [house_hunting_skill]
- Group A:
二、参数构造准确率(PC: Parameter Construction)
参数是否完整、类型正确、值合理。
B2-PC-01 · 必填参数完整性
- 难度:简单
- 输入:
- 用户消息:
搜一下 AirPods Pro 2 - 上下文:无
- 用户消息:
- 期望行为:
- 调用
taobao_search_products - 参数:
keyword: "AirPods Pro 2" - 其他可选参数(排序、价格区间)可以不填
- 调用
- 判定标准:
- Pass:调用了工具且 keyword 参数正确
- Fail:缺少 keyword 参数 / keyword 为空
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [shopping_assistant_skill]
- Group A:
B2-PC-02 · 时间参数推断
- 难度:中等
- 输入:
- 用户消息:
查下周五北京到上海的机票 - 上下文:当前日期为 2026-04-07(周一)
- 用户消息:
- 期望行为:
- 调用
search_flights - 参数中的日期应该是下周五对应的日期(由当前上下文日期推算)
- 不应询问用户具体日期
- 调用
- 判定标准:
- Pass:日期参数为当前上下文日期起下周五对应的日期
- Fail:日期错误 / 缺少日期参数 / 反问用户日期
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [flight_booking_skill]
- Group A:
B2-PC-03 · 参数类型转换(城市名→ID)
- 难度:困难
- 输入:
- 用户消息:
北京朝阳区有哪些二手房 - 上下文:无
- 用户消息:
- 期望行为:
- 第一步:调用
beike_lookup_city_id,参数city_name: "北京" - 第二步:调用
beike_search_resale_housing,参数city_id: <从第一步获得>,district: "朝阳区" - 不应直接用 "北京" 作为 city_id 调用搜索(类型错误)
- 第一步:调用
- 判定标准:
- Pass:正确执行了两步调用,city_id 来自 lookup 结果
- Fail:跳过 lookup 直接搜索 / city_id 参数错误
- 评分方式:自动(检查调用链)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [house_hunting_skill]
- Group A:
B2-PC-04 · 枚举参数选择
- 难度:中等
- 输入:
- 用户消息:
搜一下淘宝上的机械键盘,按销量排序 - 上下文:无
- 用户消息:
- 期望行为:
- 调用
taobao_search_products - 参数:
keyword: "机械键盘",sort: "sale"或类似的销量排序枚举值 - 不应使用错误的 sort 值(如 "sales_count" 如果 API 不支持)
- 调用
- 判定标准:
- Pass:keyword 正确且 sort 参数符合 API 规范
- Fail:缺少 sort 参数 / sort 值错误
- 评分方式:自动(检查参数值是否在允许枚举范围内)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [shopping_assistant_skill]
- Group A:
B2-PC-05 · 可选参数合理性
- 难度:中等
- 输入:
- 用户消息:
搜一下三居室的二手房,朝阳区,预算 600 万左右 - 上下文:已知 city_id 为 110000(北京)
- 用户消息:
- 期望行为:
- 调用
beike_search_resale_housing - 必填参数:
city_id: 110000,district: "朝阳区" - 可选参数应合理填写:
room_num: 3,price_min: 500,price_max: 700("600 万左右"理解为 500-700 万区间合理) - 不应忽略明确提到的筛选条件
- 调用
- 判定标准:
- Pass:包含了户型(3 居)和价格区间参数,区间合理
- Fail:遗漏了户型或价格筛选 / 价格区间不合理(如 600-600)
- 评分方式:自动 + LLM-judge(判断价格区间是否合理)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [house_hunting_skill]
- Group A:
B2-PC-06 · 参数推断错误(负面 case)
- 难度:困难
- 输入:
- 用户消息:
查一下去曼谷的机票 - 上下文:无
- 用户消息:
- 期望行为:
- 缺少关键参数:出发地、日期
- 不应自行假设出发地(如默认北京)或日期(如默认明天)
- 应该询问用户补充信息
- 判定标准:
- Pass:未调用 search_flights / 询问了出发地和日期
- Fail:自行假设参数调用了工具
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [flight_booking_skill]
- Group A:
B2-PC-07 · 多轮参数累积
- 难度:中等
- 输入:
- 对话历史:
用户:帮我查机票 Agent:好的,请问您的出发地、目的地和出发日期是? 用户:上海到东京 Agent:好的,请问什么时候出发? 用户:下周五 - 用户消息:(即「下周五」)
- 上下文:当前日期为 2026-04-07(周一)
- 对话历史:
- 期望行为:
- 此时已收集到:出发地(上海)、目的地(东京)、日期(下周五对应的日期)
- 应立即调用
search_flights,参数包含三轮累积的信息 - 不应再追问其他信息(如人数可默认为 1)
- 判定标准:
- Pass:调用了
search_flights,三个参数都正确(上海、东京、下周五对应的日期) - Fail:遗漏了之前轮次的参数 / 继续追问已有信息
- Pass:调用了
- 评分方式:自动(检查工具调用和参数)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [flight_booking_skill]
- Group A:
B2-PC-08 · 多轮参数修正
- 难度:中等
- 输入:
- messages 注入(执行用):
[ {"role": "user", "content": "查一下北京到成都的机票,5 月 1 号"}, {"role": "assistant", "content": [ {"type": "text", "text": "好的,为您查询 5 月 1 日北京到成都的机票。"}, {"type": "tool_use", "id": "toolu_pc08_01", "name": "search_flights", "input": {"origin": "北京", "destination": "成都", "date": "2026-05-01", "passengers": 1}} ]}, {"role": "user", "content": [ {"type": "tool_result", "tool_use_id": "toolu_pc08_01", "content": "{\"total\": 3, \"flights\": [{\"flight_no\": \"CA4101\", \"airline\": \"中国国际航空\", \"departure_airport\": \"北京首都\", \"arrival_airport\": \"成都天府\", \"departure_time\": \"07:30\", \"arrival_time\": \"10:10\", \"price_cny\": 680}, {\"flight_no\": \"MU5455\", \"airline\": \"中国东方航空\", \"departure_airport\": \"北京首都\", \"arrival_airport\": \"成都双流\", \"departure_time\": \"10:00\", \"arrival_time\": \"12:40\", \"price_cny\": 620}, {\"flight_no\": \"3U8523\", \"airline\": \"四川航空\", \"departure_airport\": \"北京首都\", \"arrival_airport\": \"成都天府\", \"departure_time\": \"14:30\", \"arrival_time\": \"17:05\", \"price_cny\": 550}]}"} ]}, {"role": "assistant", "content": "查询结果如下:\n- CA4101:北京首都 → 成都天府,07:30 → 10:10,价格 ¥680,中国国际航空\n- MU5455:北京首都 → 成都双流,10:00 → 12:40,价格 ¥620,中国东方航空\n- 3U8523:北京首都 → 成都天府,14:30 → 17:05,价格 ¥550,四川航空\n\n请问您要预订哪个航班?"}, {"role": "user", "content": "不对,我说的是 5 月 10 号"} ]
- messages 注入(执行用):
- 期望行为:
- 识别出用户在修正日期参数
- 使用新日期(5 月 10 号)重新调用
search_flights - 保留其他参数(北京、成都)
- 判定标准:
- Pass:重新调用了
search_flights,日期改为 5 月 10 号,出发地目的地不变 - Fail:没有重新调用 / 日期仍是 5 月 1 号 / 出发地目的地也被修改了
- Pass:重新调用了
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [flight_booking_skill]
- Group A:
三、工具链编排(TC: Tool Chaining)
多工具有先后依赖时,顺序和条件是否正确。
B2-TC-01 · 两步依赖(查询 ID → 使用 ID)
- 难度:中等
- 输入:
- 用户消息:
上海有哪些好的二手房小区 - 上下文:无
- 用户消息:
- 期望行为:
- 第一步:
beike_lookup_city_id, 参数city_name: "上海",获得 city_id - 第二步:
beike_search_communities, 参数city_id: <第一步结果> - 顺序不可颠倒
- 第一步:
- 判定标准:
- Pass:两步顺序正确,第二步使用了第一步的输出
- Fail:顺序错误 / 跳过第一步 / 第二步未使用第一步的 city_id
- 评分方式:自动(检查调用 trace)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [house_hunting_skill]
- Group A:
B2-TC-02 · 搜索 → 详情链
- 难度:中等
- 输入:
- 用户消息:
索尼 WH-1000XM5 耳机用户评价怎么样 - 上下文:无
- 用户消息:
- 期望行为:
- 第一步:
taobao_search_products, 关键词 "索尼 WH-1000XM5" - 第二步:从搜索结果中选一个 product_id
- 第三步:
taobao_get_product_reviews, 参数product_id: <第二步选择的 ID> - 不应跳过搜索直接查评论(因为没有 product_id)
- 第一步:
- 判定标准:
- Pass:三步顺序正确,最终调用了 get_reviews
- Fail:跳过搜索直接查评论 / 未调用 get_reviews
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [shopping_assistant_skill]
- Group A:
B2-TC-03 · 并行执行(无依赖)
- 难度:中等
- 输入:
- 用户消息:
帮我查下周从北京去成都的机票和酒店 - 上下文:当前日期为 2026-04-07
- 用户消息:
- 期望行为:
- 并行调用(或顺序调用但两者无依赖):
search_flights:北京 → 成都search_hotels:成都
- 两个工具可以同时执行,不应等一个完成再执行另一个
- 并行调用(或顺序调用但两者无依赖):
- 判定标准:
- Pass:两个工具都被调用,机票和酒店信息都出现在输出中
- Fail:只调用了其中一个 / 两者有不必要的串行依赖
- 评分方式:自动(检查是否都调用)+ 性能(如果框架支持并行,检查是否并行执行)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [travel_planning_skill]
- Group A:
B2-TC-04 · 三步以上复杂链
- 难度:困难
- 输入:
- 用户消息:
知乎上关于冰岛旅行的攻略问答,找一篇高赞的,看看详细内容 - 上下文:无
- 用户消息:
- 期望行为:
- 第一步:
zhihu_search, 关键词 "冰岛旅行攻略" - 第二步:从搜索结果中选择点赞数或关注度最高的问答
- 第三步:
zhihu_get_article_detail, 获取完整回答内容
- 第一步:
- 判定标准:
- Pass:至少三步(搜索 → 选择 → 查详情),最终输出了回答内容
- Fail:跳过了任何必需步骤 / 未能找到高赞问答
- 评分方式:自动 + LLM-judge(判断是否选了高赞内容)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [social_media_research_skill]
- Group A:
B2-TC-05 · 条件分支执行
- 难度:困难
- 输入:
- 用户消息:
帮我查一下朝阳公园附近的川菜馆,如果有外卖就更好了 - 上下文:用户在北京
- 用户消息:
- 期望行为:
- 第一步:
maps_text_search或maps_around_search,搜索朝阳公园附近的川菜馆 - 第二步(条件):如果工具支持筛选外卖,在搜索时加条件;如果不支持,在结果中注明哪些有外卖
- 不应因为「外卖」这个次要需求而放弃主要需求(查川菜馆)
- 第一步:
- 判定标准:
- Pass:查询了川菜馆,对外卖做了处理(筛选或标注)
- Fail:因为外卖条件导致查询失败 / 完全忽略了外卖需求
- 评分方式:LLM-judge
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [local_services_skill]
- Group A:
B2-TC-06 · 多轮工具链(搜索→用户选择→查详情)
- 难度:困难
- 输入:
- messages 注入(执行用):
[ {"role": "user", "content": "淘宝搜一下 AirPods Pro"}, {"role": "assistant", "content": [ {"type": "text", "text": "好的,为您在淘宝搜索 AirPods Pro。"}, {"type": "tool_use", "id": "toolu_tc06_01", "name": "taobao_search_products", "input": {"keyword": "AirPods Pro"}} ]}, {"role": "user", "content": [ {"type": "tool_result", "tool_use_id": "toolu_tc06_01", "content": "{\"total\": 5, \"items\": [{\"product_id\": \"789012345678\", \"title\": \"【官方正品】Apple AirPods Pro 2代(USB-C)主动降噪无线蓝牙耳机\", \"price\": 1799, \"sales\": 32451, \"shop\": \"Apple官方旗舰店\"}, {\"product_id\": \"234567890123\", \"title\": \"Apple AirPods Pro (第二代) 闪电接口版 蓝牙耳机 原装正品\", \"price\": 1699, \"sales\": 18932, \"shop\": \"数码优品旗舰店\"}, {\"product_id\": \"345678901234\", \"title\": \"苹果AirPods Pro 2 支持MagSafe充电 降噪耳机 国行正品\", \"price\": 1749, \"sales\": 9876, \"shop\": \"苹果授权专卖店\"}, {\"product_id\": \"456789012345\", \"title\": \"AirPods Pro 二代 入耳式主动降噪 蓝牙5.3 适配iPhone15\", \"price\": 1650, \"sales\": 5421, \"shop\": \"数码配件专营店\"}, {\"product_id\": \"567890123456\", \"title\": \"【苹果专卖】AirPods Pro 第2代 H2芯片 降噪耳机 USB-C版\", \"price\": 1799, \"sales\": 2103, \"shop\": \"苹果专卖旗舰店\"}]}"} ]}, {"role": "assistant", "content": "为您找到以下商品:\n1. 【官方正品】Apple AirPods Pro 2代(USB-C)主动降噪无线蓝牙耳机 - ¥1,799 - 销量 32,451 - product_id: 789012345678\n2. Apple AirPods Pro (第二代) 闪电接口版 蓝牙耳机 原装正品 - ¥1,699 - 销量 18,932 - product_id: 234567890123\n3. 苹果AirPods Pro 2 支持MagSafe充电 降噪耳机 国行正品 - ¥1,749 - 销量 9,876 - product_id: 345678901234\n4. AirPods Pro 二代 入耳式主动降噪 蓝牙5.3 适配iPhone15 - ¥1,650 - 销量 5,421 - product_id: 456789012345\n5. 【苹果专卖】AirPods Pro 第2代 H2芯片 降噪耳机 USB-C版 - ¥1,799 - 销量 2,103 - product_id: 567890123456\n\n请问您对哪款感兴趣?"}, {"role": "user", "content": "第二个看起来不错,详细说说"} ]
- messages 注入(执行用):
- 期望行为:
- 识别出用户指代的是搜索结果中的第二个商品(product_id: 234567890123)
- 提取第二个商品的 product_id
- 调用
taobao_get_product_detail,参数为该 product_id
- 判定标准:
- Pass:调用了
taobao_get_product_detail,product_id 是第二个商品的 ID - Fail:未调用详情工具 / 使用了错误的 product_id / 重新搜索了一遍
- Pass:调用了
- 评分方式:自动(检查工具调用和 ID 匹配)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [shopping_assistant_skill]
- Group A:
B2-TC-07 · 工具结果引导的工具切换
- 难度:困难
- 输入:
- messages 注入(执行用):
[ {"role": "user", "content": "北京朝阳区有哪些二手房"}, {"role": "assistant", "content": [ {"type": "text", "text": "好的,为您搜索北京朝阳区的二手房源。"}, {"type": "tool_use", "id": "toolu_tc07_01", "name": "beike_lookup_city_id", "input": {"city_name": "北京"}} ]}, {"role": "user", "content": [ {"type": "tool_result", "tool_use_id": "toolu_tc07_01", "content": "{\"city_id\": 110000, \"city_name\": \"北京\", \"province\": \"北京市\"}"} ]}, {"role": "assistant", "content": [ {"type": "tool_use", "id": "toolu_tc07_02", "name": "beike_search_resale_housing", "input": {"city_id": 110000, "district": "朝阳区"}} ]}, {"role": "user", "content": [ {"type": "tool_result", "tool_use_id": "toolu_tc07_02", "content": "{\"total\": 5, \"listings\": [{\"listing_id\": \"bj_ch_001\", \"community_name\": \"望京花园小区\", \"address\": \"朝阳区望京街道望京西路34号\", \"bedrooms\": 3, \"living_rooms\": 2, \"area_sqm\": 128, \"total_price_wan\": 680, \"unit_price\": 53125}, {\"listing_id\": \"bj_ch_002\", \"community_name\": \"雅秀小区\", \"address\": \"朝阳区工体北路3号\", \"bedrooms\": 2, \"living_rooms\": 1, \"area_sqm\": 89, \"total_price_wan\": 520, \"unit_price\": 58427}, {\"listing_id\": \"bj_ch_003\", \"community_name\": \"建外SOHO东区\", \"address\": \"朝阳区建国门外大街39号\", \"bedrooms\": 2, \"living_rooms\": 2, \"area_sqm\": 108, \"total_price_wan\": 760, \"unit_price\": 70370}, {\"listing_id\": \"bj_ch_004\", \"community_name\": \"远洋天地\", \"address\": \"朝阳区光华路9号\", \"bedrooms\": 3, \"living_rooms\": 2, \"area_sqm\": 135, \"total_price_wan\": 890, \"unit_price\": 65926}, {\"listing_id\": \"bj_ch_005\", \"community_name\": \"丽都花园\", \"address\": \"朝阳区酒仙桥路6号\", \"bedrooms\": 4, \"living_rooms\": 2, \"area_sqm\": 160, \"total_price_wan\": 980, \"unit_price\": 61250}]}"} ]}, {"role": "assistant", "content": "为您找到以下房源:\n1. 望京SOHO周边·望京花园小区 - 3室2厅 - 128㎡ - 总价 680万 - 朝阳区望京街道望京西路34号\n2. 三里屯·雅秀小区 - 2室1厅 - 89㎡ - 总价 520万 - 朝阳区工体北路3号\n3. 国贸·建外SOHO东区 - 2室2厅 - 108㎡ - 总价 760万 - 朝阳区建国门外大街39号\n4. CBD·远洋天地 - 3室2厅 - 135㎡ - 总价 890万 - 朝阳区光华路9号\n5. 酒仙桥·丽都花园 - 4室2厅 - 160㎡ - 总价 980万 - 朝阳区酒仙桥路6号\n\n以上房源供您参考,如需了解详情请告知。"}, {"role": "user", "content": "第一套的小区周边有什么餐厅"} ]
- messages 注入(执行用):
- 期望行为:
- 从房源结果中提取第一套的小区名称(望京花园小区)或地址(朝阳区望京街道望京西路34号)
- 调用
maps_text_search或maps_around_search,搜索该小区周边的餐厅 - 不应重新搜索房源
- 判定标准:
- Pass:调用了地图搜索工具,搜索位置与第一套房源的小区对应
- Fail:重新调用了房源搜索 / 地图搜索位置错误 / 未调用地图工具
- 评分方式:自动 + LLM-judge(判断位置是否匹配)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [house_hunting_skill, local_services_skill]
- Group A:
四、工具失败恢复(FR: Failure Recovery)
工具返回错误时,是否有合理的重试/降级策略。
B2-FR-01 · 搜索无结果降级
- 难度:中等
- 输入:
- 用户消息:
淘宝上有没有 2026 款的特斯拉 Model Y - 工具拦截配置(执行用):
{ "type": "tool_intercept", "intercept_tool": "taobao_search_products", "inject_tool_result": { "is_error": false, "content": "{\"total\": 0, \"items\": [], \"message\": \"未找到相关商品\"}" } }
- 用户消息:
- 期望行为:
- 识别出专用工具搜索失败
- 降级到
web_search,扩大搜索范围(可能在官网或其他电商平台) - 或者告知用户淘宝上搜索不到,建议其他渠道
- 判定标准:
- Pass:尝试了降级搜索或给出了合理的替代建议
- Fail:返回「搜索不到」就结束,不做任何尝试
- 评分方式:LLM-judge
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [shopping_assistant_skill]
- Group A:
B2-FR-02 · 参数错误重试
- 难度:中等
- 输入:
- 用户消息:
查一下广州到北京的机票 - 工具拦截配置(执行用):
{ "type": "tool_intercept", "intercept_tool": "search_flights", "inject_tool_result": { "is_error": true, "content": "{\"error\": \"MISSING_REQUIRED_PARAMETER\", \"message\": \"缺少必填参数:date(出发日期)。请提供格式为 YYYY-MM-DD 的出发日期后重试。\", \"required_fields\": [\"origin\", \"destination\", \"date\"]}" } }
- 用户消息:
- 期望行为:
- 识别出缺少日期参数
- 询问用户日期或使用合理默认值(如明天)重试
- 不应直接放弃或把错误抛给用户
- 判定标准:
- Pass:询问了日期或使用默认值重试成功
- Fail:返回错误信息就结束 / 没有重试
- 评分方式:自动(检查是否有第二次调用)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [flight_booking_skill]
- Group A:
B2-FR-03 · 工具不可用切换备选
- 难度:困难
- 输入:
- 用户消息:
帮我查一下故宫明天的天气 - 上下文:当前日期为 2026-04-07
- 工具拦截配置(执行用):
{ "type": "tool_intercept", "intercept_tool": "maps_weather", "inject_tool_result": { "is_error": true, "content": "{\"error\": \"INVALID_CITY_PARAMETER\", \"message\": \"城市参数错误:'故宫' 不是有效的城市名称。请传入标准城市名(如:北京、上海、广州)或城市行政区划代码。\", \"param\": \"city\"}" } }
- 用户消息:
- 期望行为:
- 识别出「故宫」是北京的一个地点,不是城市
- 修正参数为
city: "北京"重试 - 或者调用
maps_text_search先定位故宫所在城市,再查天气
- 判定标准:
- Pass:通过修正参数或切换策略最终查到了北京天气
- Fail:返回错误就放弃 / 坚持用「故宫」作为城市参数反复失败
- 评分方式:自动 + LLM-judge
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [weather_query_skill]
- Group A:
B2-FR-04 · 部分失败的优雅处理
- 难度:困难
- 输入:
- 用户消息:
帮我查一下从上海去巴厘岛的机票和当地天气 - 工具模拟配置(执行用):
{ "type": "tool_mock", "mocked_calls": [ { "tool": "search_flights", "inject_result": { "is_error": false, "content": "{\"flights\": [{\"flight_no\": \"MU5707\", \"departure\": \"上海浦东 PVG\", \"arrival\": \"巴厘岛 DPS\", \"dep_time\": \"09:30\", \"arr_time\": \"15:45\", \"duration\": \"6h15m\", \"price_cny\": 2180, \"airline\": \"中国东方航空\"}, {\"flight_no\": \"CZ6033\", \"departure\": \"上海浦东 PVG\", \"arrival\": \"巴厘岛 DPS\", \"dep_time\": \"23:55\", \"arr_time\": \"06:20+1\", \"duration\": \"6h25m\", \"price_cny\": 1950, \"airline\": \"中国南方航空\"}]}" } }, { "tool": "maps_weather", "inject_result": { "is_error": true, "content": "Error: Location 'Bali, Indonesia' is outside the supported geographic coverage area of this weather service. Only mainland China locations are currently supported." } } ] }
- 用户消息:
- 期望行为:
- 输出机票信息(成功的部分)
- 对于天气,降级到
web_search或compute_google_maps_routes(可能能查到当地天气) - 不应因为天气查询失败就不返回机票信息
- 判定标准:
- Pass:输出了机票信息,对天气做了降级尝试或说明无法查询
- Fail:因为天气失败导致整体任务失败 / 只返回成功的部分不说明失败的部分
- 评分方式:LLM-judge
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [travel_planning_skill]
- Group A:
B2-FR-05 · 多轮错误恢复
- 难度:困难
- 输入:
- messages 注入(执行用):
[ {"role": "user", "content": "查一下去曼谷的机票"}, {"role": "assistant", "content": "好的,请问您的出发地和出发日期?"}, {"role": "user", "content": "北京出发,5 月 1 号"}, {"role": "assistant", "content": [ {"type": "text", "text": "好的,为您查询 5 月 1 日北京到曼谷的机票。"}, {"type": "tool_use", "id": "toolu_fr05_01", "name": "search_flights", "input": {"origin": "北京", "destination": "曼谷", "date": "2026-05-01", "passengers": 1}} ]}, {"role": "user", "content": [ {"type": "tool_result", "tool_use_id": "toolu_fr05_01", "content": "{\"total\": 0, \"flights\": [], \"message\": \"该日期暂无可用航班,可能为节假日售罄或航司停飞,建议查询相邻日期。\"}"} ]}, {"role": "assistant", "content": "抱歉,5 月 1 号北京到曼谷暂时没有查到可用航班,可能是劳动节假期已售罄。您可以考虑查询其他日期。"}, {"role": "user", "content": "那 5 月 2 号呢"} ]
- messages 注入(执行用):
- 期望行为:
- 识别出用户在修改日期参数重试
- 保留出发地(北京)和目的地(曼谷)
- 使用新日期(5 月 2 号)重新调用
search_flights - 不应重新询问出发地
- 判定标准:
- Pass:重新调用了
search_flights,日期改为 5 月 2 号,出发地和目的地保持不变 - Fail:重新询问了出发地 / 未重新调用工具 / 参数错误
- Pass:重新调用了
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [flight_booking_skill]
- Group A:
五、工具冗余调用(RC: Redundant Calls)
是否存在不必要的重复调用(效率指标)。
B2-RC-01 · 重复调用相同工具
- 难度:简单
- 输入:
- 用户消息:
查一下北京明天天气
- 用户消息:
- 期望行为:
- 只应调用一次
maps_weather - 不应无故重复调用
- 只应调用一次
- 判定标准:
- Pass:该工具只被调用一次
- Fail:调用了 2 次及以上且参数相同
- 评分方式:自动(检查调用 trace)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [weather_query_skill]
- Group A:
B2-RC-02 · 过度查询详情
- 难度:中等
- 输入:
- 用户消息:
淘宝上 iPhone 16 大概多少钱
- 用户消息:
- 期望行为:
- 搜索结果中通常已包含价格信息
- 不需要逐个查详情,直接从搜索结果提取价格即可
- 如果需要详情,最多查 1-2 个代表性商品
- 判定标准:
- Pass:未调用
get_product_detail或只调用了 1-2 次 - Fail:调用了 5 次以上
get_product_detail(过度查询)
- Pass:未调用
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [shopping_assistant_skill]
- Group A:
B2-RC-03 · 不必要的工具链
- 难度:中等
- 输入:
- 用户消息:
帮我看看微博热搜第一是什么
- 用户消息:
- 期望行为:
- 热搜榜接口返回的数据通常已包含标题
- 用户只问「是什么」,不需要查详情(除非用户明确要求看内容)
- 直接返回第一名的标题即可
- 判定标准:
- Pass:只调用了
weibo_get_hot_search,未调用get_post_detail - Fail:不必要地调用了
get_post_detail
- Pass:只调用了
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [social_media_skill]
- Group A:
B2-RC-04 · 已有信息的重复获取
- 难度:困难
- 输入:
- messages 注入(执行用):
[ {"role": "user", "content": "查一下北京明天天气"}, {"role": "assistant", "content": [ {"type": "text", "text": "好的,为您查询北京明天(2026-04-08)的天气。"}, {"type": "tool_use", "id": "toolu_rc04_01", "name": "maps_weather", "input": {"city": "北京", "date": "2026-04-08"}} ]}, {"role": "user", "content": [ {"type": "tool_result", "tool_use_id": "toolu_rc04_01", "content": "{\"city\": \"北京\", \"date\": \"2026-04-08\", \"weather\": \"晴\", \"temperature_min\": 15, \"temperature_max\": 25, \"wind\": \"东南风3级\", \"humidity\": \"40%\"}"} ]}, {"role": "assistant", "content": "北京明天(4月8日)天气晴朗,气温 15~25°C,东南风3级,湿度40%,适合外出。"}, {"role": "user", "content": "那后天呢"} ]
- messages 注入(执行用):
- 期望行为:
- 直接调用
maps_weather查询后天的天气(不应重新查询明天) - 不应重新查询明天的天气(已经有结果了)
- 直接调用
- 判定标准:
- Pass:只调用了一次
maps_weather,查询后天 - Fail:重新查询了明天的天气
- Pass:只调用了一次
- 评分方式:自动
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [weather_query_skill]
- Group A:
B2-RC-05 · 渐进式筛选(避免重复调用)
- 难度:困难
- 输入:
- messages 注入(执行用):
[ {"role": "user", "content": "推荐几款笔记本电脑"}, {"role": "assistant", "content": [ {"type": "text", "text": "好的,为您搜索热门笔记本电脑。"}, {"type": "tool_use", "id": "toolu_rc05_01", "name": "taobao_search_products", "input": {"keyword": "笔记本电脑", "sort": "sale"}} ]}, {"role": "user", "content": [ {"type": "tool_result", "tool_use_id": "toolu_rc05_01", "content": "{\"total\": 8, \"items\": [{\"product_id\": \"tb_nb_001\", \"title\": \"联想小新 Pro 14 2025款\", \"specs\": \"14英寸 2.8K OLED / i5-13500H / 16GB / 512GB\", \"price\": 4999, \"sales\": 45231, \"weight_kg\": 1.46}, {\"product_id\": \"tb_nb_002\", \"title\": \"苹果 MacBook Air 13 M3 芯片\", \"specs\": \"13.6英寸 Liquid Retina / 8核CPU / 8GB / 256GB\", \"price\": 8499, \"sales\": 38764, \"weight_kg\": 1.24}, {\"product_id\": \"tb_nb_003\", \"title\": \"华为 MateBook D 16 2024款\", \"specs\": \"16英寸 2K / i5-12450H / 16GB / 512GB\", \"price\": 4299, \"sales\": 32105, \"weight_kg\": 1.68}, {\"product_id\": \"tb_nb_004\", \"title\": \"戴尔 XPS 13 Plus\", \"specs\": \"13.4英寸 OLED / i7-1360P / 16GB / 512GB\", \"price\": 10999, \"sales\": 12843, \"weight_kg\": 1.24}, {\"product_id\": \"tb_nb_005\", \"title\": \"华硕 灵耀 X13\", \"specs\": \"13.3英寸 2.8K OLED / R7-7745HX / 16GB / 512GB\", \"price\": 6999, \"sales\": 9876, \"weight_kg\": 1.38}, {\"product_id\": \"tb_nb_006\", \"title\": \"惠普 战66 五代 14\", \"specs\": \"14英寸 2K IPS / i5-1335U / 16GB / 512GB\", \"price\": 3799, \"sales\": 28934, \"weight_kg\": 1.49}, {\"product_id\": \"tb_nb_007\", \"title\": \"ThinkPad X1 Carbon Gen 11\", \"specs\": \"14英寸 2.8K OLED / i7-1365U / 16GB / 1TB\", \"price\": 12999, \"sales\": 7654, \"weight_kg\": 1.12}, {\"product_id\": \"tb_nb_008\", \"title\": \"小米 Book Pro 14 2024款\", \"specs\": \"14英寸 2.8K OLED / i7-13700H / 32GB / 1TB\", \"price\": 6299, \"sales\": 15432, \"weight_kg\": 1.4}]}"} ]}, {"role": "assistant", "content": "为您推荐以下热销笔记本电脑:\n1. 联想小新 Pro 14 2025款 - 14英寸 2.8K OLED 屏 - i5-13500H / 16GB / 512GB - ¥4,999 - 重量 1.46kg\n2. 苹果 MacBook Air 13 M3 芯片 - 13.6英寸 Liquid Retina - 8核CPU/10核GPU / 8GB / 256GB - ¥8,499 - 重量 1.24kg\n3. 华为 MateBook D 16 2024款 - 16英寸 2K 全面屏 - i5-12450H / 16GB / 512GB - ¥4,299 - 重量 1.68kg\n4. 戴尔 XPS 13 Plus - 13.4英寸 OLED - i7-1360P / 16GB / 512GB - ¥10,999 - 重量 1.24kg\n5. 华硕 灵耀 X13 - 13.3英寸 2.8K OLED - R7-7745HX / 16GB / 512GB - ¥6,999 - 重量 1.38kg\n6. 惠普 战66 五代 14 - 14英寸 2K IPS - i5-1335U / 16GB / 512GB - ¥3,799 - 重量 1.49kg\n7. ThinkPad X1 Carbon Gen 11 - 14英寸 2.8K OLED - i7-1365U / 16GB / 1TB - ¥12,999 - 重量 1.12kg\n8. 小米 Book Pro 14 2024款 - 14英寸 2.8K OLED - i7-13700H / 32GB / 1TB - ¥6,299 - 重量 1.4kg\n\n以上均为销量较高的热门机型,请问您更关注哪方面?"}, {"role": "user", "content": "有没有轻薄一点的"} ]
- messages 注入(执行用):
- 期望行为:
- 从之前返回的 8 款笔记本中筛选出轻薄的型号
- 不应重新调用搜索工具(已有结果可用)
- 或者如果第一次结果不包含重量信息,才重新调用时加筛选条件
- 判定标准:
- Pass:未重新调用搜索工具,从已有结果中筛选;或明确说明需要重新搜索才能获得重量信息
- Fail:无条件重新调用了搜索工具
- 评分方式:自动(检查是否有第二次搜索调用)+ LLM-judge
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [product_recommendation_skill]
- Group A:
六、多模态工具使用(MM: Multimodal Tool Use)
用户通过图片等多模态输入时,agent 能否选择正确的工具并构造参数。
B2-MM-01 · 图片搜索工具选择
- 难度:简单
- 输入:
- 用户消息:
[上传商品图片] 帮我找这个在淘宝上哪里买 - 图片:
(一双红色 Nike 运动鞋侧面照) - 上下文:无
- 用户消息:
- 期望行为:
- 直接分析图片识别商品(Nike 跑鞋),调用淘宝搜索工具查询购买渠道
- 图片搜索或基于识别结果的文字搜索均可接受
- 判定标准:
- Pass:调用了淘宝搜索工具(图片搜索或文字搜索均可),未要求用户手动描述
- Fail:要求用户先文字描述商品特征才搜索 / 未调用任何搜索工具
- 评分方式:自动(检查是否调用搜索工具)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [shopping_assistant_skill]
- Group A:
B2-MM-02 · 图片信息提取参数构造
- 难度:中等
- 输入:
- 用户消息:
[上传价格标签照片] 这个价格正常吗 - 图片:
(商品价格标签特写,标签上显示价格 ¥299) - 上下文:无
- 用户消息:
- 期望行为:
- 直接读取图片中的价格信息(299 元)
- 将读取到的价格作为参数,搜索该商品判断价格是否正常
- 判定标准:
- Pass:正确读取了价格(299),并用于后续搜索
- Fail:未读取价格直接给出主观判断 / 读取价格错误
- 评分方式:自动(检查提取的价格)+ LLM-judge
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true
- Group A:
B2-MM-03 · 图片 + 文字的工具选择
- 难度:中等
- 输入:
- 用户消息:
[上传地图截图] 从这里到故宫怎么走 - 图片:
(北京王府井大街地图截图,图中可见「王府井」路牌和周边街道名称) - 上下文:无
- 用户消息:
- 期望行为:
- 直接读取截图中的位置信息(识别为王府井)
- 调用导航工具(maps_direction_*),起点为王府井,终点为故宫
- 判定标准:
- Pass:调用了导航工具,且起点正确匹配图片中的位置(王府井)
- Fail:调用了错误的工具类型(如图片搜索)/ 起点位置识别错误
- 评分方式:自动(检查工具类型 + 起点参数)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true
- Group A:
B2-MM-04 · 多模态工具链
- 难度:困难
- 输入:
- 用户消息:
[上传商品图片] 这个在淘宝上多少钱,评价怎么样 - 图片:
(索尼 WH-1000XM5 头戴式降噪耳机产品图,黑色,正面视角) - 上下文:无
- 用户消息:
- 期望行为:
- 第一步:直接识别图片商品(索尼 WH-1000XM5),通过搜索获取商品 ID
- 第二步:taobao_get_product_detail 获取价格
- 第三步:taobao_get_product_reviews 获取评价
- 判定标准:
- Pass:三步都完成,最终输出了价格和评价
- Fail:未识别商品,直接编造价格和评价(未调用工具)
- 评分方式:自动(检查工具链)
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true, active_skills: [shopping_assistant_skill]
- Group A:
B2-MM-05 · 图片质量不足时的降级
- 难度:困难
- 输入:
- 用户消息:
[上传模糊的商品照片] 这个是什么,在哪买 - 图片:
(极度模糊、过曝的照片,难以辨别商品细节) - 上下文:无
- 用户消息:
- 期望行为:
- 直接分析图片,发现图片过于模糊无法识别商品
- 降级策略:说明图片不清晰,主动询问用户能否提供更清晰的照片,或描述商品关键特征辅助搜索
- 不应放弃任务或假装能识别出具体商品
- 判定标准:
- Pass:说明了图片无法识别,提供了至少一种降级方案(重拍 / 描述特征)
- Fail:声称识别出了具体商品(编造)/ 直接放弃不给任何帮助
- 评分方式:LLM-judge
- Skill 配置:
- Group A:
skill_enabled: false - Group B:
skill_enabled: true
- Group A:
评测执行说明
总用例数
| 维度 | 代号 | 用例数 |
|---|---|---|
| 工具选择准确率 | TS | 6 |
| 参数构造准确率 | PC | 8 |
| 工具链编排 | TC | 7 |
| 工具失败恢复 | FR | 5 |
| 工具冗余调用 | RC | 5 |
| 多模态工具使用 | MM | 5 |
| 合计 | 36 |
难度分布
| 难度 | 数量 |
|---|---|
| 简单 | 6 |
| 中等 | 15 |
| 困难 | 10 |
对话轮次分布
| 类型 | 数量 |
|---|---|
| 单轮 | 24 |
| 多轮(2-4 轮) | 7 |
评分方式分布
| 方式 | 数量 | 说明 |
|---|---|---|
| 自动 | 17 | 可程序化验证(工具名称、参数、调用次数、trace) |
| LLM-judge | 5 | 需要语义理解(降级策略合理性、选择合理性) |
| 自动 + LLM-judge | 3 | 部分自动检查,部分需语义判断 |
工具覆盖范围
| 工具类别 | 涉及 case 数 |
|---|---|
| 旅行类 (机票/酒店) | 8 |
| 电商类 (淘宝) | 6 |
| 地图导航类 (高德/Google Maps) | 6 |
| 房产类 (贝壳) | 4 |
| 社交媒体类 (微博/知乎) | 3 |
| 通用 (web_search/weather) | 5 |
双组评测标准
通过门槛
| 组别 | 维度通过线 | 说明 |
|---|---|---|
| Group A(无 Skill) | 各维度 ≥ 70% | 验证 agent 基础工具使用能力 |
| Group B(有 Skill) | ≥ Group A 分数(delta ≥ 0 为硬门槛) | Skill 不应降低工具使用准确率 |
失败定性规则
Group A 失败 → agent 工具使用能力不足,修模型/prompt
Group B 失败 且 Group A 通过 → Skill 干扰了工具选择或参数构造(如强制流程覆盖了正确调用),修 Skill
Group A 和 Group B 都失败 → agent 问题
B2 特有规则:Skill 相关工具的 Group B 应更高
当 Skill 的执行流程明确规定了工具调用方式时(例如 flight-selection skill 规定「必须先搜 ±1 天」),Group B 在对应 case 上应该高于 Group A——因为 Skill 给了明确的调用规范,按图索骥比凭空猜测更应该做对。
| 工具类型 | Group A 期望 | Group B 期望 |
|---|---|---|
| 通用工具(天气/搜索) | ≥ 70% | ≥ Group A |
| Skill 显式规定的工具调用 | ≥ 70% | ≥ 85%(Skill 提供了明确规范,应更高) |
B2-RC 维度例外:冗余调用允许 Group B 略多
原因:Skill 的执行流程(如 ±1 天多次搜索、Draft Proposal 确认)天然比无 Skill 时调用更多工具,这是有价值的额外步骤,不是真正的冗余。
- Group B 中,来自 Skill 规定流程的额外调用不计入冗余
- 仅统计 Skill 流程以外的重复/无效调用
- 评测时需对每个冗余调用标注:
[skill-required](流程规定)或[redundant](真正冗余)
skill_impact_delta 汇总
目标:
TS / PC / TC / FR / MM:delta ≥ 0
RC(冗余调用):delta 允许 ≤ +20%(Skill 流程合理增加调用次数)
红线:
TS(工具选择)delta < -10% → Skill 干扰了工具选择,必须修复
PC(参数构造)delta < -10% → Skill 破坏了参数构造,必须修复
后续迭代方向
- 补充文件操作工具的 case(read/write/edit_file)
- 补充 execute_shell_command 的安全边界测试
- 补充跨平台工具链(如淘宝搜索 → 微博/知乎查评价)
- 补充更长的工具链(4 步以上)
- 从真实用户 trace 中提取工具使用失败的 case
- 补充工具超时和网络异常的恢复策略测试