Adaptive Auto-Harness
June 3, 2026 ยท View on GitHub
Code for the paper "Adaptive Auto-Harness: Sustained Self-Improvement for Agentic System Deployment on Open-Ended Task Streams."
๐ฆ This is a mirror. The canonical, actively-maintained code lives in the
release/adaptive-auto-harnessbranch of the A-Evolve project โ the universal infrastructure for self-improving agents. Star and follow development there:
- ๐ฑ Release branch (this paper):
a-evolve/tree/release/adaptive-auto-harness- ๐งฌ A-Evolve main (the framework):
a-evolve/tree/main
Project Structure
.
โโโ agent_evolve/ # Core library
โ โโโ algorithms/ # Evolution engine + routing + adaptation
โ โโโ agents/{polybench,ctf_dojo,futurex}/ # Task-solving agents
โ โโโ benchmarks/{polybench,ctf_dojo,futurex}/ # Task loading + scoring
โ โโโ engine/ # Evolution loop, versioning, observer
โ โโโ protocol/adaptation/ # Pluggable solve-time adaptation operators
โ โโโ contract/, llm/, tools/, utils/
โโโ experiments/ # Configs + evolver prompts + seed harness
โโโ seed_workspaces/ # Initial harnesses per benchmark
โโโ scripts/ # poly_/ctf_dojo_/futurex_hypothesis.sh launchers
โโโ evaluations/analysis_poly/ # Scripts that regenerate the README figures
โโโ assets/ # README figures
โโโ data/ # Dataset fetch helper + layout notes
โโโ solve_all_with_evolution.py # Main entry point (all benchmarks)
Installation
Requires Python 3.11+ and (for PolyBench) AWS Bedrock access.
git clone -b release/adaptive-auto-harness https://github.com/A-EVO-Lab/a-evolve.git
cd a-evolve
conda create -n aevolve python=3.11 -y && conda activate aevolve
pip install -e ".[all]"
Running PolyBench
PolyBench is pure reasoning (no Docker). From the repo root:
# 1. Configure credentials + models (export into the shell; scripts read env vars)
cp .env.template .env # then edit: SOLVER_MODEL, EVOLVER_MODEL, AWS_*
set -a; source .env; set +a
# 2. Get the dataset (SQLite snapshot of Polymarket markets)
python data/download_data.py --benchmark polybench # -> data/polymarket_analysis.db
# 3. Smoke test: no-evolution baseline on 5 markets
bash scripts/poly_hypothesis.sh --limit 5 H0
Then run the paper's hypothesis cells (omit the target to run all):
bash scripts/poly_hypothesis.sh H0 # baseline: no evolution
bash scripts/poly_hypothesis.sh H1 # full evolution
bash scripts/poly_hypothesis.sh H4_multi # multi-agent structured evolution
bash scripts/poly_hypothesis.sh H4_multi_nav # + tree routing
Add --adaptation <name> to select the solve-time operator (default:
tree_routing when routing is enabled, else whole_store). Results land in
results/polybench_<cell>/, logs in logs/.
CTF-Dojo and FutureX run the same way via
scripts/ctf_dojo_hypothesis.shandscripts/futurex_hypothesis.sh. SeeINSTALL.mdfor the full provider matrix and dataset notes.
Pluggable Adaptation
Solve-time adaptation is a pluggable operator chosen with
--adaptation <name>; operators live in
agent_evolve/protocol/adaptation/.
--adaptation | Granularity |
|---|---|
whole_store | full harness |
tree_routing | whole branch (agentic router, paper default) |
retrieval | per-task top-k |
agentic_filter | per-task LLM-selected subset |
More operators are on the TODO list (e.g. graph-structured store, lazy loading,
dependency-aware retrieval) โ contributions welcome: add a class in
operators.py and one line in registry.py.
Citation
If you find this work helpful, please consider to cite our paper:
@article{liu2026adaptive,
title={Adaptive Auto-Harness: Sustained Self-Improvement for Agentic System Deployment on Open-Ended Task Streams},
author={Liu, Zewen and Shi, Zhan and Sang, Yisi and He, Bing and Lin, Minhua and Wei, Tianxin and Wang, Dakuo and Dumoulin, Benoit and Jin, Wei and Lu, Hanqing},
journal={arXiv preprint arXiv:2606.01770},
year={2026}
}
License
MIT.