A multi-agent coding framework with programmable collaboration and a controllable runtime.
English · Chinese
Duo produces two isolated solutions and adopts one. Base, a single agent, uses the fewest tokens across all three benchmarks. Full results
- 🎉 2026-10-08 — OpenCollab 0.9.3 (v1.0.0 PreRelease) includes the latest Duo V8 workflow and all the statistical features described in our paper to support research experiments. Following extensive testing and bug fixes, the framework now offers the complete feature set planned for 1.0.0. We will release version 1.0.0 once our paper is accepted. See the changelog.
- 2026-09-29 — Our paper is on arXiv: OpenCollab: A Multi-Agent Coding Framework with Programmable Collaboration and Controllable Runtime.
- 2026-09-27 — OpenCollab 0.8 ships Duo built in and makes Single2 the default Base agent.
- 🎉 OpenCollab has been selected for support by the Seed Program of the Youth Open Source Special Fund.
uv sync --locked
cp configs/.env.example configs/.env # then set OPENCOLLAB_API_KEY
uv run opencollab --workspace .configs/.env accepts any OpenAI-compatible or Anthropic endpoint. Never commit
real API keys. The command starts the built-in Self-Collaboration team. Its
Analyst entry plans and delegates to the Coder and Tester over a closed topology.
Type /help in the terminal for navigation, saving and exit controls.
To define additional roles, create and select an explicit team file as shown below.
To run Duo on a Git repository, use this command.
uv run opencollab workflow run duo --workspace /path/to/repository \
--task 'Fix the public issue described here.' \
--args '{"allow_unisolated_shell":true}'Place run options such as --workspace, --model and --budget after
workflow run NAME. To list workflows in another workspace, use
workflow list --workspace PATH. Options placed before the workflow
subcommand are interpreted as belonging to the root interactive mode and
will produce a usage error.
-
Team. A YAML file declares each role's prompt, model, tools, and token allowance, the context policy, and who may message whom. Start from the built-in team and edit it:
uv run opencollab team init team.yaml # edit roles, prompts, tools, and topology uv run opencollab team show --team-config team.yaml uv run opencollab --team-config team.yaml --workspace .
-
Workflow. A Python module issues every handoff. Duo is one; write your own and run it with
opencollab workflow run NAME.
Mini Edict reimplements the core protocol of Edict, a multi-agent system of roughly 24,000 lines, in 239 lines of team and workflow code.
In a Team, the agents decide the handoffs, and a declared team does not guarantee that they happen. In our runs, the lead agent often briefed its teammates and then did the work itself. OpenCollab enforces the declaration and records what each agent did:
- a message along an undeclared edge is refused, and the refusal is recorded;
- each agent's token budget is checked before every model call;
--tracewrites one JSONL record per step, stamped with the run, agent, role, event type, and token usage.
From these records we measure Adherence, the share of runs in which the declared organization actually happened. Changing one setting of the same team raised it from 47.2% to as much as 97.2%. See how Adherence is measured.
| Guide | What it covers |
|---|---|
| Package guide | CLI, Python API, architecture, and runtime behavior |
| Configuration guide | Providers, models, and team files |
| Duo guide · Chinese | Running the dual-coder workflow from the CLI and SDK |
| Benchmark results | Tokens, cost, the paired Duo–Base test, and how to run an evaluation |
| Adherence | What the runtime records, and how we measure Adherence |
| OpenCollab-Eval README | Running agents on software-engineering benchmarks |
| Documentation index | Skills, migration guides, and design records |
| CONTRIBUTING.md | Development checks, testing, and releases |
If you find OpenCollab useful, please give it a ⭐ and cite our work. Our paper is OpenCollab: A Multi-Agent Coding Framework with Programmable Collaboration and Controllable Runtime. OpenCollab builds on Self-Collaboration:
@misc{hsu2026opencollab,
author = {Hsu, Chun-Wah and Gong, Kai and Wu, Yu and Chen, Xianhe and
Li, Hanyu and Li, Jie and Liu, Mengyang and Liu, Zhixuan and
Tang, Naisheng and Chi, Jiaying and Fan, Ziheng and He, Xuning and
Yang, Xiaokang and Jiang, Xue and Dong, Yihong},
title = {OpenCollab: A Multi-Agent Coding Framework with Programmable Collaboration and Controllable Runtime},
year = {2026},
eprint = {2609.38345},
archivePrefix = {arXiv},
url = {https://arxiv.org/abs/2609.38345}
}
@article{dong2023self,
author = {Dong, Yihong and Jiang, Xue and Jin, Zhi and Li, Ge},
title = {Self-Collaboration Code Generation via ChatGPT},
journal = {ACM Transactions on Software Engineering and Methodology},
volume = {33},
number = {7},
pages = {189:1--189:38},
year = {2024}
}OpenCollab is licensed under the Mulan Permissive Software License v2
(MulanPSL-2.0).