Convergence, Not Exit Code Zero
kahn beginner 3 min read
What this means for you
A passing exit code does not mean an agent is done. An agent can claim success, leave the work half finished, and still return zero. KAHN takes a different position on the record: the success signal is convergence. The run is done when the work converges, not when the shell stops complaining.
The pitch
Every agent run is classified into one of a small set of outcomes the operator can reason about: converged, partial, escaped, aborted, unknown. The dashboard sorts by what matters first: a single fresh regression always outranks a noisy agent with hundreds of stale failures.
Who it’s for
The engineer who has been burned by a green CI run hiding a half-finished agent task, and the operator who wants the dashboard to tell them what to look at next without writing a query.
Proof points
- Outcome vocabulary is fixed and named: converged, partial, escaped, aborted, unknown
- Severity weighting is published in the product spec: regression weighs 1000, failed counts weigh 10 each capped at 200, partial counts weigh 1 each capped at 200, in-flight runs add 5
- The non-regression ceiling is 405 by construction, well below the regression weight of 1000, so a fresh regression on a quiet agent always wins over a backfill of 1500 partials on a noisy one
- Tested: the severity constants are exported as named values and covered by a sibling unit test, so the invariant cannot drift silently
journey title An agent run, the way KAHN classifies it section Start Operator schedules run: 5: Operator Agent begins thinking: 4: Agent section Work Agent calls tools: 4: Agent Agent reaches a checkpoint: 3: Agent section Outcome Converged (work done): 5: Operator Partial (some work, retry): 3: Operator Escaped or aborted: 1: Operatorneighbors on the map
- The Operator at a 27-inch Monitor explaining who KAHN is for in a single paragraph