vercel/next-evals-oss

Evals for Next.js up to 15.5.6 to test AI model competency at Next.js

Next.js Evals – 它是什么

Next.js Evals 是一个开源测试框架,用于自动测试 AI 编码代理编写或修改小型 Next.js 应用的能力。它附带一组 evals(带有任务描述的小型 Next.js 项目)和一组 experiments,用于定义哪个 AI 模型(Claude、GPT、Gemini 等)应尝试解决每个任务。该框架在 Vercel 托管的沙箱中运行代理,让其编辑项目,然后执行隐藏断言以检查结果是否正确。


为什么重要

  • 为基于 LLM 的代码生成代理在真实 Next.js 代码上提供可复现的基准。
  • 支持多个提供商和可配置的“推理努力”级别,让研究人员比较成本与质量。
  • 与 Vercel 的沙箱和 AI-Gateway 集成,因此 Vercel 自己的 CI 使用的相同环境可以在本地使用。

核心组件(如 README 中所述)

组件 角色
Eval 夹具 (evals/…) 小型 Next.js 应用加上 PROMPT.md(任务)和 EVAL.ts(隐藏测试)。仓库仅存储从 vercel/next.js 同步的这些文件的副本。
Experiments (experiments/*.ts) 将模型(例如 claude‑opus‑5)与一组 evals 关联的配置,定义 pass@4/1 行为,并记录定价信息。
脚本 (pnpm …) 用于安装、同步夹具、检查凭据、运行单个 eval、运行所有更改的 evals、导出结果等的辅助命令。
沙箱凭据 通过 OIDC 令牌或 VERCEL_TOKEN、VERCEL_TEAM_ID、VERCEL_PROJECT_ID 三元组访问 Vercel 沙箱。
代理密钥 提供商特定的 API 密钥(AI_GATEWAY_API_KEY、CLAUDE_CODE_OAUTH_TOKEN、OPENAI_API_KEY 等),由所选模型使用。
导出 (pnpm export-results) 生成 agent-results.json,格式与公共排行榜 nextjs.org/evals 使用的格式一致。

如何使用(快速入门流程)

  1. 安装 – pnpm install --frozen-lockfile(仅 pnpm 仓库)。
  2. 同步 evals – pnpm sync-evals 从上游 vercel/next.js 仓库拉取实际的 Next.js 夹具。
  3. 提供凭据 – 复制 .env.example → .env.local,并填写 OIDC 令牌或 Vercel 令牌三元组,以及所需的任何模型 API 密钥。
  4. 检查一切 – pnpm preflight 会告诉你是否有缺失。
  5. 运行测试 – pnpm eval:smoke claude-opus-5 使用 Claude 模型运行一个 eval,以验证沙箱和凭据是否正常工作。
  6. 运行真实实验 – pnpm eval:run <experiment…>(或 pnpm eval 进行交互式选择)为所选实验运行所有更改的 evals,缓存结果以避免重新运行未更改的工作。
  7. 发布 – 成功运行后,pnpm export-results 创建 agent-results.json;提交该文件并合并 PR 到 main 以更新公共排行榜。

谁可能觉得有用

  • LLM 研究人员 想要一个具体的、Next 特定的编码基准。
  • Vercel 或其他地方的产品团队 评估新的模型提供商用于代码补全。
  • 开源贡献者 想要添加新的 Next.js 任务或新的模型配置。

README 中注明的限制/范围

  • 实际的 eval 夹具不存储在此仓库中;每次运行 pnpm sync-evals 时从 vercel/next.js 同步。
  • 运行该框架需要 Vercel 沙箱凭据;没有它们,evals 无法执行。
  • 成本估算依赖于模型 API 报告的使用量和静态价格表;价格是快照,可能过时。
  • 公共排行榜显示 pass@4 分数;发布自动化单独记录 pass@1,但不发布。

结论

vercel/next-evals-oss 是一个真正的、生产级工具,用于在 Next.js 任务上基准测试 AI 编码代理。它将 Vercel 的沙箱、多个 LLM 提供商和可复现的评估套件结合在一起,并将结果反馈到公共 Next.js 评估排行榜。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目