월~금 오전 7시, 일요일 오전 8시 — AI 뉴스와 용어를 보내드립니다메일로 받아보기

METAL LAB

코딩 에이전트 여러 개를 한 작업공간에서 동시에 협업시키면, 순서대로 시키거나 그냥 병렬로 굴리는 것보다 낫다

arXiv:2608.237402026-08-26

AgentRoom: Concurrent Multi-Agent Coding in a CRDT-Backed Shared Workspace

코딩 에이전트 여러 개를 한 작업공간에서 동시에 협업시키면, 순서대로 시키거나 그냥 병렬로 굴리는 것보다 낫다

AgentRoom은 여러 개의 코딩 AI 에이전트가 CRDT(충돌 없이 병합되는 데이터 구조)로 관리되는 공유 파일 시스템에서 파일을 점유하고 상태를 알리며 동시에 코딩하게 만드는 프로토콜이다. Claude Sonnet, Haiku, Codex 등 다섯 개 프론트 코딩 모델로 네 가지 백엔드 코딩 과제를 돌린 결과, 조정 장치를 갖춘 2에이전트 방식이 혼자 하는 것보다 작업을 포기하는 비율이 낮고 결과 편차도 작았다. 저자들은 병렬성이나 CRDT 자체가 아니라 '조정' 메커니즘이 성능 향상의 핵심이라고 결론짓는다.

METAL LAB 해설 도표

흩어진 여러 에이전트가 파일 점유와 방송 확인을 담당하는 조정 도구라는 관문을 통과해야만, 포기율이 줄고 편차가 작은 높은 품질의 결과로 이어진다는 것을 보여주는 그림. 조정 없이 병렬로만 작업하면 이 관문을 지나지 못해 실패가 잦아진다.
METAL LAB이 원문을 바탕으로 재구성한 해설 도표이며, 논문 저자의 원문 figure가 아닙니다.

무엇을 했나

  1. 연구팀은 여러 AI 코딩 에이전트가 하나의 공유 파일시스템에서 동시에 작업하되, 파일 점유(claim)·상태 확인·메시지 방송(broadcast) 같은 조정 기능을 MCP(모델이 도구를 호출하는 표준 인터페이스) 도구로 제공하는 AgentRoom을 만들었다.
  2. 다섯 개 최신 코딩 CLI 모델(Claude Sonnet 4.6, Haiku 4.5, Codex GPT-5.4 등)로 인증 시스템, 마켓플레이스 API, 금융 원장, 트레이딩 플랫폼 등 백엔드 과제를 수행시켜 혼자(Solo), 조정 없는 병렬(parallel-merge), 순차 역할 분담(ChatDev식), AgentRoom 등 여섯 조건을 비교했다.
  3. 혼자 작업하는 에이전트는 어려운 과제에서 파일 하나만 만들다 포기하는 실패(1파일 중단)가 잦았는데, 12개 모델x과제 조합 전체를 통계적으로 합산(Cochran-Mantel-Haenszel 검정)한 결과 혼자 할 때 포기할 확률이 AgentRoom 대비 13.7배 높았다(95% 신뢰구간 3.9~48, p<10^-5).
  4. 같은 연산량 조건에서 AgentRoom은 조정 없는 병렬 실행보다 평균 품질 점수가 0.213 높았고(Welch t=3.35, p=0.003), CRDT와 협업 프롬프트는 있지만 MCP 조정 도구가 빠진 조건보다도 높아, 조정 도구 자체가 성능 향상의 핵심 요소로 나타났다.
  5. 에이전트 수를 1~4개로 늘려본 결과 품질은 2개일 때 가장 높았다가 이후 감소했고, 메시지 교환량은 3개 이상부터 초선형으로 늘어나 단일 방송 채널의 조정 부담이 병목이 될 수 있음을 시사했다.
