Lightweight harness
Kindi is an inference engine, not a harness. It serves an OpenAI-compatible endpoint. The harness sits above it and decides what to ask, what to check, and when to stop.
Why a harness
Section titled “Why a harness”A 2B model is not going to match a frontier model on raw capability. The interesting question is how much structure can recover. A harness can narrow the task, force a verification step, and keep the model inside a small action space. That is the same bet LocoAgente makes with larger local models, applied at the floor.
The shape
Section titled “The shape”- Take one task with a checkable result.
- Give the model one tool and one narrow instruction.
- Require a verification step before the answer is accepted.
- Record the trace: prompt, tool call, result, final answer, latency, tokens, watts.
- Run it 20 times and report the pass rate, not one good demo.
Initial tasks
Section titled “Initial tasks”| Task | Check | Why |
|---|---|---|
| Write a shell one-liner | Run it and compare the output | Short, checkable, common |
| Summarise a fixed document | Compare against a required fact list | Tests long-context reading |
| Refactor a small function | Run the tests | Tests code edits and verification |
| Use one tool | Inspect the tool call and the final answer | Tests the harness contract |
Metrics
Section titled “Metrics”Pass rate, turns per task, time to first token, total latency, tokens, and wall energy. A harness that improves the pass rate but triples the energy is not automatically a win.
- LocoAgente: orchestration patterns for local models
- LocoMusa: thinking-partner quality, pairwise judged
- LocoLLM: adapters and model evaluation
Status
Section titled “Status”Planned. The first version will be a small Python script, not a framework. If the pattern survives contact with the 2B model, it can be folded into LocoAgente.