Interlock · Experiment E10실험 E10
Claude Code's own agent teams on the same task같은 작업에서 Claude Code의 agent teams
Claude Code has an experimental feature for this: agent teams, where one lead session spawns teammates that message each other and share a task list. E10 gives one team two jobs at once, one changing a function's signature and one writing a call to it, and checks the result. Claude Code에는 이 문제를 위한 실험 기능이 있습니다. 리드 세션 하나가 팀원을 띄우고, 팀원끼리 메시지와 공유 작업 목록으로 조율하는 agent teams입니다. E10은 한 팀에 두 일을 동시에 맡깁니다. 하나는 함수의 시그니처를 바꾸고, 하나는 그 함수를 부르는 코드를 씁니다.
Run on 2026-10-21 with real Claude Code 2.1.304 sessions on Sonnet 5.5: 12 team runs (each a lead and two teammates) and 24 headless sessions, 60 sessions in all, $2.52 reported cost (two team runs closed before recording theirs).2026-10-21 실행. 실제 Claude Code 2.1.304 세션(Sonnet 5.5). 팀 실행 12번(각각 리드 1 + 팀원 2)과 헤드리스 세션 24개, 모두 60세션. 보고 비용 $2.52(팀 실행 2번은 기록 전에 닫힘). Raw results (JSON)원자료 (JSON)
Method방법
- Two jobs at once.
authchangeslogin(user, password)tologin(user, password, otp)and edits only the auth module.featurewrites code that callslogin(the four tasks of E1 and E8) and does not edit the auth module.두 일을 동시에.auth는login(user, password)를login(user, password, otp)로 바꾸고 auth 모듈만 고칩니다.feature는login을 부르는 코드를 쓰고(E1·E8의 작업 4종) auth 모듈은 고치지 않습니다. - Agent teams: with
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1, the lead is asked to create teammates named auth and feature, have them work at the same time, and is given both jobs as written. Teams are not spawned under-p(docs), so the lead runs as an interactive session in tmux. A run ends when the whole team has gone quiet, not at the lead's first "done", so the lead can still act on what its teammates report.Agent teams:CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1로 켜고, 리드에게 auth와 feature라는 팀원을 만들어 동시에 일하게 하라고 하면서 두 일을 그대로 줍니다. 문서상-p에서는 팀원을 만들지 않으므로(문서) 리드는 tmux 안의 대화형 세션으로 돌렸습니다. 리드의 첫 "완료"가 아니라 팀 전체가 조용해질 때 끝으로 보아, 리드가 팀원의 보고를 받고 더 할 기회를 줍니다. - Baseline: the same two jobs as two
claude -psessions started together in the same checkout, with no team.기준선: 같은 두 일을claude -p세션 둘로 같은 체크아웃에서 동시에 시작합니다. 팀 기능은 없습니다. - Same for both: a new HOME and repository per run,
acceptEdits, shell and web tools denied so no run waits on a permission prompt. In this experiment, teammates worked in the lead's checkout.두 조건 공통: 시행마다 새 HOME과 새 저장소,acceptEdits, 셸·웹 도구는 거부(권한 질문으로 멈추지 않게). 이 실험에서 팀원은 리드와 같은 체크아웃에서 일했습니다. - Judged by code, with E8's argument binding. A run works if auth added otp and every
logincall fits the new signature.판정은 코드가 합니다. E8과 같은 인자 바인딩입니다. auth가 otp를 추가했고 모든login호출이 새 시그니처에 맞으면 작동으로 봅니다.
Results결과
12 runs per condition: 4 tasks × 3.조건마다 12회: 작업 4종 × 3.
| Condition조건 | Works작동 | auth added otpauth가 otp 추가 | Runs with an old-form call옛 형태 호출이 있는 시행 | Lead told feature about otp리드가 feature에게 otp를 알림 | Avg. time평균 시간 | Avg. cost평균 비용 |
|---|---|---|---|---|---|---|
| Agent teamsAgent teams | 3/12 | 12/12 | 9 | 11/12 | 53 s | $0.120* |
| Two sessions, no team세션 둘, 팀 없음 | 1/12 | 12/12 | 11 | - | 14 s | $0.110 |
*Mean of the 10 runs whose lead recorded its total. For reference, on the same four tasks in E8, where the teammate's change sits on another branch: no tool 0/12, Interlock 12/12. That is a different setup, not the same batch.*리드가 총비용을 기록한 10번의 평균. 참고로 동료 변경이 다른 브랜치에 있는 E8의 같은 작업 4종: 도구 없음 0/12, Interlock 12/12. 설정이 다르며 같은 배치의 비교가 아닙니다.
- The lead knew, said so, and the old call stayed. The lead had both jobs, so in 11 of 12 runs its instructions to feature mentioned the otp change. In 8 of those 11 it told feature to follow the spec or the current file anyway, for example: "another teammate is concurrently changing login to take a third argument
otp; just implement per the spec given". In the other 3 it said to pass otp.리드는 알았고, 알렸고, 옛 호출이 남았습니다. 리드는 두 일을 모두 받았으므로 12번 중 11번 feature에게 주는 지시에 otp 변경을 적었습니다. 그 11번 중 8번은 그래도 명세나 지금 파일대로 쓰라고 했습니다. 예: "another teammate is concurrently changing login to take a third argumentotp; just implement per the spec given". 나머지 3번은 otp를 넘기라고 했습니다. - The 3 that worked were all one task, the only one that says to "add whatever parameters it needs". In the three tasks that fix the function's parameters (for example
checkout(user, password, items)), all 9 runs ended with the old call.작동한 3번은 모두 같은 작업이었습니다. "필요한 매개변수를 추가하라"고 열어 둔 유일한 작업입니다. 매개변수가 정해진 나머지 세 작업(예:checkout(user, password, items))은 9번 모두 옛 호출로 끝났습니다. - A teammate's warning did not change the result. In 9 of 12 runs auth reported to the lead that callers outside the auth module would fail or need the new argument ("Any caller still using
login(user, password)will now fail with a TypeError"). 6 of those 9 still ended broken. In no run did the lead message feature or edit anything after that; it reported done. Teammates sent each other no otp message in any run.팀원의 경고도 결과를 바꾸지 못했습니다. 12번 중 9번 auth가 리드에게 auth 모듈 밖의 호출이 깨지거나 새 인자가 필요하다고 보고했습니다("Any caller still usinglogin(user, password)will now fail with a TypeError"). 그 9번 중 6번은 깨진 채 끝났습니다. 리드가 그 뒤 feature에게 메시지를 보내거나 무언가를 고친 시행은 없었고, 완료라고 보고했습니다. 팀원끼리 otp에 대해 주고받은 메시지도 한 번도 없었습니다. - Sharing a checkout alone did little: the two plain sessions worked in 1 of 12.체크아웃 공유만으로는 거의 안 됐습니다: 팀 없는 두 세션은 12번 중 1번 작동했습니다.
What to watch주의할 점
- The same pattern as E8. Inside one team, as with Shepherd and the shared note in E8, the news arrives and the agent still follows its instructions and the code on disk.E8과 같은 모양입니다. 한 팀 안에서도 E8의 Shepherd·공유 메모처럼, 소식은 닿지만 에이전트는 받은 지시와 디스크의 코드를 따릅니다.
- One session only. The docs say a session has exactly one team and a team cannot be shared across sessions. Teammates of different developers, or agents from other vendors, are outside this feature; E10 does not measure them.세션 하나에 한정됩니다. 문서에 따르면 세션마다 팀이 정확히 하나이고, 팀을 여러 세션이 공유할 수 없습니다. 다른 개발자의 팀원이나 다른 회사 에이전트는 이 기능의 범위 밖이며, E10은 그 경우를 재지 않았습니다.
Limits한계
- Three runs per task, one model (Sonnet 5.5). Agent teams are experimental, and we drove the interactive lead through tmux.작업마다 3회, 모델 하나(Sonnet 5.5). agent teams는 실험 기능이고, 대화형 리드를 tmux로 조작했습니다.
- Following a task's fixed signature counts as a failure, as in E8. One can call that keeping to the spec; where the task left the parameters open, the team got 3 of 3.작업이 정한 시그니처를 따른 것을 실패로 칩니다(E8과 같음). 명세를 지킨 것이라고 볼 수도 있습니다. 매개변수가 열려 있던 작업에서는 팀이 3/3이었습니다.
- We wrote the lead's prompt and gave it no advice on coordinating. A prompt that asks it to manage dependencies might do better.리드에게 준 문장은 우리가 정했고, 조율하는 법은 알려 주지 않았습니다. 의존성을 챙기라고 하면 결과가 달라질 수 있습니다.
- Team cost is the total the lead session recorded; 2 runs closed before it was written.팀 비용은 리드 세션이 기록한 총비용이며, 2번은 기록되기 전에 닫혔습니다.
- Before the experiment, setup checks ran 4 team runs and up to 3 baseline runs, none in the results. In the first two the prompt never reached the lead (typed too early, and a startup notice). The two pilots that ran ended with the old call; after the first, we moved the end of a run from the lead's "done" to the whole team going quiet. The pilots are in the repository's raw data.실험 전 설치 점검으로 팀 실행 4번과 기준선 최대 3번을 돌렸고 결과에 넣지 않았습니다. 처음 2번은 프롬프트가 리드에게 들어가지 않았습니다(너무 일찍 입력, 시작 안내 창). 실제로 돈 점검 2번은 옛 호출로 끝났고, 첫 점검 뒤 시행의 끝을 리드의 "완료"에서 팀 전체가 조용해질 때로 바꿨습니다.
- We build Interlock. Every verdict is computed by code, and the raw data holds the lead's instructions to each teammate, the teammates' messages and the final screen. The Interlock source and the experiment harness are not public.Interlock은 우리가 만든 도구입니다. 판정은 모두 코드가 했고, 원자료에 리드가 팀원에게 준 지시, 팀원의 메시지, 마지막 화면이 들어 있습니다. Interlock 소스와 실험 도구는 공개하지 않습니다.