|
| 1 | +# VeRO: Versioning Rewards and Observations |
| 2 | + |
| 3 | +[](https://arxiv.org/abs/2602.22480) |
| 4 | +[](LICENSE) |
| 5 | + |
| 6 | +VeRO is an evaluation harness for using coding agents to optimize LLM-based agents and workflows. It treats agent code as a versioned artifact — making changes, evaluating results, and hill-climbing toward better performance using git version control. |
| 7 | + |
| 8 | +> **Paper**: [VeRO: An Evaluation Harness for Agents to Optimize Agents](https://arxiv.org/abs/2602.22480) |
| 9 | +
|
| 10 | +## Repository Structure |
| 11 | + |
| 12 | +``` |
| 13 | +vero/ |
| 14 | +├── vero/ # Core library (scale-vero) |
| 15 | +├── vero-agents/ # Agent implementations (benchmarking targets) |
| 16 | +├── vero-benchmarking/ # Benchmarking scripts and analysis |
| 17 | +└── LICENSE |
| 18 | +``` |
| 19 | + |
| 20 | +### [vero/](vero/) |
| 21 | + |
| 22 | +The core optimization framework. Provides: |
| 23 | + |
| 24 | +- **Policy** — orchestrates the optimization loop (agent + evaluator + git) |
| 25 | +- **Agents** — VeroAgent (OpenAI Agents SDK) and ClaudeCodeAgent (Claude Agent SDK) |
| 26 | +- **Evaluator** — runs task evaluations in isolated subprocess environments |
| 27 | +- **Tools** — MCP-based tools for agents (bash, file I/O, experiment runner, dataset viewer, etc.) |
| 28 | +- **Traces** — session analysis and LLM-based trace interpretation |
| 29 | + |
| 30 | +```bash |
| 31 | +cd vero && uv sync --extra optimize |
| 32 | +``` |
| 33 | + |
| 34 | +See [vero/README.md](vero/README.md) for full documentation. |
| 35 | + |
| 36 | +### [vero-agents/](vero-agents/) |
| 37 | + |
| 38 | +Agent implementations used as optimization targets: |
| 39 | + |
| 40 | +| Agent | Description | |
| 41 | +|-------|-------------| |
| 42 | +| **generic-agent** | General-purpose agent for MATH, GPQA, GAIA, GSM8K, etc. | |
| 43 | +| **web_search_agent** | Web search agent for SimpleQA, Facts Search | |
| 44 | +| **KIRA** | Terminal task agent for Terminal Bench 2.0 | |
| 45 | +| **tau-bench** | Customer service tool-use agent | |
| 46 | +| **pharma_summarizer** | Document summarization agent | |
| 47 | + |
| 48 | +See [vero-agents/README.md](vero-agents/README.md) for details. |
| 49 | + |
| 50 | +### [vero-benchmarking/](vero-benchmarking/) |
| 51 | + |
| 52 | +Scripts and infrastructure for running optimization experiments: |
| 53 | + |
| 54 | +```bash |
| 55 | +cd vero-benchmarking && uv sync --all-extras |
| 56 | + |
| 57 | +# Run an optimization experiment |
| 58 | +uv run python scripts/run_benchmark.py --scaffold claude-code-vmf --model sonnet --task math |
| 59 | + |
| 60 | +# Build datasets |
| 61 | +./scripts/build_datasets.sh |
| 62 | +``` |
| 63 | + |
| 64 | +See [vero-benchmarking/README.md](vero-benchmarking/README.md) for full documentation. |
| 65 | + |
| 66 | +## Quick Start |
| 67 | + |
| 68 | +### Prerequisites |
| 69 | + |
| 70 | +- Python 3.11+ |
| 71 | +- [uv](https://docs.astral.sh/uv/getting-started/installation/) |
| 72 | +- Git |
| 73 | +- Access to an LLM provider (via LiteLLM, OpenAI, Anthropic, etc.) |
| 74 | + |
| 75 | +### Install |
| 76 | + |
| 77 | +```bash |
| 78 | +git clone <repo-url> && cd vero |
| 79 | + |
| 80 | +# Install core library |
| 81 | +cd vero && uv sync --extra optimize |
| 82 | + |
| 83 | +# Install benchmarking tools |
| 84 | +cd ../vero-benchmarking && uv sync --all-extras |
| 85 | +``` |
| 86 | + |
| 87 | +### Run Your First Optimization |
| 88 | + |
| 89 | +```python |
| 90 | +from agents import Agent as OAIAgent |
| 91 | +from vero.policy import Policy |
| 92 | +from vero.agents.vero import VeroAgent |
| 93 | + |
| 94 | +policy = Policy( |
| 95 | + project_path="/path/to/my-agent", |
| 96 | + dataset="/path/to/my-dataset", |
| 97 | + agent=VeroAgent( |
| 98 | + oai_agent=OAIAgent(name="VeroAgent", model="anthropic/claude-sonnet-4-5-20250929"), |
| 99 | + ), |
| 100 | + task="main", |
| 101 | + train_budget=10, |
| 102 | + max_turns=200, |
| 103 | +) |
| 104 | + |
| 105 | +best = await policy.run() |
| 106 | +print(f"Best commit: {best.commit}, score: {best.score}") |
| 107 | +``` |
| 108 | + |
| 109 | +## Citation |
| 110 | + |
| 111 | +```bibtex |
| 112 | +@article{ursekar2026vero, |
| 113 | + title={VeRO: An Evaluation Harness for Agents to Optimize Agents}, |
| 114 | + author={Ursekar, Varun and Shanker, Apaar and Chatrath, Veronica and Xue, Yuan (Emily) and Denton, Sam}, |
| 115 | + journal={arXiv preprint arXiv:2602.22480}, |
| 116 | + year={2026} |
| 117 | +} |
| 118 | +``` |
| 119 | + |
| 120 | +## License |
| 121 | + |
| 122 | +[MIT](LICENSE) |
0 commit comments