Figure 1: T4 six-condition coordination ablation: AgentRoom is the top condition, while concurrency without coordination (parallel-merge) and sequential hand-off (ChatDev-style) fall below the single-agent baseline.
Figure 1: T4 six-condition coordination ablation: AgentRoom is the top condition, while concurrency without coordination (parallel-merge) and sequential hand-off (ChatDev-style) fall below the single-agent baseline.
Table 1: T4 Sonnet 4.6 six-condition ablation (LLM-judge composite, budget-fair 30–700 s pool). Parallel-merge vs AgentRoom: +0.213, Welch t=3.35, 𝐩=0.003. The shared+collab-noMCP probe ran under a 1200 s wall budget; its runs are filtered to the same 30–700 s envelope as every other cell (Appendix B.13). Cross-model replication in Appendix B, Table 8.
ConditionMeannσNote
ChatDev-style (sequential 3-phase)0.33360.197sequential paradigm baseline
Parallel merge (2 indep + union)0.456120.178concurrent, no coordination
Solo (1 agent)0.544320.222single-agent baseline
Shared only (2 agents, no MCP)0.575110.155shared CRDT, no signalling
Shared + collab prompt, noMCP0.58870.188+ prompt, no MCP tools
AgentRoom (2 agents, full)0.669140.140CRDT + room MCP + collab prompt
Figure 2: AgentRoom architecture: N coding agents share a workspace mediated by a CRDT; the MCP server exposes claim, release, broadcast, state, read.
Figure 2: AgentRoom architecture: N coding agents share a workspace mediated by a CRDT; the MCP server exposes claim, release, broadcast, state, read.
Table 2: Cross-model T4 ES with bootstrap 95% CI (10 000 resamples), AST-scored subsample of the full pool (≥30 s elapsed). n is smaller than the LLM-scored pools because the AST scorer covers a subsample. Headline scorer is AST (TypeScript compiler API); regex-scorer values after the slash for cross-check. ∗ CI excludes 1. Two CLI-unstable models (Gemini, GPT-5.4-mini) excluded (see §4.4). Reported as exploratory conjecture: only Haiku T4 clears the CI under the AST scorer.
ModelSWE-bench V.Solo (n)×2 (n)ES (AST / regex)95% CI (AST)
Haiku 4.573.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.679.6%0.463 (11)0.630 (15)1.36× / 1.14×[0.84, 2.29]
Figure 3: Real-time CRDT merge during a single T4 Sonnet AgentRoom ×2 run. The MCP-mediated chat (left) drives concurrent character-level edits in the shared file (right); both α’s and β’s insertions co-exist on the same line via the Yrs CRDT, with no byte-level conflict raised in this run. Per-message Bezier leaders link each chat broadcast to the code line it talks about.
Figure 3: Real-time CRDT merge during a single T4 Sonnet AgentRoom ×2 run. The MCP-mediated chat (left) drives concurrent character-level edits in the shared file (right); both α’s and β’s insertions co-exist on the same line via the Yrs CRDT, with no byte-level conflict raised in this run. Per-message Bezier leaders link each chat broadcast to the code line it talks about.
Table 3: Sonnet 4.6 ES across the difficulty gradient (regex/AST scorer, outlier-filtered ≥0.3).
TaskSolo (n)×2 (n)ES
T10.919 (4)0.910 (7)0.99×
T20.840 (3)0.904 (4)1.08×
T30.887 (3)0.943 (4)1.06×
T40.796 (10)0.958 (10)1.20×
T50.697 (7)0.810 (7)1.16×
Figure 4: Solo (slate) vs AgentRoom ×2 (rust) score distributions for the three CLI-stable models on T4 (LLM-judge composite, budget-fair pool). σ contracts by ∼30–45% under AgentRoom in every panel (Sonnet 0.23→0.14, Haiku 0.25→0.17, Codex 0.27→0.15); mean shift varies by model.
Figure 4: Solo (slate) vs AgentRoom ×2 (rust) score distributions for the three CLI-stable models on T4 (LLM-judge composite, budget-fair pool). σ contracts by ∼30–45% under AgentRoom in every panel (Sonnet 0.23→0.14, Haiku 0.25→0.17, Codex 0.27→0.15); mean shift varies by model.
Table 4: Heterogeneous vs. homogeneous ×2 on T4 (LLM-judge, budget-fair). Tests is the mean over all budget-fair runs in the cell (n=17/4/3), which is not the LLM-scored n shown in the Score column.
PairScore (n)Tests
Sonnet ×2 (homo)0.669 (14)32.8
Sonnet+Codex0.721 (3)16.0
Sonnet+Gemini0.542 (3)22.0
Figure 5: Agent-count scaling on T4 Sonnet 4.6 (N=1–4, budget-fair pool). Left: mean LLM-judge composite with σ band peaks at N=2 then declines. Middle: mean tests passing peaks at N=3. Right: AgentRoom message count rises super-linearly past N=3, consistent with a single-broadcast-channel coordination overhead.
Figure 5: Agent-count scaling on T4 Sonnet 4.6 (N=1–4, budget-fair pool). Left: mean LLM-judge composite with σ band peaks at N=2 then declines. Middle: mean tests passing peaks at N=3. Right: AgentRoom message count rises super-linearly past N=3, consistent with a single-broadcast-channel coordination overhead.
Table 5: Wall vs compute on T4 Sonnet (LLM-judge composite, budget-fair pool).
ConditionNWall (s)Compute (s)Quality
Solo15505500.544
Parallel merge255810770.456
Shared only260112010.575
AgentRoom ×2256110720.669
AgentRoom ×3356615720.553
Figure 6: Cochran-Mantel-Haenszel forest plot of Solo-vs-AgentRoom 1-file abandonment across all 12 model×task strata (Sonnet/Haiku/Codex × T1/T2/T4/T5).
Figure 6: Cochran-Mantel-Haenszel forest plot of Solo-vs-AgentRoom 1-file abandonment across all 12 model×task strata (Sonnet/Haiku/Codex × T1/T2/T4/T5).
Table 6: T5 (trading platform, 900 s budget), AST scorer, per-model cells. All CLI-stable cells are point-estimate-positive on ×2 except Codex; CIs do not exclude 1 at this n. The Gemini row is CLI-unstable and informational only (§4.4); sparse heterogeneous cells are in the text above.
ModelSolo (n)×2 (n)×3 (n)ES(×2)Tests (×2)
Haiku 4.50.416 (8)0.707 (7)0.822 (1)1.70×38
Sonnet 4.60.618 (7)0.674 (7)0.730 (2)1.09×57
GPT-5.40.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
Figure 7: Bootstrap effect-size distributions (10 000 resamples) for the Tier III cross-model cells. Only Haiku T4 has its 95% CI strictly above 1; the other five cells span 0.79–1.96× point-estimate with CIs that include 1.
Figure 7: Bootstrap effect-size distributions (10 000 resamples) for the Tier III cross-model cells. Only Haiku T4 has its 95% CI strictly above 1; the other five cells span 0.79–1.96× point-estimate with CIs that include 1.
Table 7: Frequency of unprompted collaborative behaviors across 6 valid ×2 AgentRoom runs on T4 Sonnet.
BehaviorRuns exhibiting (of 6)
Module claiming via broadcast6/6
Plan adjustment after reading teammate5/6
Export list shared for teammate4/6
Proactive gap filling3/6
Cross-agent bug fix2/6
Apology for file boundary violation2/6
Figure 8: Cost–quality Pareto on T4. Shaded region is Pareto-dominated; dotted lines are iso-efficiency (quality/cost) contours. 2×Haiku AgentRoom clears 1×Sonnet at matched plotted cost.
Figure 8: Cost–quality Pareto on T4. Shaded region is Pareto-dominated; dotted lines are iso-efficiency (quality/cost) contours. 2×Haiku AgentRoom clears 1×Sonnet at matched plotted cost.
Table 8: Cross-model T4 ablation (LLM-judge composite, budget-fair pool). For Sonnet and Haiku, AgentRoom is the top condition and parallel-merge falls below solo. Codex non-Solo/AgentRoom cells were not collected (vendor-CLI hang).
Baselines and partial bundlesOurs
ModelSoloParallel mergeShared onlynoMCPAgentRoom ×2
Sonnet 4.60.544 (n=32)0.456 (n=12)0.575 (n=11)0.588 (n=7)0.669 (n=14)
Haiku 4.50.530 (n=35)0.383 (n=12)0.657 (n=7)0.579 (n=6)0.662 (n=17)
Codex GPT-5.40.384 (n=12)0.529 (n=17)
Figure 9: Single representative T4 Sonnet AgentRoom ×2 run. Top swim-lane: agent α broadcasts (timestamps in-card); middle: per-file ownership Gantt (rust = α, slate = β); bottom: agent β. Bezier S-curve leaders link each chat broadcast to its time on the Gantt. The whole protocol (claim, conflict-detect, hand-off, completion broadcast) emerges from the advisory six-step prompt (§2.3) without any orchestrator.
Figure 9: Single representative T4 Sonnet AgentRoom ×2 run. Top swim-lane: agent α broadcasts (timestamps in-card); middle: per-file ownership Gantt (rust = α, slate = β); bottom: agent β. Bezier S-curve leaders link each chat broadcast to its time on the Gantt. The whole protocol (claim, conflict-detect, hand-off, completion broadcast) emerges from the advisory six-step prompt (§2.3) without any orchestrator.
Table 9: Threshold sensitivity for the Tier I CMH. Each row is a threshold combination; cells report Solo/AgentRoom abandonment counts per model and the resulting CMH common OR with 95% CI and p-value.
ThresholdsSonnet 4.6Haiku 4.5Codex GPT-5.4CMH pooled
d thrf thrSoloRoomSoloRoomSoloRoomOR95% CIp
<150≤16/330/1712/351/179/170/2124.2[3.5, 169]0.00001
<150≤26/330/1712/351/179/172/2111.9[3.0, 47]0.00005
<150≤36/330/1712/351/1710/176/216.3[2.1, 19]0.00069
<200≤16/330/1712/351/179/170/2124.2[3.5, 169]0.00001
<200≤2 (paper)6/330/1712/351/179/172/2111.9[3.0, 47]0.00005
<200≤36/330/1712/351/1710/176/216.3[2.1, 19]0.00069
<250≤16/330/1712/351/179/170/2124.2[3.5, 169]0.00001
<250≤26/330/1712/351/179/172/2111.9[3.0, 47]0.00005
<250≤36/330/1712/351/1710/176/216.3[2.1, 19]0.00069
<300≤16/330/1712/351/179/170/2124.2[3.5, 169]0.00001
<300≤26/330/1712/351/179/172/2111.9[3.0, 47]0.00005
<300≤36/330/1712/351/1710/176/216.3[2.1, 19]0.00069
Figure 10: The two scorers measure the same thing loosely, not interchangeably. Each point is one T4 run carrying both a regex composite and an LLM-judge composite (n=246, the runs scored by both); Pearson r=0.67. The spread off the diagonal is why the body uses one scorer throughout and reports the other as a cross-check rather than averaging them.
Figure 10: The two scorers measure the same thing loosely, not interchangeably. Each point is one T4 run carrying both a regex composite and an LLM-judge composite (n=246, the runs scored by both); Pearson r=0.67. The spread off the diagonal is why the body uses one scorer throughout and reports the other as a cross-check rather than averaging them.
Table 10: Pool sensitivity for the T4 Sonnet ablation (LLM-judge composite). The substrate-vs-AgentRoom ordering is preserved under both pools; the budget-fair pool is primary.
PoolSoloParallel mergeShared onlyAgentRoom ×2
30–700 s (paper, budget-fair)0.544 (n=32)0.456 (n=12)0.575 (n=11)0.669 (n=14)
≥30 s (full pool)0.464 (n=42)0.436 (n=13)0.527 (n=14)0.639 (n=15)
Table 11: Solo + collaboration-style prompt without teammates, T4, n=3 each (LLM-judge composite). The structured prompt alone is model-dependent: it hurts Sonnet (channel is the load-bearing variable) and helps Haiku (the structured prompt also acts as workflow scaffolding); the channel and prompt-as-workflow are not separately identified for Haiku at this n.
ModelSolo (bare, budget-fair)Solo + collab prompt (n=3)AgentRoom ×2 (budget-fair)
Sonnet 4.60.544 (n=32)0.448 (range 0.20–0.62)0.669 (n=14)
Haiku 4.50.530 (n=35)0.604 (range 0.55–0.66)0.662 (n=17)
Table 12: DevBench cross-domain validation (Haiku 4.5, 600 s budget). Pass = hidden pytest suite passes; durations in seconds. geotext: ×2 completes within budget while solo times out; stocktrends, textcnn: both fail (task too hard for budget).
TaskSolo (PASS, dur)×2 AgentRoom (PASS, dur)
arxiv-digestPASS, 70 sPASS, 120 s
readtimePASS, 110 sPASS, 100 s
chakinPASS, 130 sPASS, 130 s
geotextFAIL, 603 s timeoutPASS, 390 s
honePASS, 90 sPASS, 160 s
hybrid-imagesPASS, 100 sPASS, 170 s
licePASS, 330 sPASS, 270 s
particle-swarm-optPASS, 100 sPASS, 120 s
stocktrendsFAIL, 600 sFAIL, 480 s
textcnnFAIL, 601 sFAIL, 856 s
Pass rate7/108/10
Table 13: Scorer sensitivity: leave-one-out on T4 (Sonnet 4.6, solo vs ×2 AgentRoom). The solo mean reported here (0.786) is computed over a smaller subset (4 runs) than the canonical solo subset used in Table 1; the smaller subset is the intersection of solo runs for which we retained per-dimension intermediate scorer outputs at the time of writing, kept here only as a robustness check. The AgentRoom > solo ordering is preserved under every single-dimension ablation and the ratio stays within 1.12–1.25 on this subset.
Removed dimensionSolo mean×2 meanES
(none, full scorer)0.7860.9281.18
Type Safety0.7210.9041.25
Defensive Coding0.8150.9441.16
Test Quality0.8540.9561.12
Design0.7930.9211.16
Test Pass Rate0.7490.9161.22

