AgentRoom: Concurrent Multi-Agent Coding in a CRDT-Backed Shared Workspace
Organizations: Holistic AI · University of California, Berkeley
Abstract
Concurrent multi-agent coding promises division of labor across modules, robustness through redundancy, and parallel exploration at the natural granularity of multi-file projects. Realtime collaborative editing protocols solve this coordination problem for human teams via Conflict-free Replicated Data Types (CRDTs), but the LLMs underneath generate one token at a time and existing multi-agent coding systems inherit this serial limit: they either sequence agents through phase handoffs or pool independent samples without coordination, and a single agent abandons up to half of hard tasks with a one-file stub-and-exit. AgentRoom is a realtime collaborative editing protocol for concurrent coding agents. Its runtime layer exposes file-level claim, status, and broadcast as MCP tools on a CRDT-merged shared filesystem. Five frontier coding-CLI models ran four backend coding tasks, with cross-language checks in Python DevBench and Rust+axum. For CLI-stable models, AgentRoom with 2 agents abandons fewer tasks than Solo and has less run-to-run variation. At matched-compute, one positive mean LLM-judge contrast puts AgentRoom over parallel-merge. The other contrast, a bundle probe, puts full AgentRoom above each partial case: an ordering rather than a percentage split. Coordination, not parallelism or CRDT-merge, bears the load.
Figures & tables
| Condition | Mean | Note | ||
|---|---|---|---|---|
| ChatDev-style (sequential 3-phase) | 0.333 | 6 | 0.197 | sequential paradigm baseline |
| Parallel merge (2 indep + union) | 0.456 | 12 | 0.178 | concurrent, no coordination |
| Solo (1 agent) | 0.544 | 32 | 0.222 | single-agent baseline |
| Shared only (2 agents, no MCP) | 0.575 | 11 | 0.155 | shared CRDT, no signalling |
| Shared + collab prompt, noMCP | 0.588 | 7 | 0.188 | + prompt, no MCP tools |
| AgentRoom (2 agents, full) | 0.669 | 14 | 0.140 | CRDT + room MCP + collab prompt |
Appendix figures & tables17 assets
Supplementary material from the paper’s appendix.
Appendix
| Model | SWE-bench V. | Solo | 2 | ES (AST / regex) | 95% CI (AST) |
|---|---|---|---|---|---|
| Haiku 4.5 | 73.3% | 0.520 (13) | 0.929 (8) | 1.79 / 1.58 | [1.24, 3.35] ∗ |
| Codex GPT-5.4 | 80% | 0.248 (9) | 0.487 (13) | 1.96 / 1.07 | [0.85, 8.85] |
| Sonnet 4.6 | 79.6% | 0.463 (11) | 0.630 (15) | 1.36 / 1.14 | [0.84, 2.29] |
| Task | Solo (n) | (n) | ES |
|---|---|---|---|
| T1 | 0.919 (4) | 0.910 (7) | 0.99 |
| T2 | 0.840 (3) | 0.904 (4) | 1.08 |
| T3 | 0.887 (3) | 0.943 (4) | 1.06 |
| T4 | 0.796 (10) | 0.958 (10) | 1.20 |
| T5 | 0.697 (7) | 0.810 (7) | 1.16 |
| Pair | Score (n) | Tests |
|---|---|---|
| Sonnet 2 (homo) | 0.669 (14) | 32.8 |
| Sonnet+Codex | 0.721 (3) | 16.0 |
| Sonnet+Gemini | 0.542 (3) | 22.0 |
| Condition | Wall (s) | Compute (s) | Quality | |
|---|---|---|---|---|
| Solo | 1 | 550 | 550 | 0.544 |
| Parallel merge | 2 | 558 | 1077 | 0.456 |
| Shared only | 2 | 601 | 1201 | 0.575 |
| AgentRoom 2 | 2 | 561 | 1072 | 0.669 |
| AgentRoom 3 | 3 | 566 | 1572 | 0.553 |
| Model | Solo | 2 | 3 | ES( 2) | Tests ( 2) |
|---|---|---|---|---|---|
| Haiku 4.5 | 0.416 (8) | 0.707 (7) | 0.822 (1) | 1.70 | 38 |
| Sonnet 4.6 | 0.618 (7) | 0.674 (7) | 0.730 (2) | 1.09 | 57 |
| GPT-5.4 | 0.667 (9) | 0.531 (7) | 0.761 (1) | 0.79 | 8 |
| Gemini Flash (unstable) | 0.851 (3) | 0.506 (9) | 0.246 (3) | 0.59 | 12 |
| Behavior | Runs exhibiting (of 6) |
|---|---|
| Module claiming via broadcast | 6/6 |
| Plan adjustment after reading teammate | 5/6 |
| Export list shared for teammate | 4/6 |
| Proactive gap filling | 3/6 |
| Cross-agent bug fix | 2/6 |
| Apology for file boundary violation | 2/6 |
| Baselines and partial bundles | Ours | ||||
|---|---|---|---|---|---|
| Model | Solo | Parallel merge | Shared only | noMCP | AgentRoom |
| Sonnet 4.6 | 0.544 ( ) | 0.456 ( ) | 0.575 ( ) | 0.588 ( ) | 0.669 ( ) |
| Haiku 4.5 | 0.530 ( ) | 0.383 ( ) | 0.657 ( ) | 0.579 ( ) | 0.662 ( ) |
| Codex GPT-5.4 | 0.384 ( ) | – | – | – | 0.529 ( ) |
| Thresholds | Sonnet 4.6 | Haiku 4.5 | Codex GPT-5.4 | CMH pooled | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| thr | thr | Solo | Room | Solo | Room | Solo | Room | OR | 95% CI | |
| 6/33 | 0/17 | 12/35 | 1/17 | 9/17 | 0/21 | 24.2 | [3.5, 169] | 0.00001 | ||
| 6/33 | 0/17 | 12/35 | 1/17 | 9/17 | 2/21 | 11.9 | [3.0, 47] | 0.00005 | ||
| 6/33 | 0/17 | 12/35 | 1/17 | 10/17 | 6/21 | 6.3 | [2.1, 19] | 0.00069 | ||
| 6/33 | 0/17 | 12/35 | 1/17 | 9/17 | 0/21 | 24.2 | [3.5, 169] | 0.00001 | ||
| (paper) | 6/33 | 0/17 | 12/35 | 1/17 | 9/17 | 2/21 | 11.9 | [3.0, 47] | 0.00005 | |
| Pool | Solo | Parallel merge | Shared only | AgentRoom |
|---|---|---|---|---|
| – s (paper, budget-fair) | 0.544 ( ) | 0.456 ( ) | 0.575 ( ) | 0.669 ( ) |
| s (full pool) | 0.464 ( ) | 0.436 ( ) | 0.527 ( ) | 0.639 ( ) |
| Model | Solo (bare, budget-fair) | Solo + collab prompt ( ) | AgentRoom (budget-fair) |
|---|---|---|---|
| Sonnet 4.6 | 0.544 ( ) | 0.448 (range 0.20–0.62) | 0.669 ( ) |
| Haiku 4.5 | 0.530 ( ) | 0.604 (range 0.55–0.66) | 0.662 ( ) |
| Task | Solo (PASS, dur) | 2 AgentRoom (PASS, dur) |
|---|---|---|
| arxiv-digest | PASS, 70 s | PASS, 120 s |
| readtime | PASS, 110 s | PASS, 100 s |
| chakin | PASS, 130 s | PASS, 130 s |
| geotext | FAIL, 603 s timeout | PASS, 390 s |
| hone | PASS, 90 s | PASS, 160 s |
| hybrid-images | PASS, 100 s | PASS, 170 s |
| Removed dimension | Solo mean | 2 mean | ES |
|---|---|---|---|
| (none, full scorer) | 0.786 | 0.928 | 1.18 |
| Type Safety | 0.721 | 0.904 | 1.25 |
| Defensive Coding | 0.815 | 0.944 | 1.16 |
| Test Quality | 0.854 | 0.956 | 1.12 |
| Design | 0.793 | 0.921 | 1.16 |
| Test Pass Rate | 0.749 | 0.916 | 1.22 |