About klbench

What runs well on Tanzu Platform?

klbench is an open leaderboard of LLMs running on the Tanzu GenAI tile, scored on what coding agents actually do: tool calls, structured output, debugging, multi-turn context, platform operations, and end-to-end agentic tasks across four agent frameworks.

Unlike cloud-only benchmarks, the same model behaves very differently depending on the hardware and engine underneath it. This site surfaces those differences as first-class filters — and correct-but-too-slow answers score zero, which keeps CPU-vs-GPU comparisons honest.

This site is hosted on the NDC foundation but displays results from every foundation that contributes data (CDC, DEV210, TDC, and others). Hosting location is unrelated to data provenance.

Test suite

148 YAML-defined tests across 18 categories: basic, tool_use, structured_output, coding, debugging, long_context, instruction, file_ops, multi_turn, reasoning, writing, research, monitoring, iac, ci_repair, repo_patch, sysadmin, and agentic — 46 of them tier:hard. Grading is deterministic wherever objectively checkable (execution checks, schema validation, graded partial credit); reasoning, writing, and research use an LLM judge from a different model family with per-criterion rubrics, K-vote shuffling, and a recorded judge fingerprint. Endpoint-served models use opencode plus a custom loop; subscription targets use their matching Claude Code or Codex harness. Agentic rows are scored per task rather than per framework so the fan-out cannot outweigh the rest of the suite.

Items are held to a published design contract, enforced in CI: the answer may not appear in the prompt, a diagnosis may not be graded by keyword presence, every rubric criterion must be failable, an item needs at least three independently-failing assertions, and a check must fail against an untouched fixture. On the current panel 99% of scored rows discriminate between models and 80% sit in the 30–70% difficulty band.

How scoring works

How the score is weighted

categoryitemsper-item weight
coding150.37%
instruction130.43%
iac120.46%
agentic120.46%
monitoring120.46%
structured_output110.51%
tool_use100.56%
reasoning80.69%
debugging80.69%
multi_turn80.69%
repo_patch70.79%
ci_repair70.79%
sysadmin60.93%
long_context60.93%
file_ops31.85%
writing31.85%
basic31.85%
research22.78%

Data pipeline

Every result is generated by the klbench runner (klbench run) and lands as a JSON file in results/<foundation>/<hardware>/ that must validate against schema/result-v3.schema.json. CI runs tools/validate.py on every pull request — invalid data cannot land — and the leaderboard rebuilds on merge.

How to contribute

  1. Clone the repo: git clone https://github.com/nkuhn-vmw/klbench
  2. Run klbench run --url <endpoint> --model <name> --foundation <name> --hardware cpu|gpu
  3. Validate: python3 tools/validate.py results/
  4. Commit the generated JSON under results/<foundation>/<hardware>/
  5. Open a pull request — CI validates the schema, the leaderboard rebuilds on merge