Skip to main content

AdaMAST

Your agent keeps making the same mistakes. AdaMAST learns what they are — from your agent's own work — and reminds it at the right moments.

Paper Docs Python License

The AdaMAST runtime loop

AdaMAST rides along with the agent you already use — Codex, Claude Code, or your own harness. While the agent works, AdaMAST quietly checks the work at natural boundaries, records evidence when something goes wrong, and — after enough completed tasks — learns a failure-mode catalog (a "taxonomy") specific to your project. From then on, the agent is checked against its own known weaknesses instead of a generic list.

Paper: Fantastic Adaptive Taxonomies and How to Use Them · Docs: Website


🚀 Quickstart (zero configuration)

Requirements: Python 3.10+ and Codex or Claude Code.

pip install adamast

Then register AdaMAST with the host you use (once):

# Claude Code
adamast claude install --user-level

# Codex
adamast codex install --user-level

Fully quit and reopen Codex / Claude Code, then start a new conversation. That's it — no config file, no extra API key, no second login.

On your first message, AdaMAST opens its taxonomy picker and asks one question — where should this conversation start from?

Choice What it means
🧭 MAST (recommended at first) Start from the built-in 14 general failure modes. After 5 completed tasks, AdaMAST automatically learns a taxonomy specific to your project.
📚 A stored taxonomy Reuse a taxonomy your project already learned.
🚫 No taxonomy AdaMAST stays completely out of this conversation.

Pick with one click (or one number in a terminal) — your held message then continues automatically.

💡 Check it worked: run adamast doctor any time. It validates your install and tells you exactly what to do if something is off.

🔄 What happens while you work

flowchart LR
    A["💬 You work with<br/>your agent as usual"] --> B["🛑 Checkpoints<br/>agent self-checks at<br/>natural boundaries"]
    B --> C["🧾 Traces<br/>each finished task<br/>is recorded"]
    C --> D["🧠 Learning<br/>after 5 traces: your<br/>project's taxonomy"]
    D --> E["♻️ Refinement<br/>reviewed after 10,<br/>then every 20 traces"]
    E -.->|"sharper failure modes"| B
  1. You work normally. AdaMAST never takes over the task.
  2. At checkpoints (finishing a sub-task, a failed tool, the final answer) the agent privately asks itself: what just happened, what caused it, does a known failure mode apply, continue or repair? Finding nothing wrong is a perfectly valid answer.
  3. Each completed task becomes a trace. Traces are the raw material for learning.
  4. At 5 traces, learning kicks in — a background worker drafts a taxonomy of your project's actual failure patterns, with verbatim evidence for every code. A separate reviewer must approve it before it activates. Your conversation never waits.
  5. It keeps improving. The taxonomy is reviewed against new traces after 10 more, then every 20.

Watch it live: adamast dashboard opens a local monitor showing every checkpoint, the evidence behind it, and which failure modes fired.

The AdaMAST live monitor

🎛️ Make it yours

Everything above ran on defaults. Each step has one obvious knob when you want a custom setup:

I want to… Do this instead
Enable AdaMAST for one repository only adamast claude install --project-dir . (same for codex) · Getting started
Start every conversation from a taxonomy I already trust --inherit <taxonomy-id> at install · Taxonomies
Learn faster / slower --generation-threshold N (default 5), --k-init N (10), --k N (20)
Freeze the taxonomy (no more learning) --freeze
Use a provider API for learning instead of native subagents --learning-backend provider --adamast-model <model> · Providers
Build a taxonomy from traces I already have adamast import-traces --traces ./my_traces · Trace formats
Wrap a single LLM call instead of a whole host adamast single-run · Single LLM
Put AdaMAST inside my own agent loop from adamast import start_session · Runtime API

Every field, flag, and default lives in the Configuration reference; deeper customization (prompts, gates, custom hooks) in Customization.

🧠 Why adaptive taxonomies?

Improvement needs feedback that preserves why something failed. Scalar rewards throw the reason away; free-form reflection doesn't aggregate; a fixed catalog can't know your agent's roles, tools, or domain in advance. AdaMAST learns a compact, evidence-grounded failure vocabulary from the target system's own traces — starting from the built-in 14-code adaptation of MAST ("Why Do Multi-Agent LLM Systems Fail?", Cemri et al., 2025) until the first learned taxonomy activates.

Learned codes are organized on three stable axes:

Axis Scope Example
⚙️ System-level Can arise in any agent system Context exhaustion
🎭 Role-specific Tied to a discovered component role Checker rubber-stamps solver output
🧪 Domain-specific Requires task knowledge Algorithm mismatch

