14강 · 멀티에이전트 & 하네스Lesson 14 · Multi-agents & Harness
Rule No.14 — 혼자 쓰지 말고 팀을 만들어라Rule No.14 — Don't work solo, build a team
강의 요약Summary
신상품 입점 검토를 한 사람한테 통째로 맡겨 봤습니다. 경쟁사 가격을 조사하고, 상품 설명 초안을 쓰고, 마진을 검증하고, 입점 품의서까지 혼자 다 시켰죠. 처음에는 잘 굴러가는 것 같습니다. 그런데 작업이 길어질수록 세 가지가 무너집니다. 앞에서 정해 둔 근거가 흐려지고, 초안을 쓴 사람이 자기 마진 계산도 검증하고, 서로 상관없는 일까지 한 줄로 늘어서 느려집니다. 이건 일꾼을 못 만들어서가 아닙니다. "한 명을 잘 만드는 것"과 "여럿을 팀으로 나누는 것"은 전혀 다른 문제이기 때문입니다.We tried handing the entire new-product onboarding review to one worker — research competitor prices, draft the product description, verify the margin, compile the entry proposal, all alone. At first it seems to run fine. But the longer the work goes, three things collapse: the pricing evidence set earlier goes foggy, the same worker that wrote the draft ends up verifying its own margin calculation, and even unrelated tasks queue up in one line and slow everything down. This isn't because the worker was poorly built. It's because "making one worker great" and "splitting many into a team" are entirely different problems.
이 강의의 핵심은 언제, 그리고 어떻게 팀으로 나누는가입니다. 팀의 기본 구조는 두 층입니다. 가운데에서 일을 쪼개고 결과를 모으는 오케스트레이터 하나, 그리고 각자의 좁은 컨텍스트에서 위임된 일을 처리하고 결과만 돌려주는 서브에이전트들. 핵심은 서브에이전트가 과정을 전부 올려보내지 않는다는 점입니다. 길고 지저분한 작업을 안에서 처리하고 압축된 결과만 위로 흘려보내기 때문에, 오케스트레이터의 책상이 깨끗하게 유지됩니다. 이것이 컨텍스트 격리입니다. 더 빠른 것도 있습니다 — 서로 의존하지 않는 일은 동시에 돌릴 수 있어서, 전체 시간이 가장 오래 걸리는 하나에 가까워집니다.The heart of this lecture is: when, and how, do you split into a team? The basic structure has two layers. In the center, one orchestrator that splits the job and gathers results; and sub-agents, each working in their own narrow context, handling a delegated task and returning only the result. The key is that sub-agents don't send all of their process upward. They handle the long, messy work inside and let only the compressed result flow up — so the orchestrator's desk stays clean. This is context isolation. Speed is also a gain — tasks that don't depend on each other can run at the same time, bringing total time close to the single longest one.
팀의 또 다른 원리는 생산자-검증자 분리입니다. 초안을 만든 일꾼이 자기 초안을 검증하면 약점을 보지 못합니다. 그래서 만드는 에이전트와 비판적으로 점검하는 에이전트를 따로 둡니다. 이 조율을 매번 말로 하면 반복도 안 되고 실수도 생기므로, 누가 언제 무엇을 받아서 무엇을 돌려주는지를 대본에 적어 두는 것이 하네스입니다. 좋은 하네스는 네 가지를 고정합니다 — 역할 분리, 결과 계약(무엇을 입력받고 무엇을 반환하나), 검증 게이트, 그리고 막히면 어디서 멈출지. 팀은 많이 부른다고 좋은 게 아닙니다. 나눌 가치가 있을 때 — 크고, 독립 작업이 있고, 검증이 필요한 일일 때 — 그때 팀을 만듭니다.Another principle is the producer–verifier split. A worker that made the draft cannot see its own weak spots when asked to verify it. So you keep a separate agent that produces and one that checks critically. Coordinating this by voice every time can't be repeated and invites mistakes — so writing down who, when, receives what, and returns what is what a harness does. A good harness locks in four things: the role split, the result contract (what goes in, what comes back), the verification gate, and where to stop when stuck. A team isn't better just because you call more agents. You build a team when it's worth splitting — when the job is big, has independent tasks, and needs verification.
핵심 개념 5가지Five key concepts
-
01
더 똑똑한 한 명이 아니라, 잘 나뉜 팀Not a smarter single worker — a well-split team
일이 커질 때 많은 분들이 더 강력한 모델을 찾습니다. 그런데 문제는 용량이 아니라 구조입니다. 한 명에게 다 몰면 컨텍스트가 흐려지고, 자기가 만든 걸 자기가 채점하며, 일이 직렬로 줄을 서서 느려집니다. 반면 잘 나뉜 팀은 각자 좁은 컨텍스트에서 또렷하게 일하고, 검증이 분리되고, 독립 작업은 병렬로 돌아갑니다. 좋은 결과는 더 똑똑한 한 명이 아니라 잘 나뉜 팀에서 나옵니다 — 단, 나눌 가치가 있을 때에만입니다.When a job grows, many people look for a more powerful model. But the problem isn't capacity — it's structure. Piling it on one worker fogs the context, makes it grade its own work, and queues tasks serially. A well-split team, by contrast, lets each work sharply in a narrow context, separates verification, and runs independent tasks in parallel. Good results come not from a smarter single worker but from a well-split team — but only when it's worth splitting.
-
02
역할 분담과 결과 계약Role split and result contract
오케스트레이터는 일을 쪼개고 배분하고 결과를 합칩니다. 서브에이전트는 자기만의 컨텍스트에서 위임된 일을 처리하고 결과만 돌려줍니다. 여기서 결과 계약이 중요합니다 — 각 서브에이전트가 무엇을 입력받고 무엇을 반환하는지가 명확해야 오케스트레이터가 결과를 안전하게 합칠 수 있습니다. 신상품 입점 예시라면, 가격 조사 담당은 경쟁사 가격 목록을 받아서 정리된 가격 표를 돌려주고, 설명 초안 담당은 그 표를 받아서 상품 설명을 돌려주는 식입니다. 계약이 모호하면 조합이 무너집니다.The orchestrator splits, assigns, and combines results. Sub-agents work in their own context, handle a delegated task, and return only the result. The result contract matters here — what each sub-agent takes in and what it returns must be clear so the orchestrator can safely combine what comes back. In the new-product onboarding example: the price-research role receives a product brief and returns an organized price table; the description-draft role receives that table and returns a product description. A vague contract breaks the combination.
-
03
컨텍스트 격리 — 책상이 차면 흐려진다Context isolation — a full desk fogs
서브에이전트의 핵심 가치는 컨텍스트 격리입니다. 아무리 길고 지저분하게 일해도, 그 과정의 토큰은 서브에이전트 자신의 책상에만 쌓입니다. 오케스트레이터한테 올라오는 건 압축된 결과뿐입니다. 그래서 오케스트레이터의 책상이 천천히 찹니다. 2강에서 배운 "컨텍스트를 보호하라"가 팀 수준에서 작동하는 방식이 바로 이것입니다. 격리는 속도를 위한 게 아니라 품질을 위한 설계 — 각 책상이 작게 유지될수록 일이 또렷해집니다.The core value of sub-agents is context isolation. No matter how long and messy their work is, those process tokens pile up only on their own desk. What rises to the orchestrator is only the compressed result. So the orchestrator's desk fills slowly. This is Rule No.2's "protect context" working at team scale. Isolation is a design for quality, not speed — the smaller each desk stays, the sharper the work.
-
04
독립적인 것만 동시에Only the independent ones run at once
팀의 속도 이점은 병렬 실행에서 옵니다. 서로 의존하지 않는 작업은 동시에 돌릴 수 있어서, 전체 시간이 셋을 합한 게 아니라 가장 오래 걸리는 하나에 가까워집니다. 단, 한 가지 조건이 있습니다 — 독립적인 작업에만 적용됩니다. B가 A의 결과를 받아야 시작할 수 있다면, 순서대로 직렬이 맞습니다. 일을 맡기기 전에 의존성을 먼저 따지고, 독립적인 것만 동시에 돌립니다. 정확히 얼마나 빨라지는지는 일과 환경마다 다르므로 숫자로 단정하지 않습니다.The team's speed benefit comes from parallel execution. Tasks that don't depend on each other can run at once, bringing total time close to the single longest one rather than the sum of all. One condition applies — only for independent tasks. If B can't start until it has A's result, sequential is correct. Before assigning work, check dependencies first and run only the independent ones at once. Exactly how much faster depends on the job and environment, so no specific multiple is claimed.
-
05
하네스 = 팀을 굴리는 체크리스트 한 장The harness = one checklist that runs the team
팀 조율을 매번 말로 하면 반복이 안 되고 실수가 생깁니다. 여러분이 매번 "이거 먼저, 그다음 저거"를 입으로 지시하던 걸 체크리스트 문서 한 장으로 적어 둔 것 — 그게 하네스입니다. 좋은 하네스는 네 가지를 고정합니다. ① 역할 분리: 누가 무엇을 맡는지. ② 인터페이스(결과 계약): 각 서브에이전트가 무엇을 받고 무엇을 반환하는지. ③ 검증 게이트: 생산자-검증자를 어느 지점에 넣는지. ④ 중단과 실패 처리: 막히면 어디서 멈추고 사람에게 넘길지. 대본에 적어 두면, 다음 신상품 입점 때도, 그다음에도 똑같이 돌릴 수 있습니다.Coordinating a team by voice every time can't be repeated and invites mistakes. Writing down in one checklist document what you'd otherwise say out loud — "do this first, then that" — is the harness. A good harness locks in four things: (1) role split — who takes what; (2) interface (result contract) — what each sub-agent receives and returns; (3) verification gate — where to slot in the producer–verifier; (4) stop and failure handling — where to halt and hand off to a human when stuck. Write it in the script, and you can run the same process for the next new-product onboarding, and the one after that.
실습 예제Exercise
하나의 요청을 세 역할로 쪼개 보는 연습입니다. 코드도, 설정 파일도 필요 없습니다 — 아래 지시문을 Claude 대화창에 그대로 붙여 넣어, "신상품 입점 검토"라는 업무를 조사 담당·작성 담당·검증 담당 세 역할로 나누고 각 역할의 입력·출력·완료 기준을 표로 정리시킵니다. 표가 나오면 그게 결과 계약입니다 — 그 순간 팀 설계의 첫 단계가 끝난 겁니다. 소재는 리테일 실무자가 실제로 마주치는 "신상품 입점 검토"이고, 어떤 업무든 같은 방식으로 역할을 쪼갤 수 있습니다.Practice splitting one request into three roles. No code, no config files — paste the instruction below straight into a Claude chat, and have it split the "new product onboarding review" job into three roles (research, writing, verification), then organize each role's input, output, and completion criteria into a table. When the table comes back, that's the result contract — at that moment, the first step of team design is done. The subject is "new product onboarding review," a task retail practitioners actually face, and any job can be split into roles the same way.
다음 업무를 세 가지 역할(조사 담당·작성 담당·검증 담당)로 나눠줘. 각 역할이 무엇을 입력받고, 무엇을 산출하고, 무엇이 되면 완료인지 표로 정리해줘: [신상품 입점 검토]Split the following job into three roles (research, writing, verification). Organize each role's input, output, and completion criteria into a table: [new product onboarding review]
## 표 형식## Table format
역할 / 입력 / 산출 / 완료 기준 — 이 네 열로 정리해줘.Role / Input / Output / Completion criteria — organize in these four columns.
## 주의사항## Notes
- 역할 간에 정보가 어떻게 넘어가는지(입력→산출 연결)가 보이도록 정리해줘.Make it clear how information passes between roles (the input→output connection).
- 완료 기준은 막연하게 "잘 완성"이 아니라, 다음 역할이 받아도 되는지 판단할 수 있는 구체적인 조건으로 써줘.Completion criteria should not be vague like "done well" — write them as concrete conditions the next role can use to decide whether to proceed.
- 역할을 추가로 더 나눌 필요가 있으면 제안해도 되지만, 먼저 세 역할로 시작해줘.You may suggest further splits, but start with the three roles first.
성공 기준: 각 역할의 입력·출력·완료 기준이 표로 나오면 성공 — 그게 결과 계약입니다. 완료 기준 칸이 구체적이고 다음 역할이 판단할 수 있는 내용이면 설계가 잘 된 것입니다. 거꾸로 "잘 완성", "충분히 좋음" 같은 막연한 말이 완료 기준에 들어오면, 그 부분을 더 구체화해 달라고 요청해 보세요.Success criteria: if each role's input, output, and completion criteria appear in a table, you succeeded — that's the result contract. If the completion-criteria column is specific and actionable enough for the next role to decide, the design is good. Conversely, if vague phrases like "done well" or "good enough" appear in the completion criteria, try asking for more specific language.
- 표 받기: Claude 대화창에 위 지시문을 붙여 넣고 표를 받는다. 각 역할의 입력·산출·완료 기준이 채워졌는지, 역할 간 정보 흐름이 연결됐는지 확인한다.Get the table: Paste the instruction into a Claude chat and receive the table. Check that each role has its input, output, and completion criteria filled in, and that the information flow between roles is connected.
- 완료 기준 점검: 완료 기준 칸이 "다음 담당자가 판단할 수 있는 조건"인지 읽어본다. "경쟁사 가격 5개 이상, 동일 카테고리 기준" 같은 구체성이면 좋은 계약이다. "충분히 조사됨" 같은 막연한 표현이면 더 구체화를 요청한다.Check completion criteria: Read whether the completion-criteria column states "conditions the next person can use to decide." Something like "5 or more competitor prices, same category" is a good contract. Vague phrasing like "sufficiently researched" is a signal to ask for more specificity.
- 업무를 바꿔 보기: "[신상품 입점 검토]" 자리에 내 실제 업무를 넣어 다시 돌려본다 — 예를 들어 "주간 매출 보고서 작성"이나 "신규 공급업체 심사". 역할 이름과 입출력이 바뀌더라도 같은 표 구조가 나오면, 어떤 업무든 이 방식으로 팀 설계를 시작할 수 있다는 뜻이다.Swap the job: Replace "[new product onboarding review]" with a real task of your own — like "weekly sales report" or "new supplier screening." If the same table structure comes out with just different role names and inputs/outputs, it means you can start team design for any job this way.