harness~/research/harnessAll projects

Type a section name and press Enter. Use “help” for the list.

Figures: softened for dark viewingDisplay only; image files are unchanged.
← The work

Project record · Reviewed October 9, 2026

Harness

How can agent work be continued, checked, and improved across models?

Current stateImplemented multi-model runtime with evidence-checked coordination and supervised source changes; local helper qualification remains experimental

Approach

I built Harness to keep tools, recorded work, and working context under one runtime as models change. Native and MCP tools share that runtime.

For Saoirse, its resident agent, continuity depends on retained task state and explicitly retrieved context. The runtime records what she was given, what she tried, and what resulted, so changes to prompts, tools, and coordination can be examined.

Why this approach

Why own the runtime?

Inside an existing coding-agent host, a plugin has to intercept the operations the host exposes. Harness owns dispatch directly, so it can record proposals and outcomes, apply its own checks, and preserve task state at the point of execution. That is why I kept Harness separate from agent-swarm instead of porting the plugin wholesale.

A candidate can be compared with an incumbent against frozen checks, and the decision to adopt it can remain a separate, reversible operation.

Improvement that carries forward

The longer-term aim is for an agent to improve the methods its successor inherits: tools, prompts, coordination, and eventually the challenges it learns from. The comparison and rollback mechanisms provide a way to test whether inherited changes improve later work, using checks the successor did not write.

Where it stands

Typed session events and immutable result blobs support resumable work, task evidence, handoffs, and a derived SQLite telemetry view. Configured memory and project-context sources are fetched through the normal dispatcher under explicit time and input limits. The terminal interface exposes activity, queued prompts, cancellation, and inspection; Session Desk also constructs the same Harness kernel for its Saoirse conversation.

Native subagents, rules-based routing, and ensemble, panel, draft-and-refine, and escalation strategies coordinate work with shared execution and usage budgets. MCP, plugins, model providers, local inference, and Claude Code, Codex, and Antigravity adapters connect different execution paths. Harness-dispatched permission checks do not imply confinement of every provider-native tool.

Source-improvement work prepares exact incumbent and candidate snapshots, runs bounded comparisons, and records explicit adoption and rollback. The selected source is launched in a new process; the management installation remains available. Separately, resident-helper studies measure intent, repair, and relevance decisions against frozen rules.

What the work has shown

A completed answer still has to pass the task checks

Ensemble selection now excludes completed candidates whose recorded evidence fails the task requirements. A retained regression test constructs a failing majority and a passing minority: the failing answers cannot win the vote. When a judge is used, it sees passing candidates and its own result must satisfy the same frozen checks.

Requirements can refer to exact output content, recorded tool arguments and results, or an explicit human review. Execution completion and acceptance therefore remain separate states. These checks establish the specified evidence contract; the evaluator does not infer arbitrary semantic correctness.

A source change can be compared, selected, and rolled back

The source experiment runner retains exact source snapshots, evaluation inputs, and results. Promotion and rollback are explicit journaled actions, and a new process can launch from the selected private copy. A retained demonstration compares a known historical regression with its fix and exercises selection and rollback.

That demonstration records a passed comparison while keeping activation qualification false. It uses fake providers and an operator-declared validation partition. It establishes the mechanics of supervised source replacement, while a useful newly authored improvement still needs its own evaluation.

Small helpers were measured against the rules they would replace

The original resident-helper study used twenty authored cases each for intent, repair, and relevance, with two repeats per profile. Qualification required at least eighteen correct decisions per function, every critical case, and a net gain over frozen lexical rules. Those rules scored 16/20, 12/20, and 14/20 respectively.

None of the plotted profiles qualified. Later binary-signal and specialist CPU-ranker studies also recorded no activation qualification. The chart reports both decision quality and warm latency.

Experiments and evidence

Selected recorded studies. Each keeps its original conditions, date, interpretation, and limits.

Development measurements · 10 September 2026

Small resident helpers: accuracy and warm latency

The original study measured message intent, repair signals, and scoped context relevance on twenty authored cases each. Each profile ran twice. Qualification required at least eighteen correct decisions per function, every critical case, and a net gain over frozen lexical rules.

Four relevance cases per block were resolved by eligibility rules before inference. The plot includes those decisions in the relevance score. Warm latency excludes startup and warmups; the runs used a shared RTX 5070 host and a four-CPU container quota.

Original helper-study chart. Accuracy varies across profiles and tasks; no profile meets the activation criteria. Warm latency varies from tens to hundreds of milliseconds.
Original saved figure: initial profiles, examples added to prompts, and newer small profiles. Sixty authored development cases, repeated. No held-out qualification.Open full-size figure ↗
Read the figure’s measurements as a table
Mean correct decisions across two repeats; latency is the slowest function p95
Profile / settingIntent / 20Repair / 20Relevance / 20Warm p95
4B Q4 / GPU161117184 ms
0.6B Q4 / GPU10614443 ms
0.6B dynamic Q4 / GPU9514106 ms
0.6B Q8 / GPU9514100 ms
1.7B dynamic Q4 / GPU14119153 ms
0.6B Q4 / CPU11514491 ms
4B Q4 / GPU / examples151216143 ms
1.7B dynamic Q4 / GPU / examples1691091 ms
0.6B Q4 / GPU / examples1471484 ms
Qwen3.5 0.8B dynamic Q4 / GPU131114167 ms
Qwen3.5 0.8B dynamic Q4 / CPU131114856 ms
Frozen lexical rules161214Not measured

Latency and accuracy led to different verdicts

Low latency did not make a helper useful at the required decision boundary. None of the plotted profiles qualified. Each profile was compared with the existing lexical rules.

Subsequent work and limits

Later studies narrowed the task to binary signals and examined a specialist CPU ranker. Their saved summaries also record no activation qualification. They are included separately in the download; they are not points on this plot or fresh held-out confirmation.

Artifacts and records

What remains open

  • Demonstrate reliable correction-to-action continuity during substantial daily work, including interruption and recovery.
  • Qualify a useful local helper against frozen rules and fresh evaluation cases.
  • Evaluate newly authored source improvements with acceptance criteria that cover the behavior worth preserving.
  • Extend the resident conversation across interfaces, including live remote use through Saoirse, while preserving session state and a reliable way to revoke access.

Questions this work contributes to