返回

Cortex Agent 评测:既检查答案,也检查工具执行过程

RSS Snowflake AI 逐段翻译 编辑精选 原文 2026-03-13 精选于 2026-09-12 13:30

有效阅读仅保存在当前浏览器,用于「为你」推荐;暂停或清除记录。

DataHot 速览

文章指出,部署 Snowflake Cortex Agents 若没有评估框架,等于把 credits 花在未被衡量的输出上。Snowflake Cortex 提供原生评估、可观测性、追踪、监控与 AI 应用质量度量,可在数据、语义模型和 Agent 旁直接运行评估。作者建议从观察失败开始,先建 20–50 条评估样本,记录输入、标准答案、期望工具与业务上下文,并评估 Agent 的完整轨迹而非只看最终答案。

为什么值得关注:随着企业把 Agent 接入数据与语义模型,工具调用、SQL 执行和最终答案都可能独立失败,系统化评估与可观测性是上线可靠性的关键。文章给出了可落地的评估数据集与轨迹评估方法,适合正在构建 Data Agent 的团队参考。

本文目录 23 节
  1. Agent 评估有何不同
  2. 第 1 步:构建评估数据集
  3. 第 2 步:注册评估数据集
  4. 第 3 步:运行批量评估
  5. 第 4 步:跟踪状态并获取结果
  6. 第 5 步:CI/CD 质量门禁(预生产回归防护)
  7. Agent 评估的四个层级
  8. 第 1 层:黄金数据集测试
  9. 第 2 层:轨迹分析
  10. 第 3 层:基于指标的评判
  11. 第 4 层:生产监控
  12. 关键指标
  13. 1. 工具选择准确率(最高优先级)
  14. 2. 答案正确性
  15. 3. 逻辑一致性
  16. 4. 工具执行质量
  17. 5. 效率:成本与延迟
  18. 6. 治理遵从
  19. 构建你的第一个评估数据集
  20. 在 Snowflake 中运行评估
  21. 检查评估结果
  22. 实用的评估成熟度模型
  23. 最终要点

译文

AI 逐段翻译

如果你在没有评估框架的情况下部署 Snowflake Cortex Agents,本质上就是在为未经验证的输出浪费额度。持续评估成为驱动快速迭代和可靠改进的引擎。

Snowflake 的 Cortex 平台现在原生提供评估、可观测性、追踪、监控和 AI 应用质量度量能力。组织无需构建单独的评估基础设施,而是可以直接在 Snowflake 内、与数据、语义模型和 Cortex Agents 一起运行评估。

大多数团队从流程的错误一端开始:

  1. 更改提示词
  2. 更换模型
  3. 添加工具
  4. 希望情况会好转

拥有 20 多年经验的 ML 工程师 Hamel Husain 建议反过来做:

  1. 观察失败
  2. 收集示例
  3. 构建评估数据集
  4. 衡量质量
  5. 系统化改进
  6. 重新运行评估

目标不是找到一个完美的模型。

目标是创建一个能够持续改进的可重复系统。

对 Snowflake 客户而言,这自然对应为:

Agent 不是带检索步骤的聊天机器人。它会规划、选择工具、通过 Cortex Analyst 运行 SQL、通过 Cortex Search 进行搜索、调用自定义工具,然后组织答案。其中每一步都可能失败,而最终答案看起来仍然没问题。

因此,评估一个 agent 意味着评估整个轨迹:它是否选择了正确的工具、是否正确调用了工具、是否走了高效的路径,并得出了正确的答案?

Snowflake 通过 Agent Evaluations 和 AI Observability 支持这一点,涵盖质量、成本、延迟、追踪、工具使用和评估指标。

Agent 评估有何不同

第 1 步:构建评估数据集

从 20–50 个示例开始。这足以揭示失败模式,又不会让数据集整理本身变成一个大项目。对每个示例,记录:

  • 输入:原始用户问题
  • 基准真值:预期答案、数据载荷或 SQL 结果
  • 预期工具:agent 应调用哪个(些)工具(通过 Cortex Analyst 使用 Semantic View、Cortex Search、存储过程、外部工具)
  • 业务上下文:正确回答问题所需的规则、模式或定义

有意识地覆盖以下类别:

  • 应路由到 Semantic View 的结构化问题
  • 应路由到 Cortex Search 的非结构化问题
  • 需要同时使用两种工具的问题
  • 正确行为是请求澄清的模糊问题
  • 正确行为是拒绝回答的超出范围或访问受限问题

你可以从合成的前生产问题或从 AI_OBSERVABILITY_EVENTS 中捕获的真实生产日志获取用例。真实日志通常是更好的来源。

-- Create the base table holding your test cases

CREATE OR REPLACE TABLE MARKETING_CAMPAIGNS_DB.AGENTS.EVAL_SOURCE_TABLE (
    INPUT_QUERY STRING,
    GROUND_TRUTH_DATA VARIANT
);

-- Populating synthetic pre-production questions

