Agent+模型 评测榜单网站:详细设计

Agent+模型 评测榜单网站:详细设计

本文档设计一个类似 arena.ai/leaderboard 的榜单网站,但评测对象是 Agent 框架 × 模型 × 配置 的组合(如 Claude Code + DeepSeek V4 Flash),分数来自自动化任务评测,而不是人类投票。

1. 目标与范围

目标

  • 展示各「Agent+模型」组合在不同任务类别上的得分、成本、耗时、稳定性,并给出排名。
  • 支持下钻:从榜单到条目详情,再到单个任务的完整运行轨迹,结果可追溯、可复现。
  • 支持内部持续评测:新模型或新 Agent 版本接入后自动跑评测、自动更新榜单。

非目标(首版不做)

  • 人类盲测投票与 Elo 排名(后续可作为开放题的补充信号)。
  • 面向公众的在线对话或试用功能。
  • 多租户开放提交(首版仅内部提交,见第 10 节)。

2. 参考站点分析

从 arena.ai 榜单首页可以看到几个值得借鉴的设计:

  • 顶部分类导航:Overview、Agent、Chat、Code、Image、Video,每个分类下还有子榜单(如 WebDev、Search、Document)。
  • 概览页是多个模块的聚合:Top 10 榜单、实时 Agent 会话(显示正在运行的模型和当前动作,如 Writing a file、Running bash)、Pareto 前沿、新发布模型排名、博客与更新日志。
  • Agent 榜单直接用百分比得分,并在模型名后标注推理强度(如 Max、High),说明「同一模型的不同配置」是独立条目。
  • Pareto 前沿:横轴成本(美元/任务),纵轴得分,列出非被支配的条目。这对选型最有价值。
  • 透明性内容:How It Works、Leaderboard Changelog,说明方法论和每次榜单变动。
  • 其官方博客有专门讨论 Harness 对编码 Agent 影响的文章,侧面印证:把 Harness 作为一等公民放进榜单是合理的。

我们的取舍:保留「分类导航 + 概览聚合 + Pareto + 更新日志」的骨架,把「投票」换成「自动评测运行」,把「实时会话」换成「实时评测运行队列」。

3. 信息架构

