hex-bench — local assistant benchmark

Personal-assistant agent benchmark against a local llama.cpp server

What is this?

This is mostly a vibe-coded benchmark report I've made to test out large language models that I am able to run locally, in an effort to see if any one of them will be able to sustain my personal assistant agent project – hex.

The models are being tested on the following hardware:

Why did scores jump? Scoring scheme v6 (2026-08-29) fixed the grader: it now sees the model's tool calls and results instead of only the final answer, so grounding it actually did — but that the old blind judge couldn't verify — no longer costs points (tool_use, verbosity). Every run in this report was re-scored under v6, so all numbers are comparable to each other — but not to screenshots of older versions of this page.

What this measures

hex-bench is a personal benchmark for the hex project that tests the personal-assistant workflow of this project: every task goes through Inspect AI’s react solver, which may call real tools — Todoist, Obsidian, web search — against an OpenAI-compatible endpoint: a local llama.cpp server, or a cloud API for the baselines. Each of the six categories below has three tasks (18 in the full suite); every task is scored per epoch.

cloud-baseline runs are made against bigger cloud models to establish a point of comparison of sorts.

score = mean of all scorer values for the task (0–1).

quality = mean of the rubric scorers: judge/gated_judge, loop_eval, clarification_eval.

protocol = mean of the deterministic compliance scorers: tool_used, tool_validity, fmt_*.

pass score ≥ 1.0 · partial 0 < score < 1 · fail score = 0.

Timings — eval t/s, gen t/s, and wall time come from sample_speed(); older runs may lack them (shown as –).

± / green band — 95% uncertainty on the pass rate at this sample count (Wilson interval). Overlapping bands mean the models are statistical ties, not a real ranking.

Results

pass (1.0) partial fail (0)

Category bars

Eval / generation speed

mean tokens/s per model call and mean task wall time

Score by category

Run history

Sample detail

per-sample score explanations from every scorer