실제로 확인된 결과

  • 12개 모델x과제 조합을 합산한 통계에서 혼자 작업할 때 포기(1파일 중단) 확률이 AgentRoom 대비 13.7배 높았다(95% CI 3.9~48, p<10^-5, 균질성 검정 p=0.92).
  • T4(금융 원장) 과제에서 Sonnet 기준 AgentRoom(2에이전트)이 조정 없는 병렬 실행보다 평균 품질 0.213점 높았다(Welch t=3.35, p=0.003).
  • 같은 T4 과제에서 6개 조건을 비교하니 순차 역할 분담(ChatDev식, 0.333) < 병렬 병합(0.456) < 혼자(0.544) < 공유만(0.575) < MCP 없는 협업(0.588) < AgentRoom(0.669) 순으로 명확한 서열이 나타났다.
  • Solo 대비 AgentRoom(2에이전트)은 실행 간 표준편차를 약 30~45% 줄였다(예: Sonnet 0.23→0.14, Haiku 0.25→0.17, Codex 0.27→0.15).
  • 에이전트 수를 1~4개로 늘려본 결과 품질은 2개에서 최고였다가(0.669) 3개(0.553), 4개(0.489)로 감소했고, 3개 이상부터 메시지 교환량이 초선형으로 증가했다.

