Skip to content

KCORES/tavern-bench

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,325 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tavern-bench

cover

tavern-bench KCORES 大模型软件工程能力测试框架

本项目基于 Kimi Code CLI 改造:在独立沙箱里让被测模型通过终端 Agent(kimi)阅读需求、修改代码;再用**测试驱动模型(driver)**与自动化 harness 评估实现质量. 核心指标是被测模型的工程能力(能否在真实仓库约束下交付可运行、可验收的改动), 而非单次对话得分.


这个项目解决什么问题

角色 职责
被测模型(subject) 使用本仓库提供的 kimi CLI, 在复制的模板工程里做 Plan → 编码 → 工具调用;步数受 max-steps 等限制.
Driver 模型 仅参与编排与评审(计划门禁、继续编码提示、requirement-checklist.md 逐文件结构化评审);不计入被测模型 API 步数.
模板与验收包 benchmark-project-template/ 提供「需求文档 + 可运行工程」;同级 *-validate 提供黑盒脚本、manifest.toml 与 checklist.

一次完整 run 会:复制模板 → 合并 Kimi 配置与 .env → 注入需求文档启动被测 Agent →(可选)driver 结构化督促 → 结束时写入 .kimi-benchmark/report.json / report.md / report.html(git diff、validate 黑盒/性能、checklist 完成度等).


SillyTavern 模板与 CLI harness 闭环

正式的大型基准模板是 benchmark-project-template/SillyTavern-1.17.0. 我们为该模板实现了 cli/st-cli.mjs(st-cli)

  • 可启动嵌入式 SillyTavern(本机随机回环端口), 无需浏览器即可对接 /api/harness.
  • stdio 模式:通过标准输入输出收发 NDJSON, 与被测 Agent 的工具调用循环衔接, 覆盖 numeric tools、回合与自检场景(协议见模板内 DOCUMENTS/harness-protocol.md).

这样一来, 被测模型可以通过 CLI + stdio 持续与 SillyTavern 交互, 配合校验包 SillyTavern-1.17.0-validate(npm、smoke、numeric selftest、stdio 场景脚本等), 形成从「改代码」到「黑盒断言」的 harness 闭环. 校验包侧的稳定需求 ID(如 ST-BB-*)由 driver 对照 requirement-checklist.md 评审;验收逻辑不与被测模型共享「标准答案式」的具体实现提示.

更小规模的冒烟模板见 hello-world / hello-world-validate.


快速开始

环境:Python 3.12+, 推荐使用 uv.

uv sync --all-extras --all-packages

复制 .env.example 为仓库根或沙箱内的 .env, 填写 BENCHMARK_SUBJECT_*(被测模型)与 BENCHMARK_DRIVER_*(driver);细则见 .env.exampleDOCUMENTS/benchmark-spec.md.

发起一次 benchmark(示例):

uv run kimi benchmark run \
  --template benchmark-project-template/SillyTavern-1.17.0 \
  --project-name bench \
  --model-slug your-model-id \
  --reasoning-effort high \
  --requirements benchmark-project-template/SillyTavern-1.17.0/DOCUMENTS/requirement-document.md

沙箱目录默认为 benchmark-<project>-<model>-<effort>-<utc-time>/. 更多参数(--dest-parent--max-steps--config-file 等)见:

uv run kimi benchmark run --help

仅重跑评估阶段(不再起被测 Kimi 子进程):

uv run kimi benchmark reports ./benchmarks/<your-sandbox-dir>

一键脚本(新开或续跑)见 scripts/run_benchmark.py, 完整操作说明见 USAGE.md.


产物与可视化报告

每次运行或 benchmark reports 后, 在沙箱 .kimi-benchmark/ 下可查看:

文件 说明
report.json 结构化结果:metricsapi_efficiencydiff_summaryblackbox / performance / anti_cheatchecklist_driver_review 与聚合完成度等.
report.md 人类可读的 Markdown 摘要.
report.html 本地静态页(需在同目录下用 python -m http.server 等方式访问), 从 report.json(及可选 state.json)渲染仪表盘.

文档索引

文档 内容
USAGE.md 中文使用说明:配置优先级、benchmark run / reports、MCP、续跑、run_benchmark.py.
DOCUMENTS/benchmark-spec.md 配置合并、子进程环境变量、driver JSON、报告字段与 validate 布局.
DOCUMENTS/original-prompt.md 早期需求与设计初衷.
AGENTS.md 仓库架构、make prepare / make test、开发约定(上游 Kimi CLI 工作流仍以该文件为准).

开发与上游关系

  • Python 包名仍为上游风格的 kimi-cli, 命令行入口为 kimi / kimi-cli.
  • 日常格式、测试与检查:make preparemake formatmake checkmake test(详见 AGENTS.md).

tavern-bench 强调:在同一套可重复模板与 harness 下, 公平对比不同被测模型的工程交付能力;SillyTavern CLI 模式是其中最重要的一条「真实软件」闭环.

About

大模型软件工程能力测试框架

Resources

License

Contributing

Security policy

Stars

6 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors