Skip to content

IBM/ado

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

622 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

A framework for designing, executing and analysing experiment campaigns

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

55 stars

Watchers

4 watching

Forks

Packages

 
 
 

Contributors

Languages