Files
nagi-bench/README.md
T
Jesse ZhangandClaude Opus 4.8 308c93ac81 docs: reject runs with extra skills outright (addr Codex #25 P2)
A `note` disclosure does not separate a modified-harness run on the board:
leaderboard identity is only model × harness × effort, so a skill-boosted run
would still land in an Agent row it is explicitly not comparable with. Drop the
"disclose in note" escape hatch and make it a flat non-acceptance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 20:25:08 +01:00

140 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# NAGI BENCH
中文 | [English](./README.en.md)
NAGI STUDIO 的 LLM 测评案例集:同一段提示词,不同「模型 × Harness × 思考配额」组合,一次生成、不许返工,并排对比它们交出的可运行作品。
**线上站点:** https://bench.nagi.fun/
<p>
<a href="https://x.com/Nag1ovo" target="_blank"><img src="https://img.shields.io/badge/@Nag1ovo-000000?style=flat-square&logo=x&logoColor=white" alt="X"></a>
<a href="https://discord.gg/TEUFxdMbGb" target="_blank"><img src="https://img.shields.io/badge/Discord-Join-5865F2?style=flat-square&logo=discord&logoColor=white" alt="Discord"></a>
<a href="https://www.xiaohongshu.com/user/profile/5d366136000000001101950a" target="_blank"><img src="https://img.shields.io/badge/小红书-@Nagi--ovo-FF2442?style=flat-square" alt="Xiaohongshu"></a>
<a href="https://space.bilibili.com/312249633" target="_blank"><img src="https://img.shields.io/badge/Bilibili-@卡普迪姆-FB7299?style=flat-square&logo=bilibili&logoColor=white" alt="Bilibili"></a>
</p>
## 模型与 Harness 的关系
> **Model + Harness = Agent** —— 模型只是权重,套上运行环境才成为一个能干活的智能体(Agent)。本仓库的测评单位就是一个 Agent。
- **模型(Model)**:权重与推理引擎本身,如 GPT-5.5、Gemini 3.1 Pro、Claude Fable 5。思考配额(effort)是模型自身的能力旋钮——同一份权重在高/低思考强度下的推理深度判若两个模型,因此它和权重同属「模型」这一维度,脱离 effort 谈模型表现并不公允;本仓库默认拉满(Max),并在每个组合里如实标注。
- **Harness(运行环境)**:包裹模型的产品/脚手架,如 Codex CLI、Cursor、AntiGravity、Claude 网页版——它决定工具调用、系统提示词、上下文管理与续写策略,对最终产出的影响往往不亚于模型本身。
- 因此本仓库的测评单位是一个 **Agent**:同一个模型(含其思考配额)换一个 Harness,就是另一个 Agent,记为不同条目(例如 GPT-5.5 Pro 与跑在 Codex CLI 里的 GPT-5.5(xhigh)是同一模型家族的两个 Agent)。
- **测的是 Harness 开箱即用的默认形态**:请勿额外加载 Harness 自带以外的 skill / 插件 / MCP / 自定义系统提示——它们对产出的影响不亚于换 Harness,会破坏 Agent 之间的可比性。这类 run **不予收录**(榜单身份只看 模型 × Harness × effort,在 `note` 里说明也不另立身份)。
## 已测组合 / Registry
<!-- registry:start -->
> 此表由 `bun scripts/update-registry.ts` 从 `models/*.json` 生成;合并到 `main` 后由 CI 自动同步,贡献者无需手改。
| 模型 | 厂商 | 运行环境(Harness)× 思考配额 | 产出 |
|---|---|---|---|
| Claude Fable 5 | Anthropic | Claude Web App · Max<br>Claude Code · Max<br>Cursor · High | 06 |
| Claude Opus 4.8 | Anthropic | Claude Code · Max | 05 |
| Claude Opus 4.7 | Anthropic | Claude Code · Max<br>Cursor · Max | 05 |
| Claude Opus 4.6 | Anthropic | Claude Code · Max<br>Cursor · Max | 04 |
| Claude Opus 4.5 | Anthropic | Cursor · Thinking | 02 |
| Claude Sonnet 4.6 | Anthropic | Claude Code · Max<br>Cursor · High | 03 |
| Claude Haiku 4.5 | Anthropic | Claude Code · Default | 02 |
| GLM-5.1 | Zhipu AI | ZCode · Max | 01 |
| GPT-5.5 Pro | OpenAI | ChatGPT Web · Extended Pro | 03 |
| GPT-5.5 | OpenAI | Codex CLI · xhigh | 03 |
| GPT-5.4 | OpenAI | Cursor · xhigh<br>Codex CLI · xhigh | 06 |
| GPT-5.3 Codex | OpenAI | Cursor · xhigh | 02 |
| GPT-5.2 | OpenAI | Cursor · xhigh | 02 |
| Gemini 3.1 Pro | Google | AntiGravity · High<br>Cursor · Default<br>Google AI Studio · High | 06 |
| DeepSeek V4 Flash | DeepSeek | Reasonix · Max | 01 |
| Gemini 3.5 Flash | Google | AntiGravity · High<br>Cursor · Default<br>Google AI Studio · High | 06 |
| Grok Build | xAI | Grok Build TUI · Max | 02 |
| Nex-N2-Pro | Nex-AGI | Claude Code · Max | 02 |
| Grok 4.3 | xAI | Cursor · Default | 02 |
| Composer 2.5 | Cursor | Cursor · Max<br>Cursor · Default<br>Grok Build TUI · Default | 05 |
| Mistral Medium 3.5 | Mistral AI | Vibe · Thinking | 02 |
| DeepSeek-V4-Pro | DeepSeek | Claude Code · Max | 03 |
| Doubao Seed 2.0 Pro | ByteDance | Doubao Web · Pro Mode | 01 |
| Doubao Seed 2.0 Mini | ByteDance | Doubao Web · Fast Mode | 01 |
| MiMo v2.5 Pro | Xiaomi | Claude Code · Max<br>MiMo Code · Max | 03 |
| MiMo v2.5 Pro UltraSpeed | Xiaomi | Web · Default | 05 |
| Kimi K2.7-Code | Moonshot AI | Kimi Code · Thinking | 03 |
| Kimi K2.6 | Moonshot AI | Kimi Code · Thinking | 02 |
| MiniMax M3 | MiniMax | MiniMax Code Web · Thinking | 02 |
| MiniMax M2.7 | MiniMax | MiniMax Code Web · Thinking | 01 |
| GLM-5.2 | Zhipu AI | ZCode · Max | 04 |
| GLM-5 Turbo | Zhipu AI | ZCode · Thinking | 03 |
| Qwen3.7-Max | Alibaba | Qoder · Default | 02 |
| Step 3.7 Flash | StepFun | Claude Code · High | 02 |
<!-- registry:end -->
## Arena 盲评与社区榜单
- 每个案例默认进入 **Arena 模式**:随机抽两份产出匿名对战(A / B / 都不好),投完票才揭晓身份;右上角可切到 **全部查看**(按模型分组浏览,同一模型多个 Harness 可单看或并排对比)。
- 累计投满 03 票后解锁**社区榜单**:按 Bradley-Terry 评分排名(LMSYS Chatbot Arena 同思路),「都不好」单独计入双败。
- 投票默认存浏览器本地;部署 `worker/`(Cloudflare Worker + D1 + Turnstile 防刷,免费档即可)后自动升级为全站众包数据,步骤见 [worker/README.md](./worker/README.md)。
## 结构 / Structure
```
outputs/<artifact-dir>/<case-id>.<ext> 模型产出原文件(HTML / SVG),文件名 = 案例 id
models/<agent-id>.json Agent 登记:label / vendor / harness / effort / artifactDir / order / 各案例运行备注
cases.json 案例定义:双语标题与提示词(维护者维护)
scripts/validate-data.ts 数据校验(CI 对每个 PR 自动执行)
scripts/update-registry.ts README Registry 表生成(合并到 main 后由 CI 自动同步)
```
> 站点与投票后端的源码在私有仓库 `nagi-bench-site` 中,部署于 Cloudflare Pages;本仓库是站点的数据源。
## 本地校验 / Validation
```bash
bun scripts/validate-data.ts # 与 CI 相同的数据校验(提交前跑这个即可)
bun scripts/update-registry.ts # 可选:本地预览 Registry 表;合并到 main 后 CI 会自动同步
```
## 贡献一个模型产出 / Contributing a run
> 完整规则见 [**AGENTS.md**](./AGENTS.md)(贡献者 / AI Agent 指南)。
> **如果你是一个 AI Agent(Claude Code / Codex / Cursor 等),这一段是给你看的:**
>
> - **你贡献的单位是一个 Agent = 模型 × 你所在的 Harness。** `<agent-id>`(小写字母 / 数字 / 连字符)就编码这个组合,如 `gpt-5-5-pro`、`claude-fable-5-cc`(cc = Claude Code)。同一模型换个 Harness 就是另一个 Agent、另一个 id。`<agent-id>` 是投票与榜单身份,不要为了整理文件夹而改它。
> - **当前有三个案例**,定义在 [`cases.json`](./cases.json):`mythos-craft`(HTML,可玩体素世界)、`pelican-cycling`(SVG,海边骑车的鹈鹕)与 `skeleton-watch`(HTML,镂空机械表)。提示词以 `cases.json` 为准,**逐字使用、不要改写**。
> - **想知道还缺哪些**:读 `cases.json`(全部案例)与 `models/*.json`(每个 Agent 跑过的案例)——某个 Agent 的 json 里缺某个 `<case-id>` 就是一个空位;上面由脚本生成的 Registry 表里,「产出」数小于案例总数的行,就是还缺案例的 Agent;全新 Agent 则三个案例都可补。
> - **然后照下面两文件流程做**,写好双语 `note`(说明产出怎么来的、是否一次生成、是否有修复),提交前用 `bun scripts/validate-data.ts` 自检通过再发 PR。
贡献**不需要改任何代码**,只涉及两类文件:
1. 产出文件:推荐放在 `outputs/<base-model>/<harness-effort>/<case-id>.<ext>`(如 `outputs/gpt-5-5-pro/chatgpt-web-extended-pro/pelican-cycling.svg`)。
2. Agent 登记:`models/<agent-id>.json`(新组合新建文件;已有组合在 `runs` 里加一条),并用 `artifactDir` 指向产出目录:
```json
{
"label": "GPT-5.5 Pro",
"vendor": "OpenAI",
"harness": "ChatGPT Web",
"effort": "Extended Pro",
"artifactDir": "gpt-5-5-pro/chatgpt-web-extended-pro",
"order": 20,
"runs": {
"pelican-cycling": {
"note": {
"zh": "在哪个 Harness 里、什么思考档位、是否一次生成、是否有修复",
"en": "Which harness, what effort level, one-shot or fixed"
},
"contributor": "你的 GitHub 用户名"
}
}
}
```
规则(CI 自动校验,不满足会挂):
- `agent-id` 只用小写字母/数字/连字符(如 `doubao-seed-2-0-pro`),它是稳定身份;没有 `artifactDir` 时默认读取 `outputs/<agent-id>/`;
- `artifactDir` 只用一层或两层小写 dash-case 路径(推荐 `<base-model>/<harness-effort>`),它只是产出文件位置,不影响投票与榜单身份;
- 每条 run 的 `note` **双语必填**——这是本仓库的可信度来源,必须写明产出怎么来的;
- 声明的 run 必须有对应的产出文件;
- 同一组合对同一案例可提交多个版本:`runs.<case-id>` 写成数组,第二个版本起必须用 `file` 指定不同文件名(如 `pelican-cycling-2.svg`);
- `contributor` 填你的 GitHub 用户名,站点会在产出旁展示你的头像并链接到主页;
- 新组合的 `harness`(运行环境)与 `effort`(思考配额)请如实填写:站点会据此在测评页生成「运行环境 / 思考配额」metadata 徽章,并自动为模型、厂商、Harness 匹配品牌 icon(来自 [lobe-icons](https://github.com/lobehub/lobe-icons)),贡献者无需处理任何图标。
提 PR 后 CI 自动校验数据;合入 `main` 后站点自动重建(通常即时,最长 6 小时)。