AgentToLeaP

January 21, 2026 · View on GitHub

【中文 | English

大模型智能体评测框架

一个全面且可扩展的评测框架,旨在衡量 LLM 智能体在各种复杂、长程任务评测基准上的性能。


✨ 特性

  • 📊 多榜单支持 - 开箱即用支持 GAIA, HLE, BrowseComp, Frames, WebWalkerQA 等。
  • 🚀 并行执行 - 高性能多进程引擎,支持并发任务评测。
  • 📈 自动报告 - 详尽的成功/失败分析,包含推理轨迹和自动评分。
  • 🛠️ MCP 集成 - 与 AgentDock 无缝连接,确保安全的工具使用和环境交互。
  • 🧩 可扩展设计 - 只需少量配置即可轻松添加新数据集和自定义评测逻辑。

🏗️ 架构说明

AgentToLeaP/
├── benchmarks/                 # 特定评测基准的配置和脚本
│   ├── gaia/                  
│   ├── hle/                    
│   └── ...                     # 其他 8+ 已集成的评测基准
├── context/                    # 智能体上下文管理
├── run_evaluation.py           # 并行执行的主入口
├── evaluate_and_report.py      # 核心评分和报告生成逻辑
├── gaia_report_generator.py    # GAIA 专用报告生成器
├── data_test_copy.py           # 评测任务具体实现
└── browser_processor.py        # 网页内容清洗与处理

📚 支持的评测基准

本框架为以下评测基准提供了预配置的评测逻辑和运行脚本。相关配置可以在 benchmarks/ 目录中找到(注意:数据集文件需按照数据集准备章节自行准备)。

评测基准描述来源
HLE-text-2158HLE 的纯文本任务子集。[Paper]
GAIA Validation通用 AI 助手评测基准。[Paper]
GAIA-text-103GAIA Validation 的纯文本任务子集。[Paper]
WebWalkerQA专注于网页导航及复杂问答任务的数据集。[Paper]
BrowseComp-EN网页浏览与理解任务评测。[Paper]
BrowseComp-ZHBrowseComp 的中文版本。[Paper]
SEAL-0旨在测试模型在面对冲突网页信息时推理能力的基准。[Paper]
Frames用于评估事实准确性、信息检索及多步推理能力的综合测试集。[Paper]
XBench-DeepSearch深度研究型智能体评测基准。[Website]

🚀 快速上手

1. 环境准备 (推荐)

运行评测最简单的方法是使用我们预构建的 Docker 镜像(支持 amd64/arm64 架构),其中包含所有必要的依赖项:

docker pull yuyangfu/agenttoleap-eval:v2.0
docker run -dit --name agenttoleap --gpus all --network host -v $(pwd):/workspace yuyangfu/agenttoleap-eval:v2.0
docker exec -it agenttoleap /bin/bash
cd /workspace

2. 快速测试 (可选)

在运行完整的评测基准之前,如果您想通过单个任务快速验证环境,可以使用根目录下的 quickstart.py 脚本:

  1. 配置: 打开项目根目录下的 quickstart.py,在 [USER CONFIGURATION] 区域填入您的 API_KEYMODEL_NAMEMANAGER_URL
  2. 运行:
    # 在项目根目录下执行
    python quickstart.py
    
  3. 查看结果: 交互日志和推理链将保存在 outputs/quickstart_results/dialog.json 中。

3. 数据集准备

由于版权限制,我们不直接提供原始数据集文件。您需要从官方渠道下载数据集,并将其转换为所需的 .jsonl 格式。

对于 benchmarks/ 目录中已集成的每个评测基准,您需要在对应文件夹下放置一个与目录同名.jsonl 文件(例如 benchmarks/gaia/gaia.jsonl)。

数据格式要求: 每一行必须是一个包含以下字段的 JSON 对象:

字段名类型描述
task_idString / Int任务的唯一标识符
QuestionString发送给模型的完整问题或指令
Final answerString / Num用于自动评测的标准答案
file_nameString / List(可选) 与任务相关的附件文件路径

