跳转至

评估方法综述

概述

AI Agent的评估与传统LLM评估有本质不同。传统LLM评估关注的是单次输入-输出的质量,而Agent评估需要考虑多步骤交互、工具使用、环境操作等复杂因素。如何全面、准确地评估Agent能力,是推动Agent技术进步的关键问题。

Agent评估 vs LLM评估

维度 LLM评估 Agent评估
输入输出 单次prompt → response 多轮交互序列
评估对象 文本质量 任务完成度
环境依赖 无外部环境 依赖工具和环境
非确定性 较低 高(多路径、多策略)
评估成本 较低 较高(环境搭建、运行时间)
中间过程 不关注 需要评估(效率、安全性)

评估维度

graph TD
    A[Agent评估维度] --> B[任务完成度]
    A --> C[效率]
    A --> D[安全性]
    A --> E[成本]
    A --> F[用户满意度]

    B --> B1[成功率]
    B --> B2[部分完成度]
    B --> B3[正确性]

    C --> C1[步骤数]
    C --> C2[Token消耗]
    C --> C3[时间消耗]

    D --> D1[安全违规数]
    D --> D2[权限使用合理性]
    D --> D3[数据保护]

    E --> E1[API调用成本]
    E --> E2[计算资源]
    E --> E3[人工干预成本]

    F --> F1[主观评分]
    F --> F2[偏好排序]
    F --> F3[可信度感知]

    style A fill:#e3f2fd

任务完成度(Task Completion)

最核心的评估维度,衡量Agent是否成功完成了目标任务。

二元成功率

\[ \text{Success Rate} = \frac{|\{t \in T : \text{completed}(t)\}|}{|T|} \]

部分完成度

对于复杂任务,可以分解为子目标并计算完成比例:

\[ \text{Partial Completion}(t) = \frac{\sum_{i=1}^{n} w_i \cdot \mathbb{1}[\text{subgoal}_i \text{ achieved}]}{\sum_{i=1}^{n} w_i} \]

其中 \(w_i\) 是第 \(i\) 个子目标的权重。

效率(Efficiency)

衡量Agent完成任务所消耗的资源。

步骤效率

\[ \text{Step Efficiency} = \frac{\text{Optimal Steps}}{\text{Actual Steps}} \]

Token效率

\[ \text{Token Cost} = \sum_{i=1}^{N} (c_{\text{input}} \cdot n_{\text{input}}^{(i)} + c_{\text{output}} \cdot n_{\text{output}}^{(i)}) \]

其中 \(c\) 为每token价格,\(n\) 为token数量,\(N\) 为总步骤数。

安全性(Safety)

评估Agent在执行任务过程中的安全行为:

  • 权限遵守:是否只使用授权的工具和操作
  • 副作用控制:是否产生不必要的环境变更
  • 敏感信息处理:是否正确保护隐私数据
  • 内容安全:生成的内容是否合规

成本(Cost)

\[ \text{Total Cost} = C_{\text{LLM}} + C_{\text{tool}} + C_{\text{compute}} + C_{\text{human}} \]

各组成部分:

成本类型 说明
\(C_{\text{LLM}}\) LLM API调用费用
\(C_{\text{tool}}\) 外部工具/API调用费用
\(C_{\text{compute}}\) 计算资源(沙箱、GPU等)
\(C_{\text{human}}\) 人工审核和干预的人力成本

用户满意度(User Satisfaction)

  • 主观评分:用户对结果的满意度评分(1-5分)
  • 偏好排序:多个Agent结果的用户偏好对比
  • 可信度:用户对Agent输出的信任程度
  • 可用性:交互体验的流畅度和直观性

评估方法分类

离线评估(Offline Evaluation)

使用预定义的测试集和标准答案进行评估:

  • 优点:可重复、成本低、易于比较
  • 缺点:覆盖范围有限、与真实场景有差距

在线评估(Online Evaluation)

在真实环境中部署Agent并收集用户反馈:

  • 优点:最真实的评估
  • 缺点:成本高、难以控制变量

模拟评估(Simulation-based Evaluation)

构建模拟环境来评估Agent:

  • 优点:可控、可重复、支持大规模测试
  • 缺点:模拟环境与真实环境的差距

LLM-as-Judge

使用LLM作为评估器:

evaluation_prompt = """
请评估以下Agent的任务完成情况:

任务目标:{task_description}
Agent执行过程:{agent_trajectory}
最终结果:{final_output}

请从以下维度评分(1-5):
1. 任务完成度
2. 执行效率
3. 安全性
4. 输出质量

并给出总体评价。
"""

注意:LLM-as-Judge存在偏见(position bias, verbosity bias),需要配合人工评估使用。

评估框架

通用评估框架设计

class AgentEvaluator:
    def evaluate(self, agent, task_suite):
        results = []
        for task in task_suite:
            # 设置环境
            env = self.setup_environment(task)

            # 运行Agent
            trajectory = agent.run(task, env)

            # 多维度评估
            score = {
                "completion": self.eval_completion(trajectory, task),
                "efficiency": self.eval_efficiency(trajectory),
                "safety": self.eval_safety(trajectory),
                "cost": self.eval_cost(trajectory),
            }
            results.append(score)

        return self.aggregate(results)

轨迹评估

Agent的执行轨迹(trajectory)包含了丰富的评估信息:

\[ \tau = (s_0, a_0, o_0, s_1, a_1, o_1, \ldots, s_T, a_T, o_T) \]

其中 \(s_t\) 是状态,\(a_t\) 是动作,\(o_t\) 是观察。

评估维度:

  • 动作合理性:每一步动作是否合理
  • 恢复能力:遇到错误时的恢复能力
  • 规划质量:是否有清晰的执行计划
  • 工具使用:工具选择和使用是否恰当

实践建议

  1. 多维度评估:不要仅关注成功率,综合考虑效率、安全性和成本
  2. 分层评估:从简单任务到复杂任务逐步评估
  3. 消融研究:评估各组件(记忆、工具、规划)的贡献
  4. 对比基线:与无Agent方案(纯LLM)对比
  5. 统计显著性:多次运行取平均,报告置信区间

参考文献

  1. Liu, X., et al. "AgentBench: Evaluating LLMs as Agents." ICLR 2024.
  2. Mialon, G., et al. "GAIA: A Benchmark for General AI Assistants." ICLR 2024.
  3. Zhuge, M., et al. "Agent-as-a-Judge: Evaluate Agents with Agents." arXiv:2410.10934, 2024.

交叉引用: - 基准测试详情 → 基准测试 - 人类评估 → 人类评估与对齐 - 可靠性 → 可靠性与鲁棒性


评论 #