Zain Dana Harperforum · accountable orchestrator

Run a team of agents. Witness every step.

Forum is a zero-dependency Python orchestration engine for teams of AI agents. It turns a request into dependent tasks, runs independent tasks in parallel through local commands or model APIs, pauses for human approval, resumes interrupted runs, and records a replayable ledger. The standalone route-preflight skill helps a host inspect routing, context pressure, and runtime readiness before model work starts.

The trust comes from re-deriving the chain, not from the engine asserting it ran cleanly.

forum · engine v1.13.0 · standalone route-preflight skill v0.1.0 · witnessed ledger
Plate 01 A woven lattice: many strands, over and under, one cloth. The orchestration picture, drawn by the engine.

It routes the work, runs it, and records every move.

A run moves through five recorded transitions: select a specialist track, validate a plan, execute under witness, judge each result against its instruction, and assemble the final answer. Every transition enters a hash-chained ledger, so a reviewer can reconstruct the run without trusting a prose summary.

Around that core sit the parts that make a run trustworthy and lean: a bounded budget that stops a runaway loop, witnessed escalation up a ladder of stronger models, a check on whether the answer still covers the request, a delivery pass that tightens a verbose answer without dropping its terms, and clean seams for a peer brain to supply context and an outside verifier to check the work. Each is opt-in, each is witnessed, none is trusted on its word.

None of those roles communicate by convention or trust. Each receives a witnessed input, produces a witnessed output, and hands it forward. There is no back-channel.

The pains it answers.

These are real complaints from people running agent fleets. Each one drove a feature, and each maps to something forum does and witnesses.

a dollar becomes a hundred a RunBudget caps the run by model calls and wall-clock, stops it gracefully, and witnesses where it stopped
it drifts for hours after the answer is formed, forum checks how much of the request it still covers and escalates to a model judge when that floor flags, so drift lands on the record, not at hour three
which model even ran? every result records the model that produced it, and a failed task escalates up a ladder of stronger models on the auditable verdict
not another SaaS zero-dependency and self-hosted, model-agnostic across any command, any OpenAI-compatible server, or the Anthropic API; the daemon runs on your box
the loop has no contract a run carries a witnessed contract, organized context in and a bounded budget, and the ledger is the standing record of what was agreed and what happened
long loops blow the context window a run checkpoints at wave boundaries and resumes from the ledger, reusing what already succeeded, and injected context is bounded and pulled fresh per task
output is a wall of words a deterministic floor flags a verbose answer and an opt-in reviser tightens it, accepted only if the shorter version still covers the request
stale memory poisons the work forum plans and runs on organized context pulled from a brain through a clean seam; building and pruning that graph is a peer flagship's job, and forum consumes it, witnessed

The ledger is the differentiator.

A hash-chain ledger means each entry carries the hash of the entry before it. Alter any past record and every hash from that point forward no longer matches. You can replay the chain, recompute the hashes, and check the whole sequence yourself without asking forum whether it ran honestly. The bulky parts, prompts and outputs, are stored by the hash of their own bytes, so you can redact a sensitive body to its fingerprint and the chain still verifies; when the bodies are present, a deep check re-hashes each one and catches a swapped result.

A witnessed failure is more useful than an unwitnessed success.

When a task fails validation, the ledger records ok=false with the reason. Nothing is silently retried or promoted. The same record holds the budget stop, the escalation, the intent check, and the delivery revision, each chained to what it acted on, so a postmortem follows the causal links back to why a thing happened. A run that crashed picks up from that record, reusing what already succeeded.

Standard library only. Zero external dependencies.

The engine runs on Python’s asyncio using nothing outside the standard library. Four model-backed control roles sit above a layer of pluggable, model-agnostic executors; an executor can drive a model CLI, call an API, talk to a local OpenAI-compatible server, or run a stub for testing. The cheap, deterministic checks run first and the model is spent only when one of them earns it, the same discipline in routing, escalation, the intent check, and delivery.

Classifier reads the incoming task and picks the specialist track that handles it
Coordinator turns the routed request into a validated plan before any work starts
Validator judges each output against the original instruction and records the verdict
Synthesizer combines all witnessed results into one answer for the caller

Current state. How to run it.

Version 1.13.0, on PyPI as forum-engine. The full engine is here: durable ledger, routing, the control loop, model-agnostic executors, an HTTP and MCP daemon, the forum CLI, witnessed budgets and escalation, the intent and delivery ladders, typed data-flow between tasks, resumable runs, and the context and verification seams. The current core workflows are tested, linted, and type-checked, with no third-party runtime dependency. The license is fair-source: source-available, rights reserved to fund the research; the smaller utility tools that came out of this work stay permissive.

Watch the recorded workflow: one routed request becomes three dependency waves, three validator passes, 19 ledger entries, three checkpoints, and a chain-plus-payload verification pass.

The standalone forum-route-preflight skill is now a live v0.1.0 GitHub release for agent hosts that load local skills. It assumes the Forum CLI or a Forum source checkout is available, then checks route selection, context pressure, and runtime readiness before model work starts. The helper does not execute the supplied command and keeps safe_to_submit=false, so a human or host policy still decides whether to proceed.

$ curl -L -O https://github.com/HarperZ9/forum/releases/download/forum-route-preflight-v0.1.0/forum-route-preflight-skill-20260907-final.zip
$ curl -L -O https://github.com/HarperZ9/forum/releases/download/forum-route-preflight-v0.1.0/SHA256SUMS.txt
# ZIP SHA-256: 1827a9673414e73722ba7bd74be15316534bb6c66fc55ecc26845a5e5c953450
# Extract the forum-route-preflight folder into a host skill loader; this is not a marketplace approval.
$ pip install forum-engine
$ python examples/demo.py   # routes, plans, witnesses, then tamper-checks the ledger
$ python -m pytest
# core suite passes

Python, standard library only. Install it, run the demo, route a real task through it. Each example under examples/ is a short offline demonstration of one capability: the intent ladder, the delivery pass, a resumed run, an A/B of two runs. If something breaks or the ledger produces a result you cannot verify, that is exactly the kind of report I want.

GitHubHarperZ9/forum  ·  Skill releaseforum-route-preflight v0.1.0  ·  Skill ZIPdownload  ·  PyPIforum-engine  ·  Recorded demowatch the workflow  ·  ← all flagships  ·  the index