어디에 쓸 수 있나

  • 여러 AI 코딩 에이전트를 동시에 활용해 대형 다중 파일 프로젝트(백엔드 API, 원장 시스템 등)를 개발할 때 조정 프로토콜을 도입하는 설계 참고자료로 쓸 수 있다.
  • 단일 에이전트가 어려운 과제에서 자주 포기하는 문제를 완화하려는 시스템에 파일 점유·상태 공유 방식의 도입을 검토할 수 있다.
  • 2개보다 많은 에이전트를 투입하기 전에 통신 오버헤드가 병목이 될 수 있다는 점을 고려한 아키텍처 설계에 참고할 수 있다.

한계와 남은 검증

  • 실험은 Express.js/TypeScript 기반 백엔드 과제와 일부 Python/Rust 교차 검증에 한정되어, 더 폭넓은 언어·도메인에서의 일반화는 검증되지 않았다.
  • 에이전트 수를 늘렸을 때 품질이 떨어지는 원인이 단일 방송 채널의 병목 때문인지는 통제된 실험으로 확인되지 않아 열린 질문으로 남아 있다.
  • 일부 모델(Gemini 3 Flash, GPT-5.4-mini)은 동시 MCP 실행 시 CLI가 불안정해 헤드라인 결과에서 제외되었으며, 이는 AgentRoom 자체의 속성이 아니라 배포 환경의 한계로 보고된다.
  • MCP 조정 도구 단독의 기여도를 분리하는 번들 성분 실험은 표본이 작아(n=7) 신뢰구간이 0을 포함해 정량적 비율이 아닌 순서(서열)로만 해석된다.
  • 이질적 모델 조합(예: Sonnet+Codex, Sonnet+Gemini)의 효과는 조합에 따라 크게 달라 조정 장치가 모델 간 능력 차이를 없애주지 않는다는 점이 확인됐다.