复制代码
/                       概览(Overview)
/leaderboard/:category  分类榜单(overall、coding、terminal、tool-use、enterprise、safety、...)
/entries/:id            条目详情(一个 Agent+模型+配置 的组合)
/compare?a=&b=          两个条目对比
/pareto                 成本-得分 Pareto 前沿
/tasks                  任务浏览(任务库、难度、通过率分布)
/tasks/:id              任务详情(描述、判分方式、各条目在此任务上的表现)
/runs/:id               单次运行详情与轨迹回放
/live                   实时评测队列与进度
/methodology            评测方法、评分公式、已知局限
/changelog              榜单变更日志
/admin/*                管理后台(内部)

4. 页面设计

4.1 概览页

  • Top 10 卡片:当前总榜前 10,显示排名、Agent、模型、得分、成本。右上角可切换分类(Best Overall、Best Coding 等)。
  • 实时评测:最近运行的若干条,显示条目、任务、状态(排队、运行中、完成、失败)和当前动作。
  • Pareto 迷你图:成本-得分散点图加前沿线,点击进入 /pareto。
  • 新上榜:最近新增条目及其首次排名。
  • 更新日志摘要:最近几次榜单变化。

4.2 分类榜单页(核心页面)

表格列:

列 说明
排名 带置信区间的排名(见 6.3),并列时显示相同名次
Agent Harness 名称与版本
模型 模型名、版本、推理强度等配置
得分 当前类别加权得分(百分比),带 ±置信区间
稳定性 pass^k 或多次运行方差
成本 平均每任务美元成本
耗时 平均每任务墙钟时间
任务数 / 运行数 样本量,样本不足时置灰并加提示
更新时间 最近一次完整评测时间

交互:

  • 筛选:Agent、模型厂商、开源/闭源、是否含已弃用版本、成本区间。
  • 排序:任意数值列。
  • 视图切换:能力榜、性价比榜、速度榜、稳定性榜(同一张表的不同默认排序和附加列)。
  • 行展开:显示各子维度得分的迷你条形图。
  • 样本量不足的条目默认折叠在「暂定」分组,避免误导。

4.3 条目详情页

  • 头部:Agent、模型、配置、首次上榜时间、当前各类别排名。
  • 雷达图:各能力维度得分,可叠加另一个条目对比。
  • 成本-耗时-得分三个指标的历史趋势(随评测批次)。
  • 任务级结果表:每个任务的通过率、平均成本、失败原因分布,可按维度和难度过滤。
  • 失败归因饼图:模型能力、Harness 问题、环境问题、超时预算。
  • 版本沿革:同一 Agent 或同一模型的不同版本对比链接。

4.4 运行详情与轨迹回放

  • 时间线视图:每一步的思考摘要、工具调用、参数、返回结果、文件 diff、耗时、token。
  • 顶部摘要:最终判分结果、检查点明细、失败归因、总成本。
  • 文件变更视图:任务结束时与初始状态的 diff,禁区文件被改动会高亮。
  • 支持按步骤搜索、折叠长输出、下载原始轨迹 JSON。

4.5 Pareto 页

  • 散点图:横轴成本(对数轴可选),纵轴得分,点大小可映射耗时。
  • 前沿线与前沿列表:列出所有非被支配条目。
  • 可按类别、Agent、开源/闭源筛选,并支持设置成本上限查看「预算内最佳」。

4.6 其他页面

  • 对比页:并排展示两个条目的各维度得分、成本、同任务结果差异;差异最大的任务置顶,便于分析原因。
  • 任务浏览:展示任务库规模、各类别难度分布、每个任务的平均通过率;隐藏集任务只显示聚合统计,不显示内容。
  • 方法论页:评分公式、重复次数、置信区间算法、失败归因规则、版本锁定策略、已知局限。
  • 更新日志:每次榜单变更的时间、原因(新增条目、任务集更新、判分修复)、影响范围。

5. 系统架构

复制代码
┌──────────────┐   提交评测请求    ┌──────────────┐
│ 管理后台/CLI │ ───────────────▶ │  API 服务    │
└──────────────┘                  │ (FastAPI)    │
                                  └──────┬───────┘
                                         │ 入队
                                  ┌──────▼───────┐
                                  │ 任务队列     │
                                  │ (Redis/Temporal)│
                                  └──────┬───────┘
                                         │
                      ┌──────────────────▼──────────────────┐
                      │ Runner 集群(Docker/K8s 沙箱)      │
                      │  Harness 适配器 → 模型网关(LiteLLM) │
                      │  环境镜像 / Mock 服务 / 判分脚本     │
                      └──────┬───────────────────┬──────────┘
                             │ 轨迹/产物         │ 结果
                      ┌──────▼──────┐     ┌──────▼──────┐
                      │ 对象存储    │     │ PostgreSQL  │
                      │ (S3/MinIO)  │     │             │
                      └─────────────┘     └──────┬──────┘
                                                 │ 聚合作业
                                          ┌──────▼──────┐
                                          │ 榜单快照表  │
                                          └──────┬──────┘
                                                 │
                                          ┌──────▼──────┐
                                          │ Web 前端    │
                                          │ (Next.js)   │
                                          └─────────────┘

关键设计原则

  • 原始结果与榜单快照分离:Runner 只写原始运行记录;聚合作业读取原始记录,生成不可变的榜单快照。网页只读快照,保证榜单可回溯、不因后台重算而抖动。
  • 模型网关统一计量:所有 Agent 的模型请求经过网关,由网关统一记录 token、成本、延迟和完整请求响应,不依赖各 Agent 自带日志。
  • 沙箱隔离:每次运行使用全新容器,限制网络,只开放网关和 Mock 服务的地址。
  • 判分与执行解耦:Agent 运行结束后,在独立容器里用原始测试文件覆盖并执行判分,防止 Agent 改测试作弊。

6. 评分与排名

6.1 评分口径

  • 单次运行得分 s ∈ 0, 1:测试全过为 1,部分检查点通过按比例给分,超时或超预算为 0 并标记原因。
  • 条目在某任务上的得分:该任务 k 次运行(默认 3~5 次)的均值。
  • 维度得分:该维度任务得分的加权均值,权重按难度设定。
  • 类别总分:各维度得分按配置权重加权,权重放在版本化配置中,变更会写入更新日志。
  • 稳定性:pass^k,即 k 次运行全部通过的任务比例;另报告任务得分的标准差。

6.2 成本与耗时

  • 成本:网关记录的 token 乘以单价,按每次评测批次的价格快照计算,价格变化不回溯改历史。
  • 耗时:从容器启动 Agent 到判分前的墙钟时间,不含镜像拉取和判分。

6.3 排名与置信区间

  • 对每个条目,按任务做自助法(bootstrap)重采样,得到类别总分的 95% 置信区间。
  • 排名规则:条目的名次 = 1 + 置信区间下界高于该条目上界的条目数。区间重叠的条目名次并列,避免把噪声当成差异。
  • 样本量门槛:任务数或运行数低于阈值的条目标记为「暂定」,不参与名次计算,只在暂定分组展示。

6.4 Pareto 前沿

  • 以(成本,得分)为二维点,条目 A 支配 B 当且仅当 A 成本不高于 B、得分不低于 B,且至少一项严格更优。
  • 前沿 = 所有不被任何条目支配的条目;按成本升序排列即得到前沿线。
  • 为避免噪声,可选用得分置信区间下界做保守版前沿。

6.5 综合性价比(可选)

使用 TOPSIS:指标为得分(越大越好)、成本(越小越好)、耗时(越小越好)、稳定性(越大越好),按配置权重做加权归一化,计算与理想解的相对接近度,作为「综合榜」排序依据。权重和方法写入方法论页。

7. 数据模型

核心表(PostgreSQL):

表 关键字段 说明
harnesses id, name, version, adapter_ref Agent 框架及版本
models id, provider, name, version, endpoint, open_source 模型及端点
entries id, harness_id, model_id, config_json, config_hash, status, first_seen_at 榜单条目,config_hash 由全部会影响结果的变量计算
tasks id, category, dimension, difficulty, weight, spec_ref, visibility(public/hidden), version 任务元数据,spec_ref 指向任务目录
task_sets id, name, task_ids, version 评测任务集版本
eval_batches id, entry_id, task_set_id, price_snapshot, started_at, finished_at, status 一次完整评测批次
runs id, batch_id, task_id, attempt, score, checkpoints_json, status, failure_class, cost_usd, tokens_in, tokens_out, duration_s, steps, trajectory_uri 单次运行
judgments id, run_id, judge_model, rubric_version, scores_json, human_checked LLM 评审记录(仅开放题)
snapshots id, created_at, task_set_id, config_version, reason 一次榜单快照
snapshot_rows snapshot_id, entry_id, category, score, ci_low, ci_high, rank, stability, cost, duration, n_tasks, n_runs 快照中的每行数据,网页直接读取
changelog id, snapshot_id, kind, description, created_at 榜单变更日志

要点:

  • entries 以 config_hash 去重,任何变量变化都产生新条目。
  • runs 只追加,不修改;重判分产生新的 run 记录并标记 supersedes。
  • 轨迹(几十 KB 到几 MB)放对象存储,数据库只存 URI 和摘要字段。
  • failure_class 取值:model、harness、env、timeout、budget、judge_error,用于失败归因统计。

8. API 设计

REST + JSON,前端通过 Next.js 服务端渲染调用,榜单类接口可加缓存。

接口 说明
GET /api/leaderboard?category=&snapshot=&agent=&vendor=&sort= 榜单表格数据,默认最新快照
GET /api/entries/:id 条目详情与各维度得分
GET /api/entries/:id/tasks 条目在各任务上的结果汇总
GET /api/compare?a=&b= 两个条目对比数据
GET /api/pareto?category= 散点数据与前沿列表
GET /api/tasks, /api/tasks/:id 任务浏览(隐藏任务只返回聚合统计)
GET /api/runs/:id 运行摘要;/api/runs/:id/trajectory 分页返回轨迹
GET /api/live 当前队列与运行中的任务(SSE 或轮询)
GET /api/changelog 变更日志
POST /api/admin/batches 提交评测批次(管理员)
POST /api/admin/snapshots 触发聚合并生成快照(管理员)

约定:所有榜单接口都可带 snapshot 参数查看历史快照;响应附带 snapshot_id、生成时间和任务集版本,便于前端展示「数据截至」。

9. 前端设计

  • 技术栈:Next.js(App Router)+ TypeScript;表格用 TanStack Table;图表用 ECharts(散点、雷达、趋势都能覆盖);样式用 Tailwind;国际化支持中英文。
  • 渲染策略:榜单页服务端渲染并缓存,筛选和排序在客户端完成;轨迹回放页按需分页加载,长输出虚拟滚动。
  • 组件:LeaderboardTable、RankBadge(带置信区间提示)、CostScoreScatter、RadarChart、RunTimeline、DiffViewer、CategoryTabs、FilterBar、LiveRunList。
  • 体验细节 :
    • 条目名称统一显示为「Agent · 模型 (配置)」,如 Claude Code · DeepSeek V4 Flash (Max)。
    • 得分旁显示 ± 区间,鼠标悬浮显示样本量与评测批次时间。
    • 暂定条目用虚线边框或置灰,并带说明提示。
    • 支持深色模式、移动端表格横向滚动并固定前两列。
    • 所有图表支持导出 PNG 和 CSV。

10. 后端与评测流水线

10.1 评测批次流程

  1. 管理员在后台选择条目与任务集,或由新模型/新 Agent 版本触发。
  2. API 创建 eval_batch,把「条目 × 任务 × 重复次数」展开成运行作业入队。
  3. Runner 取作业:拉取环境镜像,启动沙箱,注入 Harness 与网关配置,运行 Agent。
  4. 运行结束后在独立容器判分,写入 runs;轨迹与产物上传对象存储。
  5. 批次完成后,聚合作业计算各类别得分、置信区间、排名、Pareto,写入新快照并追加更新日志。
  6. 快照经管理员审核后设为「已发布」,前端才可见。

10.2 Harness 适配器

  • 统一接口:run(task, model_config, limits) 返回运行结果与轨迹。
  • 每个 Agent 一个适配器,使用其无头或非交互模式;适配器负责配置环境变量、工作目录、工具权限和超时。
  • 适配器自身有版本,并计入 config_hash,适配器修复也会产生新条目,避免新旧数据混用。

10.3 失败处理

  • 基础设施失败(镜像拉取、网关超时、容器崩溃)自动重试,最多 2 次,不计入模型得分。
  • 超时、超步数、超预算:按失败计分并标记 failure_class。
  • 失败归因:先按规则分类(如容器退出码、网关错误、判分脚本异常),无法确定的进入人工复核队列。

10.4 防作弊与可信度

  • 测试文件和判分脚本放在 Agent 不可写的位置,判分时用原始文件覆盖。
  • 检查补丁 diff 是否触碰禁区文件、是否出现硬编码测试答案、是否删除失败用例。
  • 任务分「公开」与「隐藏」两组:隐藏集不展示内容,只用于定期复测,对比公开集得分以发现过拟合。
  • 新任务上线前用标准解与空解各跑一遍,确认前者满分、后者零分。

11. 权限、安全与运维

  • 角色:访客(只读榜单,若部署在内网可走公司 SSO)、评测工程师(提交批次、管理任务)、管理员(发布快照、修改权重、管理用户)。
  • 审计:所有发布、权重变更、任务集变更写入审计日志。
  • 密钥管理:模型 API Key 只存放在网关,Runner 与 Agent 沙箱拿不到真实密钥,只持有网关颁发的短期令牌,并带预算上限。
  • 沙箱安全:禁止访问内网和公网(白名单除外),限制 CPU、内存、磁盘和运行时长。
  • 可观测性:Runner 与网关输出指标(队列长度、成功率、平均耗时、成本),接入监控和告警;批次预算超限自动暂停。
  • 备份:数据库每日备份,对象存储开启版本和生命周期策略,旧轨迹可转冷存储。

12. 非功能需求

项目 目标
榜单页首屏 缓存命中下 1 秒内
轨迹页加载 首屏 2 秒内,长轨迹分页加载
评测吞吐 以并发 Runner 数线性扩展,单批次可暂停与恢复
可复现性 任何榜单行都能追溯到批次、运行、轨迹和判分脚本版本
数据保留 原始运行记录永久保留,轨迹至少保留 12 个月

13. 里程碑

阶段 内容 产出
M1(约 2 周) 数据模型、网关、Runner 最小可用、跑通一个 Harness 和 2~3 个模型;总榜表格页、条目详情页 可展示的首版榜单
M2(约 2~3 周) 轨迹回放、分类榜单、Pareto、对比页、聚合作业与置信区间、更新日志 可日常使用的内部榜单
M3 任务浏览、隐藏集复测、失败归因统计、管理后台、审核发布流程 可审计、可运营
M4 新版本自动触发回归评测、历史趋势、开放题的 LLM 评审与人工校准、开放外部提交 持续运行的评测平台

14. 主要风险与对策

风险 对策
评测成本过高(长任务、多次重复、多条目) 分层评测:先小集冒烟,再全量;预算上限与自动暂停;按价格快照核算
任务或判分脚本有缺陷导致误判 标准解与空解校验;失败归因与人工抽检;发现问题后重判分并写入更新日志
排名波动被误读为能力差异 展示置信区间,区间重叠并列,样本不足的条目标暂定
过拟合榜单 隐藏集复测、公开任务定期轮换、方法论页明确局限
Harness 或模型版本漂移导致历史不可比 config_hash 锁定全部变量,变化即新条目,不覆盖旧数据
外部模型 API 不稳定 网关层重试与限流,基础设施失败不计入得分

15. 待确认事项

  • 榜单只对内部使用,还是计划对外公开?这决定认证方式、隐藏集策略和合规要求。
  • 首批要接入的 Agent 与模型清单,以及任务类别的优先级。
  • 模型成本口径:按官方定价、公司内部结算价,还是自托管的折算成本。
  • 是否需要人类偏好投票作为补充信号,以及开放题的评审方式。
相关推荐
诚小纯1 小时前
跑了 21 次只有 1 次透明:聊聊一个生图 API 的"透明继承"机制
人工智能·github
镜子AI1 小时前
教培机构AI推荐系统实战:概念漂移检测算法——为什么“去年有效的推荐今年可能失效“
人工智能·算法
用户2991422196801 小时前
GitHub 热榜项目:日榜(2026-10-09)
人工智能·开源·github
AliCloudROS1 小时前
计算巢Agent部署:免费试用,降低企业 AI 应用探索门槛
人工智能
组工部管理能手李哥1 小时前
政务办公场景下,私有化知识库+智能体方案的技术实践与思考
大数据·人工智能
俊哥V1 小时前
每日 AI 研究简报 · 2026-10-08
人工智能·ai
吴佳浩1 小时前
一文讲透推理引擎性能指标:TTFT、TPOT、KV命中率、并发,到底对应 vLLM / SGLang 的哪个参数?
人工智能
FII工业富联科技服务1 小时前
Intelligent UI重构工业软件交互:从固定界面到动态生成式交互
人工智能·ui·重构