GenMedia for Commerce 评估集(Evalset)实战:用 ADK Eval 验证电商媒体生成智能体 GenMedia for Commerce 评估集Evalset实战用 ADK Eval 验证电商媒体生成智能体【免费下载链接】adk-samplesA collection of sample agents built with Agent Development Kit (ADK)项目地址: https://gitcode.com/GitHub_Trending/ad/adk-samples导读本文围绕 tests/eval/evalsets 目录下的 README系统讲解 GenMedia for Commerce 智能体如何基于 Agent Development KitADK的adk eval能力构建评估集Evaluation Set。你将掌握三种运行评估的方式默认集、指定集、全量集、ADK 评估集的 JSON 格式与关键字段语义、eval_config.json中轨迹匹配与响应匹配两类指标的配置方法并能结合仓库中product_fitting等真实工作流为智能体的每项核心能力编写可复现、可回归的评估用例。评估集目录为智能体行为建立可回归的验收标准在 GenMedia for Commerce 项目中tests/eval/evalsets/ 目录是存放评估集的固定位置其作用是使用adk eval测试智能体行为。该智能体是一个生产级零售媒体生成方案包含虚拟试穿VTO、360° 商品旋转R2V、商品图拟合Product Fitting、目录检索等多条复杂工作流仅靠人工点检难以防止迭代过程中的行为回退。评估集正是为此而生把关键路径上应该调用哪个工具、以什么参数调用、回复是否符合预期固化成 JSON 用例让每次改动都能被自动验证。目录当前包含三个文件文件作用README.md评估集使用指南本文讲解的主体basic.evalset.json内置基础评估集作为模板与默认集eval_config.json位于上级目录评估指标、权重与阈值的集中配置运行评估三个 Make 目标与底层命令README 给出了三种运行方式均在genmedia-for-commerce目录下执行# 运行默认评估集basic.evalset.json make eval # 运行指定评估集 make eval EVALSETtests/eval/evalsets/custom.evalset.json # 运行全部评估集遍历 tests/eval/evalsets/*.evalset.json make eval-all这三个目标在 Makefile 中实现理解其底层细节有助于排查运行问题eval: echo | Running Agent Evaluation | uv sync --dev --extra eval uv run adk eval ./genmedia4commerce $${EVALSET:-tests/eval/evalsets/basic.evalset.json} \ $(if $(EVAL_CONFIG),--config_file_path$(EVAL_CONFIG),$(if $(wildcard tests/eval/eval_config.json),--config_file_pathtests/eval/eval_config.json,))uv sync --dev --extra eval先同步依赖。--extra eval表明评估所需的依赖如adk eval相关包通过pyproject.toml的可选依赖组安装属于仅评估用、不进入运行时镜像的依赖adk eval ./genmedia4commerce ...ADK CLI 的评估入口第一个位置参数是智能体包的路径本项目为genmedia4commerce包目录第二个位置参数是评估集文件EVALSET未指定时默认回退到basic.evalset.jsonEVAL_CONFIG未指定时若tests/eval/eval_config.json存在则自动传入--config_file_patheval-all通过 shell 循环遍历tests/eval/evalsets/*.evalset.json逐个调用make eval任一评估集失败即中断|| exit 1。Evalset 文件格式通用结构与仓库实况对照README 给出了一份符合 ADK 评估格式的 JSON 骨架完整继承如下{ eval_set_id: unique_id, name: Human-readable name, description: What this evalset tests, eval_cases: [ { eval_id: case_id, conversation: [ { user_content: { parts: [{text: User message}] }, intermediate_data: { tool_uses: [ {name: tool_name, args: {param: value}} ] } } ], session_input: { app_name: app_name, user_id: test_user, state: {} } } ] }值得特别说明的是仓库中实际的 basic.evalset.json 采用了另一种更精简的 ADK 兼容格式按用例名 数据数组组织两者并存是正常的——README 描述的是通用/完整字段形态basic.evalset.json 则是本项目实际使用的简化形态[ { name: route_product_fitting, data: [ { query: I need to generate a product fitting for a dress on a European female model, expected_tool_use: [ { tool_name: product_fitting, tool_input: { gender: woman, ethnicity: european } } ] } ] }, { name: ask_for_missing_params, data: [ { query: Generate a product fitting please, reference: The agent should ask for the garment images and gender since they are required parameters. } ] } ]这个真实文件清晰地展示了两种用例形态轨迹匹配型expected_tool_useroute_product_fitting用例断言——用户请求为一条连衣裙生成欧洲女性模特的产品拟合图时智能体必须调用product_fitting工具且参数应为gender: woman、ethnicity: european。这正是 README 中intermediate_data.tool_uses期望工具调用思想在简化格式中的对应实现回复匹配型referenceask_for_missing_params用例只给出参考回复文本——当用户未提供必要参数时智能体应主动询问服装图片和性别。关键字段语义README 归纳的四个关键字段是编写任何评估集的核心eval_cases测试场景数组每个元素是一次完整的行为验收。建议一个场景聚焦一个能力点便于失败时快速定位conversation用户消息序列。支持多轮对话可模拟真实的来回交互而非单轮问答intermediate_data.tool_uses期望的工具调用轨迹用于轨迹匹配。断言的不只是调用了某工具还包括工具名与参数nameargs因此可以精确约束调用顺序正确、参数正确session_input会话初始状态包含app_name、user_id与state用于在指定应用与用户上下文中复现场景保证评估的可重复性。评估指标与 eval_config.json两条判据如何打分README 指出 ADK eval 衡量两个维度tool_trajectory_avg_score是否以正确的顺序调用了正确的工具轨迹匹配response_match_score回复与期望输出的相似程度响应匹配。这两条判据的权重、阈值与开关在 eval_config.json 中集中配置仓库的真实配置如下{ criteria: { tool_trajectory: { weight: 0.6, threshold: 0.5, tool_name_match: flexible }, response_match_v2: { weight: 0.4, threshold: 0.5 } }, num_runs: 1 }逐项解读criteria.tool_trajectory轨迹匹配判据weight: 0.6表示它在综合得分中占 60% 权重threshold: 0.5表示单条判据得分低于 0.5 即判定该用例失败tool_name_match: flexible表示工具名匹配采用灵活模式允许部分匹配而非完全严格一致这对存在同义工具名的场景更友好criteria.response_match_v2响应匹配判据README 中response_match_score在配置中的实际键名权重 0.4、阈值 0.5num_runs: 1每个用例重复运行次数。设为大于 1 可缓解 LLM 生成的不确定性获得更稳健的统计结果。从配置可以看出该项目的验收取向路由/编排类智能体更看重是否走对了工具调用路径0.6回复文本的相似度作为辅助0.4——这与 GenMedia for Commerce 是 Orchestrator 型智能体、正确编排多工作流是首要目标的定位一致。结合源码的用例设计以 product_fitting 能力为例评估集的价值在于与真实能力一一对应。以 basic.evalset.json 中反复出现的product_fitting为例它在源码中的实现位于 product_fitting 工作流 README 所描述的商品目录富化管线对单件商品的照片进行分类、选图、生成描述再用 Nano Banana 生成模特上身图前后两视图并配合自动化质量评估与迭代修复。其 MCP 工具run_product_fitting的参数表来自工作流 README可作为expected_tool_use.tool_input的取值依据参数必填默认值说明garment_images_base64是--base64 编码的商品图片列表gender是--模特性别man、womanethnicity否european模特预设african、asian、europeanscenario否纯白背景背景描述max_retries否3每个视图的最大生成尝试次数generation_model否gemini-3.1-flash-image生成所用 Gemini 模型product_id否--可选的日志用商品标识model_photos否--自定义模特照片覆盖 ethnicity 预设据此可解读 basic.evalset.json 两个用例的设计意图route_product_fitting验证路由正确性用户给出完整信息裙子、欧洲女性时Router Agent 应把请求路由到product_fitting工具并把自然语言信息正确映射为gender、ethnicity结构化参数——参数映射正是此类编排智能体最易出错的环节ask_for_missing_params验证信息补全行为用户只说了生成产品拟合缺少必填的服装图片与性别智能体不应凭空生成而应主动澄清缺失参数。这属于典型的分支/边界场景。这两类用例与源码测试形成了呼应仓库的 test_mcp_product_fitting.py 直接测试拟合工具的底层能力test_router_agent.py 测试路由决策而评估集则站在黑盒行为层面验证端到端的用户意图到工具调用的链路。单元测试保证零件正确评估集保证整机行为符合预期。创建自定义评估集的五步流程README 给出了创建自定义评估集的操作路径结合仓库文件展开如下复制模板以 basic.evalset.json 为起点复制新文件例如custom.evalset.json从能力清单提炼场景README 建议基于DESIGN_SPEC.md中的场景添加用例。若你的项目没有独立的设计规格文档可以从 agent.py 中注册的工具列表、各工作流 README如 product_fitting整理出核心能力清单逐项映射为用例为能力测试写入期望工具调用凡是应该调用某工具的用例务必通过expected_tool_use或完整格式中的intermediate_data.tool_uses声明工具名与参数这是轨迹匹配的数据来源运行验证执行make eval EVALSETyour_evalset.json或make eval EVALSETyour_evalset.json EVAL_CONFIGtests/eval/eval_config.json显式指定指标配置持续回归将新评估集纳入eval-all的遍历范围放入tests/eval/evalsets/目录即可被自动拾取作为 CI 或发布前的质量闸门。编写高质量评估集的实用建议README 最后给出四条经验均在本仓库中得到印证起步规模 3-5 个代表性用例basic.evalset.json 恰好以 2 个用例起步一个路由用例 一个缺参追问用例小而精先建立基线再扩充同时覆盖正常路径与边界情况route_product_fitting完整信息正常路由与ask_for_missing_params信息缺失的澄清行为正是一对 happy path edge case测试 DESIGN_SPEC 中的每项核心能力即每个工具/工作流至少有一个评估用例防止新增功能挤占旧能力的路由空间线上发现 Bug 时补充用例把生产环境暴露的问题固化为评估用例形成缺陷 - 用例 - 回归的闭环防止同类问题复发。对于更高级的评估选项如自定义评分器、多轮交互评估、更细粒度的判据配置README 指向 ADK 官方文档的进阶章节本文不再展开需要说明的是任何进阶配置都应在eval_config.json的criteria结构中扩展并保持与make eval调用链兼容。小结评估集是 GenMedia for Commerce 这类多工作流编排智能体的行为测试套件make eval三件套负责执行.evalset.json定义期望行为eval_config.json决定打分规则。从route_product_fitting、ask_for_missing_params两个真实用例可以看到评估集将正确的工具调用轨迹与合理的回复行为双双纳入验收标准——这也正是 ADK 评估体系与普通单轮 QA 测试的本质区别。上手时复制 basic.evalset.json、对照工作流 README 的能力清单补用例、用make eval跑通基线即可为智能体的每一次迭代建立可靠的行为护栏。【免费下载链接】adk-samplesA collection of sample agents built with Agent Development Kit (ADK)项目地址: https://gitcode.com/GitHub_Trending/ad/adk-samples创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考