INSERT INTO MARKETING_CAMPAIGNS_DB.AGENTS.EVAL_SOURCE_TABLE 
SELECT 
   'What was the total revenue for Q3 marketing?', 
   PARSE_JSON('{"expected tools":["SALES_TOOL"]}');

第 2 步:注册评估数据集

CALL SYSTEM$CREATE_EVALUATION_DATASET(
    'Cortex Agent',                                             -- Agent type
    'MARKETING_CAMPAIGNS_DB.AGENTS.EVAL_SOURCE_TABLE',          -- Source table
    'MARKETING_CAMPAIGNS_DB.AGENTS.MARKETING_CAMPAIGN_EVALSET', -- Dataset name
    OBJECT_CONSTRUCT(
        'query_text',     'INPUT_QUERY',
        'expected_tools', 'GROUND_TRUTH_DATA'
    )                                                           -- Column mapping
);

该数据集将成为你的回归套件,并可在每次运行中复用。

第 3 步:运行批量评估

评估以无服务器和异步方式运行,由 Snowflake 暂存区中的 .yaml 配置文件驱动。该配置定义 agent、数据集以及要计算的指标。

-- Ensure your session matches your Agent context location

USE DATABASE MARKETING_CAMPAIGNS_DB;
USE SCHEMA AGENTS;

-- Run the evaluation asynchronously

CALL EXECUTE_AI_EVALUATION(
    'START', 
    OBJECT_CONSTRUCT('run_name', 'pre_prod_baseline_run_v1'), 
    '@MARKETING_CAMPAIGNS_DB.AGENTS.CONFIG_STAGE/eval_config.yaml'
);

第 4 步:跟踪状态并获取结果

由于评估以无服务器和异步方式运行,请轮询作业状态并直接通过 SQL 提取性能指标:

-- Check if execution is running, failed, or completed

CALL EXECUTE_AI_EVALUATION(
    'STATUS', 
    OBJECT_CONSTRUCT('run_name', 'pre_prod_baseline_run_v1'), 
    '@MARKETING_CAMPAIGNS_DB.AGENTS.CONFIG_STAGE/eval_config.yaml'
);

-- Pull per-record results and scores

SELECT * 
FROM TABLE(SNOWFLAKE.LOCAL.GET_AI_EVALUATION_DATA(
    'MARKETING_CAMPAIGNS_DB', 
    'AGENTS', 
    'MARKETING_AGENT', 
    'cortex agent', 
    'pre_prod_baseline_run_v1'
));

结果包括输入、输出、基准真值、指标得分、评估类型、时长,以及每个得分的解释。解释通常是最有用的列,因为它告诉你 agent 为何被如此评判。

第 5 步:CI/CD 质量门禁(预生产回归防护)

将指标接入 Snowflake 任务或你的流水线工具,使回归能够阻止发布。对于 agent,门禁应关注工具行为,而不仅仅是答案质量。

如果答案正确率或工具选择低于可接受标准,则中止部署

SELECT
  AVG(IFF(metric_name='answer_correctness',
      eval_agg_score, NULL)) AS ac,
  AVG(IFF(metric_name='tool_selection_accuracy',
      eval_agg_score, NULL)) AS tsa
FROM TABLE(SNOWFLAKE.LOCAL.GET_AI_EVALUATION_DATA(
    'MARKETING_CAMPAIGNS_DB', 'AGENTS', 'MARKETING_AGENT',
    'CORTEX AGENT', 'pre_prod_baseline_run_v1'
));

上述阈值仅供参考。请根据你自己的基线运行结果来设定。在将其接入自动化之前,还要确认你账户中 GET_AI_EVALUATION_DATA 返回的确切指标列名。

Agent 评估的四个层级

第 1 层:黄金数据集测试

一组精心整理的问题、预期答案和预期工具路由。每当 agent 指令、语义视图、搜索服务或模型配置发生变化时运行它。例如:

该数据集将成为你的回归测试套件。

Snowflake 提供创建和管理评估数据集的功能,这些数据集可在多次评估运行中复用。

第 2 层:轨迹分析

Agent 轨迹揭示规划决策、工具选择、SQL 生成与执行、搜索调用和响应生成。要审查轨迹,而不仅仅是输出。

健康轨迹:

  • ✅ 选择了正确的 Semantic View
  • ✅ 仅在需要非结构化内容时使用 Cortex Search
  • ✅ 使用了最少的工具调用次数
  • ✅ 遵守了治理和基于角色的访问控制

不健康轨迹:

  • ❌ 一次调用即可时却调用了五个工具
  • ❌ 查询了错误的数据集或语义视图
  • ❌ 生成的 SQL 运行成功但回答了另一个问题
  • ❌ 忽略工具错误并临时编造答案

第 3 层:基于指标的评判

LLM 评判员依据基准真值和标准对 agent 行为评分,并为每个得分返回解释。对于 agent,评判员同时考察答案和执行路径。要问“是否使用了正确的工具、计划是否连贯、结果是否有工具输出支撑?”,而不是“文本是否完全匹配?”

