Qwen-Agent DeepPlanning 基准实战:可验证约束下的长程 Agent 规划能力评测

发布时间:2026/9/13 11:54:38
Qwen-Agent DeepPlanning 基准实战:可验证约束下的长程 Agent 规划能力评测 Qwen-Agent DeepPlanning 基准实战可验证约束下的长程 Agent 规划能力评测【免费下载链接】Qwen-AgentAgent framework and applications built upon Qwen3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen-AgentDeepPlanning 是 Qwen-Agent 仓库内置的一个面向长程long-horizonAgent 规划能力的评测基准围绕多日旅行规划与多商品购物规划两大真实场景考察 Agent 在信息主动获取、局部约束推理与全局约束优化三个维度的表现。本文将结合仓库中的基准文档与benchmark/deepplanning目录下的源码实现从基准设计理念、任务统计、三大核心能力、统一运行编排到各域独立运行与结果指标解读给出可复制、可运行的完整实战指南。DeepPlanning 基准的提出背景现有 Agent 评测虽然已逐渐转向长程任务但绝大多数基准仍侧重于局部的、单步的推理能力而非真正规划能力所要求的全局约束优化例如时间预算与财务预算的联合优化。与此同时既有的 LLM 规划基准往往低估了真实世界中普遍存在的主动信息获取与细粒度局部约束。DeepPlanning 正是为了弥合这一差距而设计它是一个面向实用长程 Agent 规划的挑战性基准包含多日旅行规划与多商品购物规划两类任务要求 Agent 同时具备主动信息获取、局部约束推理与全局约束优化能力。评测结果表明即使是前沿的 Agent 型 LLM 在这些任务上依然表现吃力这凸显了可靠显式推理模式与并行工具调用在效果-效率权衡中的重要性。如上图所示DeepPlanning 的评测流水线包含五个环节分层任务生成在基础骨架之上注入个性化约束与环境约束、用户查询、Agent 轨迹Agent 调用专用 API 主动收集信息、规划报告结构化输出与自动评估按常识约束与个性化约束打分。基准总体设计一览DeepPlanning 覆盖两个现实且长程的场景两者都要求 Agent 在严格可验证的全局约束下探索复杂环境。下表是基准的统计概览源自 benchmarks/deepplanning/index.mdx维度旅行规划Travel Planning购物规划Shopping Planning任务数量120中文/ 120英文120英文工具集9 个专用 API15 个专用 API数据量每个任务 7,708 条记录每个任务 171 条记录核心目标分钟级日程规划最优购物清单生成运行环境隔离 Python 沙箱隔离 Python 沙箱从 benchmark/deepplanning 目录的源码结构看两个域都实现了完整的推理inference→ 评估evaluation流水线并统一由根目录的 run_all.sh 编排最终通过 aggregate_results.py 跨域聚合出单一总分。域一旅行规划Travel PlanningAgent 扮演私人旅行助手组织多日行程其中时间、地点与预算紧密耦合输入自然语言查询目的地、日期、预算及具体偏好例如带烘干机的三星级酒店。工具9 个用于搜索航班、火车、酒店、餐厅与景点的 API。对应源码位于 benchmark/deepplanning/travelplanning/tools包括flight_query_tool航班、train_query_tool火车、hotel_query_tool酒店、restaurant_query_tool餐厅、attraction_query_tool景点、location_search_tool地点检索与roadroute_query_tool道路路线等。输出结构化的规划报告包含逐项成本与分钟级时刻表。核心技能时空推理——确保航班时刻、景点开放时间与交通耗时相互对齐无重叠、无超支。任务数据存放于 benchmark/deepplanning/travelplanning/data包括travelplanning_query_zh.json中文任务与travelplanning_query_en.json英文任务。域二购物规划Shopping PlanningAgent 需要求解一个组合优化问题在最大化折扣效用的前提下找到最优商品组合输入带有详细属性要求与总预算上限的购物清单。工具15 个用于语义搜索、多属性过滤与优惠券管理的 API。对应源码位于 benchmark/deepplanning/shoppingplanning/tools涵盖search_products_tool商品搜索、get_product_details_tool商品详情、filter_by_brand_tool/filter_by_color_tool/filter_by_size_tool/filter_by_range_tool按品牌、颜色、尺码、价格区间过滤、add_product_to_cart_tool/delete_product_from_cart_tool购物车管理、add_coupon_to_cart_tool/delete_coupon_from_cart_tool优惠券管理、get_cart_info与get_user_info等。输出包含最优商品集合与已用优惠券的结构化 JSON 购物车。核心技能组合优化——计算复杂的优惠券叠加规则例如跨店 vs 同品牌实现绝对最低的最终价格。购物任务按难度划分为三个层级Level 1/2/3查询元数据分别存放在 benchmark/deepplanning/shoppingplanning/data 下的level_1_query_meta.json、level_2_query_meta.json与level_3_query_meta.json。DeepPlanning 评测的三大核心规划能力DeepPlanning 系统性地考察 Agent 的三项关键能力主动信息获取Proactive Information Acquisition主动调用 API 去发现隐藏的环境状态例如景点是否闭园、商品是否有货而不是凭空臆造事实。从框架图中可以看到Agent 会先调用query_flight_info、recommend_attractions等工具获取候选信息再基于结果决定下一步动作。局部约束推理Local Constrained Reasoning满足单步逻辑约束例如匹配用户指定的品牌、尺码或酒店设施。全局约束优化Global Constrained Optimization管理整体边界——如总预算上限与多日时间可行性其中任何一处局部失误都会导致整个方案失效。快速上手统一运行 DeepPlanning 基准benchmark/deepplanning/README.md 提供了统一编排Unified Run的推荐路径可直接复现论文中的实验结果两个域也可独立运行分别见 travelplanning/README.md 与 shoppingplanning/README.md。以下六步为统一运行流程。第一步安装依赖基准根目录提供了统一的依赖清单 requirements.txt建议使用 Python 3.10conda create -n deepplanning python3.10 -y conda activate deepplanning pip install -r requirements.txt依赖包含核心 Agent 包qwen-agent0.0.10、openai1.0.0同时支持 OpenAI 与 DashScope 兼容接口、dashscope1.11.0、数据处理的pandas/numpy、购物搜索所用的rank-bm25以及旅行域转换与校验所需的json5、jsonschema、pydantic等。第二步与第三步下载并解压数据库需要先从 DeepPlanning 数据集Hugging Face 上的 Qwen/DeepPlanning下载数据库压缩包放置到对应目录购物域将database_level1.tar.gz、database_level2.tar.gz、database_level3.tar.gz放入shoppingplanning/database_zip/旅行域将database_zh.zip、database_en.zip放入travelplanning/database/。随后解压# 解压购物数据库 cd shoppingplanning/database_zip tar -xzf database_level1.tar.gz -C .. tar -xzf database_level2.tar.gz -C .. tar -xzf database_level3.tar.gz -C .. cd ../.. # 解压旅行数据库中文库含航班、酒店、餐厅、景点数据 cd travelplanning/database unzip database_zh.zip unzip database_en.zip cd ../..第四步配置模型编辑基准根目录下的 models_config.json添加被测模型。仓库自带配置示例如下{ models: { qwen-plus: { model_name: qwen-plus, model_type: openai, base_url: https://dashscope.aliyuncs.com/compatible-mode/v1, api_key_env: DASHSCOPE_API_KEY, temperature: 0.0 }, qwen3-max: { model_name: qwen3-max, model_type: openai, base_url: https://dashscope.aliyuncs.com/compatible-mode/v1, api_key_env: DASHSCOPE_API_KEY, temperature: 0.0 }, gpt-4o-2024-11-20: { model_name: gpt-4o-2024-11-20, model_type: openai, base_url: https://api.openai.com/v1/models, api_key_env: OPENAI_API_KEY, temperature: 0.0 } } }配置项说明可结合 travelplanning/agent/call_llm.py 的加载逻辑理解model_name实际传给 API 的模型标识缺省时回退为配置键名model_type目前支持openaiOpenAI 及其兼容接口如 Qwen、DeepSeekbase_urlAPI 端点地址api_key_env读取 API Key 的环境变量名缺失时 create_client 会直接抛错temperature采样温度基准建议设为0.0以保证结果可复现可选参数还包括max_retries默认 30、backoff重试退避默认 1.5 秒、tool_choice默认auto与extra_body用于传递reasoning_effort等额外字段配置中gpt-5-2025-08-07-high即以此开启高推理强度。重要提示qwen-plus配置是必需的因为旅行域的转换阶段evaluation/convert_report.py默认用它来解析和格式化 Agent 生成的旅行计划如需更换转换模型可修改 benchmark/deepplanning/travelplanning/evaluation/convert_report.py 中的conversion_model变量。此外call_llm.py 会自动识别o1、o3、o4-mini、reasoner等推理模型并跳过temperature参数。第五步设置 API 密钥以 env.example 为模板创建.env文件并填入密钥cp .env.example .env # 编辑 .env填写 DASHSCOPE_API_KEY 与 OPENAI_API_KEY第六步运行统一基准编辑 run_all.sh 中的配置后执行bash run_all.sh。脚本的核心配置项如下DOMAINStravel shopping # 要运行的域 BENCHMARK_MODELqwen-plus # 所有域的默认模型可空格分隔多个模型 # 购物域配置 SHOPPING_LEVELS1 2 3 # 难度层级 SHOPPING_WORKERS50 # 并行 worker 数 SHOPPING_MAX_LLM_CALLS400 # 每个样本的最大 LLM 调用次数 # 旅行域配置 TRAVEL_LANGUAGE # 语言zh / en / 空两者都跑 TRAVEL_WORKERS50 TRAVEL_MAX_LLM_CALLS400 TRAVEL_START_FROMinference # 起点inference / conversion / evaluation TRAVEL_OUTPUT_DIR # 自定义输出目录可选 TRAVEL_VERBOSEfalse TRAVEL_DEBUGfalse脚本的执行逻辑对应 run_all.sh按模型逐一遍历所有指定域旅行域会跑中英文两个版本购物域按 Level 1 → 2 → 3 顺序为每个域导出BENCHMARK_MODEL、BENCHMARK_WORKERS、BENCHMARK_MAX_LLM_CALLS等环境变量并调用对应域的run.sh每个模型完成后调用python aggregate_results.py --model_name 模型名可选--travel-output-dir指定旅行结果目录做跨域聚合聚合结果保存到aggregated_results/{model_name}_aggregated.json。脚本启动时会校验models_config.json是否存在并自动加载.env多个模型之间默认间隔 60 秒避免 API 限流。旅行域独立运行与三阶段流水线旅行域可在 benchmark/deepplanning/travelplanning 下独立运行推荐通过环境变量覆盖默认值对应 run.sh 的变量定义BENCHMARK_MODELqwen-plus \ BENCHMARK_LANGUAGE \ BENCHMARK_WORKERS10 \ BENCHMARK_MAX_LLM_CALLS400 \ BENCHMARK_START_FROMinference \ BENCHMARK_OUTPUT_DIR \ bash run.sh可用的环境变量及默认值环境变量默认值说明BENCHMARK_MODEL/TRAVEL_AGENT_MODELqwen-plus取自 models_config.json 的模型名BENCHMARK_LANGUAGEzh语言版本zh / en / 空字符串表示两者都跑BENCHMARK_WORKERS40并行 worker 数BENCHMARK_MAX_LLM_CALLS400每个任务的最大 LLM 调用次数BENCHMARK_START_FROMinference起点inference / conversion / evaluationBENCHMARK_OUTPUT_DIR空自定义结果输出目录BENCHMARK_VERBOSEfalse是否输出详细信息BENCHMARK_DEBUGfalse是否开启调试模式智能缓存与断点续跑当START_FROMinference时run.sh 会自动扫描reports/如id_0_report.txt与converted_plans/如id_0_converted.json目录对比 120 个任务 ID0-119找出缺失项并自动决定起点报告完整但转换计划缺失 → 从conversion开始报告缺失 → 从inference开始两者都完整 → 跳过该模型。因此长时间评测可以安全中断并续跑而不丢失进度。旅行域基准由三个阶段组成Stage 1推理Inference——从data/travelplanning_query_{lang}.json加载任务调用 LLM Agent 生成旅行计划Agent 通过工具查询航班、酒店、餐厅、景点等数据库保存轨迹与执行日志并生成符合格式要求的可读报告。输出到results/{model}_{lang}/trajectories/与results/{model}_{lang}/reports/。Stage 2转换Conversion——用 LLM默认qwen-plus将 Markdown 格式的旅行计划解析为标准化 JSON供自动评估使用。转换原因是Agent 输出的是人类可读的 Markdown而评估代码需要结构化 JSON 来逐条校验约束。输出到results/{model}_{lang}/converted_plans/。Stage 3评估Evaluation——检查交付率是否生成了计划、按 8 个维度评估常识得分、校验个性化约束并计算最终分数。输出到results/{model}_{lang}/evaluation/包含evaluation_summary.json总体指标与每个任务单独的id_{n}_score.json。评估实现见 benchmark/deepplanning/travelplanning/evaluation 下的constraints_commonsense.py常识约束、constraints_hard.py硬约束与eval_converted.py。购物域独立运行与两阶段流水线购物域可在 benchmark/deepplanning/shoppingplanning 下独立运行SHOPPING_AGENT_MODELqwen-plus \ SHOPPING_LEVELS1 2 3 \ SHOPPING_WORKERS50 \ SHOPPING_MAX_LLM_CALLS400 \ bash run.sh关键环境变量包括SHOPPING_AGENT_MODEL可空格分隔多个模型、SHOPPING_LEVELS要跑的层级、SHOPPING_WORKERS并行 worker 数、SHOPPING_MAX_LLM_CALLS每个样本最大 LLM 调用次数。脚本内部还会自动兼容BENCHMARK_MODEL、BENCHMARK_LEVELS、BENCHMARK_WORKERS、BENCHMARK_MAX_LLM_CALLS等通用变量。一个值得注意的设计是隔离数据库副本每次运行会创建带唯一时间戳的数据库拷贝如database_run_qwen-plus_level1_20250105143022_12345/因此可以在不同模型上并行运行多个基准互不干扰。推理完成后结果会移入database_infered/随后运行评估管线对应 evaluation/evaluation_pipeline.py并在 evaluation/score_statistics.py 中跨层级汇总统计。购物域的两阶段流水线Stage 1推理Inference——从data/level_{level}_query_meta.json加载任务Agent 调用商品搜索、属性过滤、加购、优惠券等工具轨迹与购物车保存在database/case_{id}/messages.json为执行轨迹、cart.json为最终购物车、validation_cases.json为参考答案。Stage 2评估Evaluation——将 Agent 生成的购物车与参考答案对比计算商品匹配、优惠券匹配的准确率并校验任务完成度。报告输出到result_report/database_{MODEL}_level{LEVEL}_{TIMESTAMP}/含summary_report.json与每个 case 的case_{id}_report.json。注意评估报告无论模型是否有效都会保存便于在完成率低时排查问题。结果解读各域指标与跨域聚合旅行域指标查看汇总结果cat results/{model}_{lang}/evaluation/evaluation_summary.json示例输出{ total_test_samples: 120, evaluation_success_count: 115, metrics: { delivery_rate: 0.958, commonsense_score: 0.875, personalized_score: 0.742, composite_score: 0.809, case_acc: 0.683 } }其中composite_score常识分与个性化分的加权组合与case_acc通过全部约束的用例占比是论文中的主要指标汇总中还包含error_statistics错误统计按频次列出常见失败模式如[Hard] train_seat_status便于进行错误分析。购物域指标查看跨层级统计cat result_report/{MODEL}_statistics.json关键指标含义match_rate正确匹配的预期商品占比是论文主指标weighted_average_case_score按各层级用例数加权后的平均用例得分是论文主指标successful_rate达到满分全部商品与优惠券均匹配的用例占比valid模型结果是否有效各层级incomplete_rate≤ 10% 视为有效。跨域聚合指标运行完两个域后aggregate_results.py 会将结果汇总为aggregated_results/{model}_aggregated.json其中旅行域取中英文两版composite_score、case_acc的平均值avg_acc购物域weighted_average_case_score 旅行域case_acc/ 2是唯一的跨域主指标。完整聚合示例字段结构对应 aggregate_results.py 的组装逻辑{ model_name: qwen-plus, domains: { shopping: { total_cases: 120, successful_cases: 17, successful_rate: 0.1417, match_rate: 0.6209, weighted_average_case_score: 0.1417, valid: true, levels_completed: [1, 2, 3] }, travel: { total_cases: 240, successful_cases: 238, successful_rate: 0.9917, composite_score: 0.2813, case_acc: 0.0, commonsense_score: 0.4292, personalized_score: 0.1333, valid: true, languages_completed: [zh, en] } }, overall: { total_cases: 360, successful_cases: 255, successful_rate: 0.5667, valid: true, num_domains: 2, avg_acc: 0.0708 } }从示例可以看出即便模型在购物域交付率successful_rate 0.9917很高组合优化类任务的全局得分依然很低——这正是 DeepPlanning 想要暴露的规划能力短板。版本更新记录基准文档benchmarks/deepplanning/index.mdx记录了以下版本演进v1.12026-03-03更新了购物规划基准中的若干任务并修正了部分题目的错误答案标注数据集可在 Qwen/DeepPlanning 获取排行榜新增了多款模型如 Claude-4.6-Opus、Qwen-3.5-Plus、GLM-5、Seed-2.0-pro-high、Kimi-K2.5-thinking。v1.02026-01DeepPlanning 基准首个版本包含旅行规划与购物规划两个域。小结DeepPlanning 以可验证约束下的长程规划为核心通过旅行规划与购物规划两个互补的真实场景系统评测了 Agent 的主动信息获取、局部约束推理与全局约束优化能力。仓库不仅提供了开箱即用的统一运行编排run_all.sh、跨域聚合脚本aggregate_results.py与两套领域 Agent 实现travelplanning/agent 与 shoppingplanning/agent还通过智能缓存断点续跑、隔离数据库副本等工程细节让研究者可以低成本地复现结果、评估新模型并开展针对长程规划能力的错误分析。【免费下载链接】Qwen-AgentAgent framework and applications built upon Qwen3.0, featuring Function Calling, MCP, Code Interpreter, RAG, Chrome extension, etc.项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen-Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考