🏆 Results

Experiment Headline
OfficeQA Pro 44.4% → 51.9% official scorer, same 133-question harness in both arms
Circle packing, n=26 AdaMAST-guided search reaches 0.997× the AlphaEvolve record in 20 evaluations
TRAIL (paper) Induced codes align with expert annotations at Cohen's κ 0.725
Terminal-Bench 2.0 (paper) AdaMAST-Judge at 89.9% accuracy
Evolutionary optimization, 655 problems (paper) 87.9% → 91.9% held-out improvement

Summaries, exact taxonomies, and reproduction notes live in runs/. Per-question rows and raw scorer output are not included, so the headline numbers cannot be independently recomputed from this repository alone.

📚 Learn more

You want to… Read
Do the first install, step by step Interactive setup
See one complete run end to end Example run
Understand the words (gate, trace, taxonomy, …) Concepts
Understand how learning stays safe & race-free Native taxonomy learning
Fix a broken setup Troubleshooting
Browse everything Documentation index
🧰 All commands
Command Purpose
adamast doctor Validate paths, configuration, hooks, and host contracts
adamast status Show the active taxonomy, traces, learning state, recent decisions
adamast find List or select stored taxonomies
adamast dashboard Open the local taxonomy dashboard / checkpoint monitor
adamast traces Inspect trace state
adamast import-traces Generate a taxonomy from existing traces
adamast claude install / uninstall Manage Claude Code hooks
adamast codex install / uninstall Manage Codex hooks
adamast single-run Wrap one direct model task with AdaMAST
🗂️ Repository map
Path Responsibility
adamast/core/ Taxonomy data model, evidence, traces, reflection parsing, taxonomy store/MAST/resolution, session lifecycle
adamast/protocol/ The one compact-checkpoint implementation and the pre-submission gate
adamast/judges/ Taxonomy and reflection judges, plus the provider-neutral JUDGES contract
adamast/llm/ Model routing, learning calls, and provider transports
adamast/learning/ Taxonomy generation and refinement, learning jobs, and the vendored/ported pipelines
adamast/hosts/ Claude Code, Codex, interactive, and single-LLM host adapters
adamast/dashboard/ Local dashboard, status, taxonomy viewer, and web views
adamast/cli.py The umbrella adamast command
tests/ The single test suite (python -m pytest tests)
docs/ User and contributor documentation (index)
adamast/examples/ Runnable demonstrations (python -m adamast.examples copies them locally)
runs/ Evaluation artifacts and reproduction notes
scripts/ Repository tooling: docs-site build, public publishing
website/ The static landing page served ahead of the docs
SKILL.md The Codex skill manifest for AdaMAST

Everything importable lives in the adamast package; the complete ownership rules are in Architecture.

🤝 Contributing

Development setup, verification commands, and package boundaries: CONTRIBUTING.md · Release steps: RELEASING.md

The original research pipeline lives on the paper-pipeline branch; a maintained, locally patched fork is vendored under adamast/learning/vendor/ with provenance in VENDORED.md.

📄 License

Apache-2.0. See LICENSE.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

adamast-0.2.0.tar.gz (2.0 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adamast-0.2.0-py3-none-any.whl (520.5 kB view details)

Uploaded Python 3

File details

Details for the file adamast-0.2.0.tar.gz.

File metadata

  • Download URL: adamast-0.2.0.tar.gz
  • Upload date:
  • Size: 2.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for adamast-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3678e3bd0235276f6e3782a7656e267cd5ee98b8c4ef3c4ec34552b661a10877
MD5 1c56be10002b3bc9cf8062472dd69a49
BLAKE2b-256 df4b913d0736a5cf2538129e3eff1e51099b83551bfee2aba8a9e512d4711a4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for adamast-0.2.0.tar.gz:

Publisher: release.yml on multi-agent-systems-failure-taxonomy/AdaMAST-private

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file adamast-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: adamast-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 520.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for adamast-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c03ffeabf77570d3413fd3a215e84665c7a43e48b5d1d1401af6ec4d19a788e
MD5 4c9cba46d048751c020468f5f5ad41b7
BLAKE2b-256 5b4e8af9fc80e551b6c97274cc6b3d16ef3859fc18bf35af09aa3cd5128913ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for adamast-0.2.0-py3-none-any.whl:

Publisher: release.yml on multi-agent-systems-failure-taxonomy/AdaMAST-private

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page