awdelphi — Aither World Delphi
Docs · Source · pip install git+https://github.com/Aitherium/awdelphi.git · The Aither World
The Aither World is an operating system for agents — a Linux you can hand to one, the runtimes it works in, and the tools it works with. awnix is the Linux underneath it; awdelphi is one of its 46 bricks — each installs on its own, runs offline, and needs no account.
Start here: Run a multi-round anonymous expert panel on a question and get a converged answer with a trace.
Anonymous multi-round expert panels that converge to a decision with a trace — or honestly report no consensus.
One agent's confident take on a decision is one opinion. A panel that reads each other's names converges on the loudest voice, not the best argument. A Delphi panel answers the question in independent rounds: round 1 is private, the monitor feeds back only the anonymized group view (counts + rationales, no names), the experts revise, and the panel stops at convergence (agreement and stability) or max rounds. The deliverable is the verdict, the full round trace, and — when there is no consensus — the dissent map. Nobody forces a consensus.
Quickstart
pip install awdelphi # the CLI + engine
pip install "awdelphi[mcp]" # + the MCP server for coding agents
awdelphi run "Should the fleet pin the model pool to the DGX Spark?" \
--experts demiurge,athena,hydra --context "..." --arena
awdelphi status <run_id>
awdelphi show <run_id> --json
Experts are real roster agents dispatched through the AitherOS gateway
(forge_subagent): each panel member answers from its own identity, profile,
and expertise. The client talks to the gateway at
http://127.0.0.1:8182/mcp (env AWDELPHI_GATEWAY) with the session bearer
from ~/.aither/session-bearer. If the gateway is unreachable the run fails
loudly — no rounds were run — never silently.
The protocol in one screen
| rule | why |
|---|---|
| Round 1 carries no feedback | independence; a panel that starts by reading each other is a mob |
| Feedback is anonymized (Expert A/B/C, names scrubbed) | the anti-bandwagon core of the method |
| A name leak in feedback fails the round | identity in feedback is worse than no feedback |
| Convergence = agreement ≥ threshold and stability | a panel that is still moving is not done |
| Round 1 never converges | no revision has happened; agreement there is coincidence |
Max rounds without convergence → no_consensus + dissent map |
never fabricate a consensus |
Fewer than 2 answered experts → failed |
a 1-expert panel is not a panel |
Refusal (acceptance_verdict.approved == False) → abstain |
excluded from the denominator, noted in the trace |
| Persisted after every transition | status / show / resume work at any point |
Modes
decision— the plain questionnaire; verdicts YES / NO / CONDITIONAL.review— the duel-arena adaptation: round 1 asks for numbered findings (severity + mechanism), later rounds respond agree-and-fix / refute / accept-with-conditions to the anonymized findings, and the panel verdict maps toapprove | approve_with_conditions | reject.
Arena marriage
--arena imports the deliverable into the KodokEvo arena (POST /panels/import
at AWDELPHI_ARENA_URL, default http://127.0.0.1:8179): the panel is
archived, broadcast to #kodokevo, and the experts earn ELO — consensus side
+25, dissent −20, abstain 0, all-converged +5 (floor 800, same constants as
duels). Audience voting rides the arena's vote machinery.
MCP
{"mcpServers": {"awdelphi": {"command": "awdelphi", "args": ["mcp"]}}}
Tools: delphi_run, delphi_status, delphi_list, delphi_cancel,
delphi_history. Connection config comes from the environment at server
start, never from tool arguments (see mcp_server.py docstring for why).
Self-test
awdelphi self-test
Proves convergence rules, the scrubber, the engine + resume, and the gateway-down failure path — offline, no gateway needed.
Why this exists
The Delphi method is a logistical nightmare with humans and trivial with
agents: no calendars, no travel, no social pressure — rounds run until the
method's own stop rule fires. This is a complete computerization of the
protocol for agent panels. Protocol details: docs/protocol.md.
License: Apache-2.0.
The aw family
Standalone tools that share one idea: replace something you would otherwise have to trust with something you can check.
Each installs on its own, works offline, and needs no account.
| instead of trusting | you check | |
|---|---|---|
| awdk | a framework's idea of how your agents should run | one loop you can read, pointed at a backend you already pay for |
| awskills | that an agent knows your procedure | the procedure written down, versioned, and loadable by any agent |
| awpack | that the pack you want shipped inside somebody's SDK, under whatever licence that SDK happens to carry | the pack as its own versioned artifact, with its own licence, that any agent runtime can install |
| awm | that memory stayed in its lane | tenant:user:project scopes, so a write cannot cross a boundary |
| awnode | a vendor's cloud with every prompt | a local gateway routing to backends you chose |
| awgraph | that grep found everything | an AST + tree-sitter call graph an agent can traverse |
| awgit | that no one else is editing this file | a lease, refused at commit time if you do not hold it |
| awdelphi (you are here) | one agent's confident take on a decision | the round trace, the anonymity, and who dissents |
| awtoll | that your tooling is saving you context | the measured token cost of each tool call, and what the alternative cost |
| awseal | that the artifact came from who you think | an Ed25519 seal — the key that verifies is not the key that forges |
| awshare | that the download is intact | content-addressed bundles, verified on fetch |
| awnest | that there is a person on the other end | a verdict with evidence, where "we could not tell" is not "yes" |
| awnboard | a share link anyone who sees it can use | an invitation addressed to one person, for one gate, revocable |
| awnix | that the box is what you left it as | an immutable image you built, with atomic rollback |
| awrecover | that the restore worked | a restore that fully lands or does not land at all |
| awstorage | a du you ran last month, and a peers file that says 3 TB free | an inventory snapshot per node with a diff since the last one, and each tree classified re-fetchable or not |
| awrelay | a SaaS in the middle of your agents | findings, alerts and coordination over your own transport |
| awask | that anyone read the paragraph where you asked | the ask itself, with a button that steers the session that raised it |
| awmail | a mailbox somebody else can read | mail your agents send and receive over your own server |
| awfind | one vendor's idea of the web | results from whichever providers you configured |
| awbrowse | that the page said what you were told | the render, the DOM and the requests it made |
| gawbbonet | the model to keep a 300-message campaign coherent by itself | campaign facts recalled from scoped memory you can list and edit |
| aitherkvcache | a vendor's quantisation defaults | sub-byte KV cache kernels you can benchmark yourself |
| awrtifact | a hand-rolled split script and a hand-edited worker manifest | byte-verified parts in a release, served with Range + CORS, sizes asserted by a live gate |
| AitherZero | a pile of scripts nobody has numbered | numbered, discoverable automation with declarative playbooks |
| AitherConnect | what a page tells your browser to do | a federated search and desktop bridge you host |
| awreason | a confident paragraph | the phases it went through, and every tool call it made to get there |
| awrecurse | that everything you pasted in was actually read | which slices it opened, and what it concluded from each |
| awprism | the first explanation that fits | the ranked alternatives, and the observation that separates them |
| awrepl | what the agent believes the value is | the value, printed from the live session |
| awresearch | a summary of pages nobody opened | every claim against the source it came from |
| awfocus | twelve terminal tabs and a bad memory | one command that names every session, finds any transcript, and opens or steers the one you want |
| awgym | that a world model learned anything from the games it saw | transitions captured from real play, fed back, and the retrodiction score falling on grids it never saw |
| awpredict | a model because it trained without erroring | its prediction against a self-updating lookup, on the rows that are actually novel |
| awsh | that you already know the name of the command | what it decided your line meant, before it acts on it |
| awkno | that the docs site is up, or that you remember the family | the whole ecosystem in your terminal, with no network at all |
| awembed | a general-purpose embedder that has never seen your code | a held-out split of whole directories, scored teacher vs student vs int8 |
| awtax | a closed tax app's sealed file you can never read again | a plain, provider-neutral schema of every figure, with the page it came from |
| awsettings | that you will remember to re-approve the same thing on every box you work from | one profile, unioned rather than overwritten, with the credentials left behind |
awnix is the ground floor — A Linux you can hand to an agent — immutable base, capabilities included.
The Aitherium ecosystem
Every repository here is public. Each publishes an aither-manifest.json beside its page, so any surface can read every sibling's — the network is browsable from any node in it.
| repo | what it is | pages |
|---|---|---|
| awdk | Build AI agent fleets — 3 lines, any backend, local or cloud | docs |
| awskills | Portable agent skills — self-contained procedures an agent loads on demand | docs |
| awpack | First-party agent packs — the ones we build, versioned and installable on their own | docs |
| awm | A portable, scoped agent memory | docs |
| awnode | A lightweight local gateway — bridges your apps to the AI backends you chose | docs |
| awrun | A priority-aware queue and dispatcher for agentic runs and ad-hoc CI builds. It also judges whether the runner pool is big enough for the queue it is draining, and can ask a host to grow it -- reserving capacity is zero-sum, so a saturated pool needs more of it, not a different share of it | docs |
| awgraph | A semantic code graph for agents — AST + tree-sitter, call graphs | docs |
| awgit | Semantic version control on top of git — edit-ops and leases | docs |
| awdelphi (you are here) | Anonymous multi-round expert panels — a converged answer with a trace | docs |
| awtoll | What every tool call costs you in context, measured from your own transcripts | docs |
| awseal | Sign an artifact so a stranger can verify it | docs |
| awshare | Publish an artifact and fetch it back verified | docs |
| awdit | An append-only audit trail whose gaps are DETECTABLE | docs |
| awbac | Role-based access control that fails closed and explains itself | docs |
| awiam | Who is this caller? A directory and session store that fails honestly | docs |
| awtunnel | Reach a service that has no public address | docs |
| awnest | Prove there is a human before you let them into the nest | docs |
| awnboard | A front gate you can put in front of anything, and hand someone the key to | docs |
| awnix | A Linux you can hand to an agent — immutable base, capabilities included | docs |
| awrecover | Labelled snapshots with an all-or-nothing restore | docs |
| awstorage | Every drive on every node, indexed, classified and diffed -- so you can see what you own before you delete it | docs |
| awrelay | Portable agent messaging — findings, alerts, coordination | docs |
| awask | Your agent asks you a question — and acts on your answer | docs |
| awmail | Give an agent an email address — send, and actually receive | docs |
| awnet | The agentic web — agents host a mesh, and agents join one | docs |
| awfind | A portable search client — query, results, ranking | docs |
| awbrowse | A portable browser client — navigate, console, network, DOM, screenshot | docs |
| awknowledge | How to run a coding agent so the result survives — the laws, with evidence | docs |
| gawbbonet | GobboNet campaigns with a real agent brain — scoped memory, graph recall | docs |
| aitherkvcache | Near-optimal KV cache quantization for LLM inference — sub-byte compression | docs |
| awrtifact | Deliberately chunk artifacts into GitHub release assets — the productized aitherkvcache mirror lane | docs |
| AitherZero | PowerShell 7+ automation framework — numbered, self-describing scripts | docs |
| AitherConnect | Browser extension — federated AI search, page context, and the Living OS overlay | docs |
| awreason | A portable reasoning client — sessions, phases, thoughts, and the chain that produced the answer | docs |
| awrecurse | Answer a question over a context far larger than the window — recursively, with the trace kept | docs |
| awprism | Turn a failure into ranked hypotheses — and say what would confirm each one | docs |
| awrepl | A REPL an agent can actually use — state that survives between turns | docs |
| awresearch | Ask a research question, get a cited report you can check | docs |
| awfocus | See, search and steer every Claude session from one command | docs |
| awgym | An ARC training gym — a game a world model can watch, and six roles that play through it | docs |
| awpredict | Predict what your environment does next, and how surprised you were | docs |
| awsh | Your terminal answers you -- type a question where a command would go | docs |
| awkno | The man page for the Aither World — every brick, stack and law, offline | docs |
| awembed | Train an embedding model that knows your corpus, and prove it beats the big one | docs |
| awtax | Turn any tax PDF -- returns, W-2, 1099, statements, even scans -- into structured data you can check | docs |
| awsettings | Your agent's permissions and config, following you to the next machine | docs |
Metadata
Release files for awdelphi 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| awdelphi-0.1.0.tar.gz | 52.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| awdelphi-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 96.8 kB
Release files / awdelphi-0.1.0.tar.gz
| Download URL | awdelphi-0.1.0.tar.gz |
|---|---|
| Size | 52.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1baee53a4dd3e452b63ab1a7c451c93132a05b0fa173e0f7d267a5067c93431c
|
|
BLAKE2b-256 checksum How to use checksums |
918751ed2dbc8a5ff9a197563e8c0c974a1163ac92e8aab19364e473cc49f74e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|
Release files / awdelphi-0.1.0-py3-none-any.whl
| Download URL | awdelphi-0.1.0-py3-none-any.whl |
|---|---|
| Size | 44.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
10ed1c924e8a6ea1ae93d5b91a5f5ec68afca19d67c71c9cbe17cf1b55d438d6
|
|
BLAKE2b-256 checksum How to use checksums |
d280541368c0fee5528e5835df2a76df4c460714485593811d82200918db384c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.5
|