Skip to main content

ado — accelerated discovery orchestrator

PyPI Version PyPI Python Version GitHub License DOI

ado is a Python platform for designing computational experiment campaigns and executing them at scale. It enables distributed teams of researchers and engineers to collaborate, execute experiments, and share data.

You can extend ado across different domains through its plugin model — often as simple as decorating a Python function. By integrating your methodology, you gain cross-cutting capabilities — such as parallel execution, data provenance, and a unified CLI — alongside a structured foundation that allows AI coding agents to autonomously formulate and run your experiments.

At its core

Concept Role
Discovery Space Defines what to measure, how to measure it (via Experiments, which are pluggable python functions), and where to store results.
Operation You explore or analyse a Discovery Space using operations. You can select from different operators to perform different types of operations. Operators are also pluggable python functions.
Sample Store Stores the results of measurements, and enables operations to transparently reuse existing results (memoization).

Try It Out

The following example runs a small experiment campaign that samples combinations of mass and volume, computes density at each point, and stores the results.

Install ado-core (a virtual environment is recommended). For complete instructions see the install guide:

pip install ado-core

Clone the repository and install the density example package:

git clone https://github.com/IBM/ado.git
cd ado
pip install -e examples/density_example/

Run the experiment campaign:

ado create operation -f examples/density_example/operation.yaml --with space=examples/density_example/space.yaml

Once the operation finishes, inspect the collected measurements:

ado show measurements operation --use-latest

For a deeper walkthrough, see the density example tutorial.

ado ❤️ agents

ado's typed resources, expressive CLI, and bundled agent skills make it a natural fit for agentic research workflows. Once prompted with a research problem, an agent can design the Discovery Space, write new experiments or reuse existing ones, and run the full exploration loop:

  • 🤖 Bundled agent skills: ready-made skills guide agents through end-to-end discovery workflows — from formulating a problem to analysing results
  • 🔍 Self-describing resources: experiments and operators declare their required properties, so an agent can discover what's available and what's needed without parsing code
  • 🧱 Validated schemas: research intent is expressed as structured, validated configurations — constraining the agent to well-defined inputs rather than free-form code generation, reducing hallucinations and keeping experiments repeatable
  • Safe execution loop: ado template and --dry-run support a tight generate → validate → fix → run cycle before any work is committed
  • 📦 Structured & queryable results: all measurements and metadata are stored in a structured database, giving agents clean access to data for analysis and refinement
  • 🔗 Full provenance: every result is annotated with resource relationships and plugin versions, so an agent always knows where data came from and how to reproduce it

Use Cases

Here are some examples of what the team has built with ado:

Contributing

Contributions are welcome — new actuators, operators, bug fixes, and documentation improvements. To set up a development environment, run the test suite, or understand code style and commit conventions, see CONTRIBUTING.md, DEVELOPING.md and tests/README.md.

Citation

For an overview of the design and architecture of ado, see our Journal of Open Source Software paper.

If ado has been useful in your research, please cite us using:

@article{Johnston_ado_a_Python_2026,
author = {Johnston, Michael A. and Pomponio, Alessandro},
doi = {10.21105/joss.10304},
journal = {Journal of Open Source Software},
month = may,
number = {121},
pages = {10304},
title = {{ado: a Python framework for computational experimentation and benchmarking}},
url = {https://joss.theoj.org/papers/10.21105/joss.10304},
volume = {11},
year = {2026}
}

You can also click "Cite this repository" in the GitHub sidebar for alternative formats such as APA.

Acknowledgement

This project is partially funded by the European Union through the Smart Networks and Services Joint Undertaking (SNS JU) under grant agreement No. 101192750 (Project 6G-DALI).

Download files

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

Source Distribution

ado_core-2.1.0.tar.gz (19.2 MB view details)

Uploaded Source

Built Distribution

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

ado_core-2.1.0-py3-none-any.whl (524.5 kB view details)

Uploaded Python 3

File details

Details for the file ado_core-2.1.0.tar.gz.

File metadata

  • Download URL: ado_core-2.1.0.tar.gz
  • Upload date:
  • Size: 19.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Red Hat Enterprise Linux","version":"9.7","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ado_core-2.1.0.tar.gz
Algorithm Hash digest
SHA256 096ec57bdcd769c4e8105947087a0f4ad59bcaa0b3fe67196f935ddf8ab298f9
MD5 91742c9c0c881b1b343b52ae141adf71
BLAKE2b-256 c168bf804f7ce9641c5c4c75f8eb60078ec7f24b1de7d781e1959c6dc56a83c0

See more details on using hashes here.

File details

Details for the file ado_core-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: ado_core-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 524.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.1 {"installer":{"name":"uv","version":"0.12.1","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Red Hat Enterprise Linux","version":"9.7","id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ado_core-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 125a14e1d428c60fd65824b5675c1d33725c42d9a6542d6dd7c3375eb1a59213
MD5 7bddbfed012a7eccd65a0e1881419a8b
BLAKE2b-256 483d17af42edacc561299b730f8aae95880458f03dae495bd4f4dbecf7f18b6a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.1.0 This release

2 files

2.0.0

2 files

1.8.0

2 files

1.7.0

2 files

1.6.0

2 files

1.5.0

2 files

1.4.1

2 files

1.4.0

2 files

1.3.3

2 files

1.3.2

2 files

1.3.1

2 files

1.3.0

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.0

2 files

1.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page