示例:

{"task_id": "validation_0", "Question": "法国的首都是哪里?", "Final answer": "巴黎"}

4. 运行评测基准

进入评测基准目录并执行提供的 run.sh 脚本:

cd AgentToLeaP/benchmarks/gaia
# 编辑 run.sh 以配置你的 API_KEY 和 MODEL_NAME
bash run.sh

⚙️ 配置说明

评测主要通过 run.sh 脚本中的环境变量进行配置。

1. 主模型配置 (Primary Model)

变量名示例值描述
MODEL_NAME"Qwen3-4B"待评测模型名称 (API 中的 model 字段)
BASE_URL"https://api.openai.com/v1"主模型 API 基础地址
API_KEY"sk-..."主模型 API 密钥
RESULT_DIR_NAME"Qwen3-4B-test-0109"结果标识符,用于生成输出目录名

2. 辅助模型配置 (Auxiliary Model)

变量名示例值描述
PROCESSOR_MODEL_NAME"Qwen3-14B"用于摘要和长上下文处理的辅助模型
PROCESSOR_BASE_URL"..."辅助模型 API 基础地址

3. 评测环境配置

变量名示例值描述
MANAGER_URL"http://localhost:8000/mcpapi"AgentDock 服务地址
EVALUATION_ROOT_DIR"/path/to/outputs"评测输出的根目录
FILES_DIR"/path/to/files"评测基准附件/文件所在目录

4. 控制与采样参数

变量名默认值描述
NUM_PROCESSES10并行评测的工作进程数
MAX_INTERACTIONS50每个任务的最大交互轮数
USE_LLM_JUDGE"true"是否使用 LLM 作为裁判 (推荐)
PASS_K8Pass@k 采样次数
TEMPERATURE1.0采样温度
TOP_P1.0Top-p 采样
MAX_TOKENS16384单次生成的最大 Token 数

📊 结果与报告

评测完成后,结果保存在 EVALUATION_ROOT_DIR 指定的目录中。

目录结构

evaluation_outputs/ (EVALUATION_ROOT_DIR)
├── _temp_raw_outputs/                      # [所有任务] 原始评测日志
│   └── gaia_Qwen3-4B-test-0109/            # 命名格式为 ${BENCHMARK}_${RESULT_DIR_NAME}
│       ├── task_id_1/
│       │   ├── dialog.json                 # 模型对话轨迹
│       │   ├── result.json                 # 完整的任务结果
│       │   └── trace.json                  # 执行追踪

├── [特定评测报告]                           # 成功/失败分析及 MD 报告
│   └── Qwen3-4B-test-0109/
│       ├── success/                        # 正确回答任务的详情
│       ├── fail/                           # 错误回答任务的详情
│       └── *_main_report.md                # 可读性强的汇总报告
  • dialog.json: 包含思考过程和工具调用的完整交互轨迹。
  • result.json: 每个任务的最终输出和评分结果。
  • *_report.md: 带有推理轨迹的详细成功/失败分析。

➕ 添加自定义评测基准

本框架设计为易于扩展。要添加新的评测数据集:

  1. 创建目录: 在 benchmarks/ 下创建一个新文件夹,例如 my_custom_bench

  2. 准备数据: 在该文件夹内创建一个同名.jsonl 文件(例如 my_custom_bench.jsonl)。

  3. 数据格式: 每一行必须是一个包含以下字段的 JSON 对象:

    字段名类型描述
    task_idString / Int任务的唯一标识符
    QuestionString发送给模型的完整问题或指令
    Final answerString / Num用于自动评测的标准答案

    示例 (my_custom_bench.jsonl):

    {"task_id": 1, "Question": "1 + 1 等于几?", "Final answer": "2"}
    
  4. 配置脚本: 从任何现有基准(如 gaia)复制 run.sh 文件到新目录。调整环境变量指向你的新数据,即可开始评测。

📄 开源协议

本模块是 AgentCPM-Explore 项目的一部分,遵循 Apache-2.0 协议开源。