왜 중요한가

여러 AI 에이전트에게 코딩을 맡기는 실무자라면, 무작정 병렬로 여러 에이전트를 돌리거나 순서대로 역할을 나누는 방식보다 파일 점유·상태 공유 같은 명시적 조정 장치를 넣는 편이 실패율과 결과 편차를 줄일 수 있다는 근거가 된다. 다만 효과는 사용 모델과 과제 난이도에 따라 달라지므로 무조건적인 성능 보장으로 읽으면 안 된다.

이 논문의 용어

  • CRDT (Conflict-free Replicated Data Type) · 여러 사람(또는 프로그램)이 동시에 같은 데이터를 수정해도 자동으로 충돌 없이 병합되는 자료구조. 실시간 공동 편집 도구에 쓰인다.
  • MCP (Model Context Protocol) · AI 모델이 외부 도구나 시스템 상태를 호출·조회할 수 있게 해주는 표준 인터페이스.
  • 1파일 중단(stub-and-exit) · 에이전트가 파일 하나만 골격 수준으로 만들다가 과제가 너무 어렵다고 판단해 일찍 포기하는 실패 양상.
  • LLM-judge 점수 · 또 다른 언어모델(여기서는 Sonnet 4.6)이 정해진 평가 기준에 따라 결과물의 품질을 0~1 사이 점수로 매기는 방식.
  • parallel-merge(병렬 병합) · 에이전트들이 각자 독립된 작업공간에서 작업한 뒤 나중에 파일을 합치는 방식으로, 실시간 조정이 없다.

저자 · Seonglae Cho, Donghyun Lee

arXiv에서 원문 보기

최신 논문

논문 전체 보기 →

METAL LAB 최신 기사

그림 출처: Seonglae Cho et al., arXiv:2608.23740, CC BY 4.0