Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /