Skip to main content

ado — accelerated discovery orchestrator

PyPI Version PyPI Python Version GitHub License DOI Give a Star!

ado provides tools for executing computational experiment campaigns. Coding Agents can use ado to autonomously formulate, run, and analyze your experiments.

Why ado?

  • Declarative Experiment Campaigns: Provides flexible, cross-domain schemas for defining experiment campaigns. A valid campaign definition has strong execution guarantees.
  • Simplifies Execution : Handles the complex setup and distributed plumbing of scale-out campaign execution.
  • Persistent Storage: Automatically captures campaign definitions and measurements in local or shared SQL databases.
  • Adapt to Any Domain: Its flexible plugin model allows extending these core capabilities to your specific research field.
  • Empowers Agent-Driven Research: The verifiable schemas, executable APIs, and persistent storage enable coding agents to treat experimentation as a coding problem.

At its core

ado is built on three concepts:

Concept Role
Discovery Space Defines what to measure (Entities), how to measure them (Experiments) 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.
Sample Store Stores the results of measurements, and enables Operations to transparently reuse existing results (memoization).

In ado the research loop involves defining a Discovery Space, exploring it with an Operation, analyzing the results with additional Operations, and repeating.

You can create your own Experiments to use in a Discovery Space. ado provides many advanced exploration and analysis Operators you can use, or you can define your own.

Try It Out

The following toy 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 space -f examples/density_example/space.yaml
ado create operation -f examples/density_example/operation.yaml --use-latest space

Once the operation finishes, inspect the collected measurements:

ado show measurements operation --use-latest

Terminal recording of ado listing the installed experiments, describing calculate_density, viewing the discovery space definition, running an operation across it and printing the resulting measurements

For a deeper walkthrough, see the density example tutorial.

ado 🤝 agents

  • 🔍 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.
  • ✅ Campaigns as Verifiable Code: ado's structured, verifiable schemas for expressing research intent enable a tight generate → validate → fix → run cycle. This reduces hallucinations and the need for free-form code.
  • 📦 Durable Long-Term Memory: ados structured databases enable agents to understand what has been done, and to access the relevant data, beyond their context window.
  • 🔗 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.
  • 🤖 Bundled agent skills: skills guide agents through end-to-end discovery workflows — from formulating a problem to analysing results.

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).

Metadata

Release files for ado-core 2.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ado-core 2.3.0
File Size Uploaded Provenance Actions
ado_core-2.3.0.tar.gz 3.5 MB Without provenance Details for ado_core-2.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ado-core 2.3.0
File Interpreter ABI Platform Actions
ado_core-2.3.0-py3-none-any.whl Python 3 none any Details for ado_core-2.3.0-py3-none-any.whl

Total release size: 4.1 MB

Release files / ado_core-2.3.0.tar.gz

Download URL ado_core-2.3.0.tar.gz
Size 3.5 MB
Tags Source
SHA-256 checksum
How to use checksums
a39bb065455f26cb8d499455a4bedc7d6d423131da49212e257a38eb9eb648c6
BLAKE2b-256 checksum
How to use checksums
61244514de1b11876e10ff2c6d1d47efbf005b6e93ee80a7df4fb2b6cdf9eec4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.3 {"installer":{"name":"uv","version":"0.13.3","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}

Release files / ado_core-2.3.0-py3-none-any.whl

Download URL ado_core-2.3.0-py3-none-any.whl
Size 556.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ea3967b2a9501b4e693d8c3db69465e22c784b4149c267c5e774aa7602efdac3
BLAKE2b-256 checksum
How to use checksums
771faabd90792f67399f1771e742dbefbd7419dcad3057578e4bb9c63036090f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.3 {"installer":{"name":"uv","version":"0.13.3","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}

Security for ado-core 2.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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