第 4 层:生产监控

你的用户会生成最好的测试用例。AI Observability 让你监控已部署 agent 的请求、轨迹、反馈、成本、延迟和工具使用情况。将失败案例反馈回你的黄金数据集。

关键指标

1. 工具选择准确率(最高优先级)

agent 是否为任务调用了正确的工具:Semantic View、Cortex Search、存储过程或外部工具?工具选择错误应导致评估失败,无论答案质量如何,因为来自错误来源的正确答案只是运气。

2. 答案正确性

最终答案是否与基准真值一致?

问题:7 月销售额是多少?

预期:$12.4M

实际:$12.3M → 根据与基准真值的一致性评分

对于分析型智能体,要预先定义你的容差。决定 1230 万美元与 1240 万美元之间是算通过、部分得分,还是算失败。

3. 逻辑一致性

智能体在各个步骤之间是否推理连贯?这一点已内置于智能体轨迹中,并会标记不必要的工具调用、低效执行和不连贯的规划。

4. 工具执行质量

工具调用是否成功,并返回了智能体所需的内容?在你的评估设置支持的情况下,检查以下各项:

  • 可生成有效且正确 SQL 的 Semantic View 查询
  • 可返回可用结果的搜索调用
  • 对工具错误和空结果的妥善处理

5. 效率:成本与延迟

一个在 40 秒内通过六次工具调用得到正确答案的智能体,可能不如一个在 6 秒内通过一次工具调用得到答案的智能体。在跟踪质量的同时,还要跟踪工具调用次数、延迟和 token 成本。

6. 治理遵从

智能体是否遵守了调用方的角色和权限,并在应当拒绝时恰当地拒绝?要包含明确的负向测试用例。

关于检索指标的说明: 基于事实性和上下文相关性仍然重要,但对于智能体而言,它们仅适用于 Cortex Search 工具步骤。要将它们视为该工具上的子检查项,而不是智能体的主要指标。

构建你的第一个评估数据集

从 20–50 个示例 开始。不是 5 个。不是 5,000 个。只要足以揭示有意义的失败模式即可。

对于 Snowflake Sales Agent,你的评估数据集应为每个示例捕获以下核心组成部分:

  • 输入: 原始用户提示或问题。
  • 预期输出: 理想的 SQL 查询、数据载荷或自然语言响应。
  • 业务上下文: 准确回答所需的底层逻辑、数据模式或操作规则。

在 Snowflake 中运行评估

Snowflake 为 Cortex Agents 提供原生评估执行能力。

示例:

CALL EXECUTE_AI_EVALUATION(
'START',
OBJECT_CONSTRUCT(
'run_name','sales_agent_eval_01'
),
'@eval_stage/sales_agent_config.yaml'
);

这会针对已配置的数据集和指标启动一次评估运行。

检查评估结果

Snowflake 会公开详细的评估数据。轨迹级可观测性正是智能体评估回报最大的地方:

--Get evaluation details for a run

SELECT *
FROM TABLE(
SNOWFLAKE.LOCAL.GET_AI_EVALUATION_DATA(
'AI_DB',
'EVALS',
'SALES_AGENT',
'CORTEX AGENT',
'marketing_agent_eval_01'
)
);

-- Get traces for a specific record

SELECT * FROM TABLE(SNOWFLAKE.LOCAL.GET_AI_RECORD_TRACE(
  'AI_DB', 'EVALS', 'SALES_AGENT', 'CORTEX AGENT', '9346efc3-5dd6-4038-9b1a-72ca3d3b768c'
));

结果包括:

  • 输入
  • 输出
  • 真实基准
  • 指标得分
  • 评估类型
  • 持续时间
  • 评估解释

这让你可以检查用户请求、智能体推理流程、工具执行、反馈和评估运行。寻找带有负面反馈、工具调用次数异常偏高或延迟较长的问题。那些就是你下一批黄金数据集的候选。

实用的评估成熟度模型

这是 Hamel 所倡导的状态,也是 Snowflake 的评估架构所支持的状态。

最终要点

评估是一项产品开发活动,而不是一项报告工作。对于智能体而言,关键的转变在于 轨迹就是产品。将工具选择、执行路径和答案质量一起衡量的团队会进步得更快。只检查最终答案的团队会停滞不前,因为他们看不到智能体为何失败。

Cortex Agent Evaluations、AI Observability、智能体轨迹、基于评判的指标、评估数据集以及成本与用量可见性共同为你提供一个完整生命周期:观察、衡量、改进、重复。

评估 Snowflake Cortex Agents:衡量行为,而不仅仅是答案 最初发布于 Snowflake Builders Blog: Data Engineers, App Developers, AI, & Data Science(Medium),人们正在那里通过高亮和回应这个故事来继续对话。

补充来源

1 个信源 · 1 篇报道

这篇内容对你有用吗?

反馈只用于改善内容筛选,不等同于收藏

分享这条资讯
分享海报
保存图片
iOS 也可以长按图片保存