Agent ArenaClickHouse Workshops

01 选出基座模型

模块 01 的讲师笔记,时间安排、讲解脚本、常见故障和重置步骤。

学员课程 01 选出基座模型 的讲师配套材料。

时间安排

用推荐的子集约 20 分钟;如果现场跑完整网格则需 45–60 分钟。

  • 8 分钟:配置 Langfuse 评估器(LLM Connection、correctness 代码评估器, 以及名为 llm_judge、会写出 agent-arena-llm-judge 分数的 LLM-as-a-judge evaluator)。请在你自己的投屏上现场走一遍, 而不是只丢一个 README 链接,这是整场课里最琐碎的一步。
  • 8 分钟:运行一个包含两个模型和一种提示词的子集(等待时讲解;这是引入 "为什么用每个正确答案的成本"这个框架的好时机)。完整网格通常需要 35–45 分钟,应该提前跑好,或留给学员自行安排。
  • 4 分钟:打开排行榜,确认最佳方案并说出它的 config_id。

讲解脚本

  • 把这一步定位为整门课程那个最基础的决策:由哪个模型驱动 agent,靠证据决定,而不是别人在另一种工作负载上跑出来的公开 榜单。
  • 强调打分发生在哪里:在 Langfuse 内部,而不是在 harness 内部。 harness 负责编排网格并记录完整的 Experiment Item;leaderboard 通过 Langfuse Public API 读取它们。这就是模块 00 里接好的同一个 Langfuse 项目,这里没有引入新工具或第二个结果存储。
  • 明确点出首要指标以及它为什么不是原始准确率:每个正确 答案的成本,针对这项具体任务的每美元质量。指出成本是根据 OpenRouter 的实时价格计算的,每次运行开始时都会刷新,而不是写死在 config.yaml 里的过期数字。
  • 在屏幕上展示网格的术语:六个模型分为闭源与开放权重 (claude-sonnet-5、gpt-5.6-luna、gemini-flash-lite / deepseek-v4-flash、qwen3.7-flash、glm-4.7-flash)× prompt(P1_zeroshot … P3_dialect),以及一个 config_id 就是 <model>__<prompt>。
  • 明确数据集的来历:仓库提供 20 个 YAML 问题;q019 和 q020 只用作 few-shot 保留样例,因此一个干净项目中的 arena-golden Experiment 数据集从 18 个条目开始。
  • 现场从 Leaderboard 的一行点进逐题结果,再点进它背后的 Langfuse trace,这就是模块 02 会深入展开的下钻习惯。
  • 落到冠军上,把它的 config_id 大声念出来,从这里开始的每个模块 都会回指它。

常见故障

  • Langfuse evaluators 没配好:harness 只等到 --eval-timeout(默认 180s),然后以非零退出码结束并指出缺失的 agent-arena-llm-judge score;这个 score 由名为 llm_judge 的 evaluator 定义写出。 跑 python -m scripts.provision_langfuse_evaluators 来配好由 OpenRouter 支撑的 judge, 修好 correctness evaluator 的 target/filter,然后用一个新的 --run-id 跑一个小的两模型、 一 prompt 网格;这里刻意没有本地结果兜底路径,因为 Langfuse 就是评测存储。
  • 占位的 OPENROUTER_API_KEY:网格里每次调用都以 401 失败。 这一点应该在模块 00 就确认过,但如果漏掉了,就会在这里 暴露:整整一次运行、所有配置都是零个正确答案。
  • 某个模型 slug 与 OpenRouter 的目录脱节:config.yaml 里的模型 id (例如 anthropic/claude-sonnet-5)是按撰写时 OpenRouter 上在线的名字固定下来的; OpenRouter 会弃用/重命名 slug。如果某个配置立刻以 "model not found" 这类失败报错,就查 https://openrouter.ai/api/v1/models 上当前的 slug,并与 config.yaml 比对。dashboard 的 /api/models 端点反映实时目录,所以 在那里发现不一致,是在跑 harness 之前快速发现脱节的办法。
  • ClickHouse 没初始化:如果模块 00 没有干净地跑完,harness 对 v_* 视图的查询会返回空结果或报错;每个配置回来的 outcome 都一样。重跑 scripts/arena.sh up。
  • 运行看起来卡住了:网格是 models × prompts(默认 6 × 3 = 18 个配置); 端到端可能要好几分钟。用 --models/--prompts 把它缩小以便 现场演示(见重置步骤)。

重置步骤

  • 确认 ClickHouse 已初始化:scripts/arena.sh up(幂等;可安全重跑)。
  • 跑一个便宜的子集而不是完整网格: python -m eval.harness --run-id demo2 --models qwen3.7-flash,gpt-5.6-luna --prompts P1_zeroshot,P3_dialect
  • 每次新的运行都给一个新的 --run-id(例如 demo2、demo3),这样它在 Leaderboard 上会是自己的一组行、在 Langfuse 里是自己的 Experiment,而不是 混进上一次运行里。
  • 如果卡点是 Langfuse evaluators,确认两者的 target 都是 Experiments、数据集 过滤条件是 arena-golden,然后用一个新的 --run-id 重跑上面那个便宜的子集。
  • 如果是 dashboard 本身卡住了(不是 harness),scripts/arena.sh stop 然后 scripts/arena.sh serve 只重启本地服务,不会动已初始化的 数据。

本页内容

ZH