상위: 06_00_MOC
Isolate 전략 — 멀티에이전트 · 서브에이전트 · Context Quarantine
한 줄 정의
Isolate 전략은 컨텍스트를 독립된 단위로 쪼개 각 에이전트나 스레드가 좁은 서브태스크에만 집중하게 만드는 방식이다. 03 혼란과 04 충돌을 동시에 막으면서, 병렬 실행으로 처리 용량을 선형으로 늘린다.
“Subagents facilitate compression by operating in parallel with their own context windows, exploring different aspects of the question simultaneously before condensing the most important tokens for the lead research agent.” — Anthropic Engineering, 2025
왜 Isolate인가 — 동기
단일 에이전트에 모든 정보와 도구를 몰아주면 세 가지 문제가 생긴다.
- 혼란(Confusion): 관련 없는 도구와 지식이 한 컨텍스트에 뒤섞인다.
- 충돌(Clash): 서로 다른 서브태스크의 상충 정보가 한데 엉킨다.
- 병렬화 불가: 순차 실행이라 속도에 한계가 있고, 복잡한 리서치에서는 이 점이 치명적이다.
Isolate는 컨텍스트 창을 여러 독립 단위로 쪼개 이 세 문제를 한꺼번에 해결한다.
flowchart TD SINGLE["단일 에이전트<br/>(모든 정보 혼재)"] -->|"문제"| PROB["혼란 + 충돌 + 병렬화 불가"] ISO["Isolate 전략"] --> MA["멀티에이전트<br/>(오케스트레이터-워커)"] ISO --> QUA["Context Quarantine<br/>(환경 격리)"] ISO --> STATE["State Schema 격리<br/>(LangGraph 필드 분리)"] MA --> RESULT["혼란 ↓ + 충돌 ↓ + 병렬화 가능"] QUA --> RESULT STATE --> RESULT
1. 멀티에이전트 아키텍처 — 개요
Isolate의 가장 강력한 구현은 오케스트레이터-워커 패턴(Orchestrator-Worker Pattern)이다.
flowchart TB ORCH["오케스트레이터 (Orchestrator)<br/>계획 · 분해 · 조율<br/>(예: Claude Opus 4)"] W1["워커 1<br/>서브태스크 A<br/>독립 컨텍스트<br/>(예: Claude Sonnet 4)"] W2["워커 2<br/>서브태스크 B<br/>독립 컨텍스트"] W3["워커 3<br/>서브태스크 C<br/>독립 컨텍스트"] ORCH -->|"병렬 위임"| W1 & W2 & W3 W1 -->|"압축 결과 반환"| ORCH W2 -->|"압축 결과 반환"| ORCH W3 -->|"압축 결과 반환"| ORCH ORCH --> SYNTH["결과 합성<br/>최종 응답"]
핵심 특징은 다음과 같다.
- 오케스트레이터는 전체 계획과 조율에만 집중하고, 세부 실행은 맡지 않는다.
- 워커는 각자 독립된 컨텍스트 창을 가지며, 서로의 작업에 끼어들지 않는다.
- 워커 결과는 압축한 뒤 돌려보내 오케스트레이터의 컨텍스트를 보호한다.
2. Context Quarantine (컨텍스트 격리)
Drew Breunig(2025)이 이름 붙인 전술로, 태스크를 독립 스레드에 격리하고 각각에 전용 컨텍스트를 부여한다.
2-1. HuggingFace Deep Researcher 사례
브라우저 환경을 통째로 격리한 뒤, 에이전트가 직접 브라우저를 조작하고 관찰 결과(observations)만 메인 컨텍스트로 돌려준다.
- 브라우저 DOM, 스크롤, 클릭 이벤트는 격리 환경 안에서 처리한다.
- 메인 컨텍스트에는 “무엇을 발견했는가”만 전달한다.
- 그 결과 단일 에이전트 대비 90.2% 향상을 얻었다.
2-2. HuggingFace CodeAgent 사례
이미지·오디오 등 토큰 집약적 객체를 런타임 환경에 격리한다.
- LLM은 JSON tool call 대신 실행 가능한 코드를 출력한다.
- 코드는 샌드박스에서 실행되고, 토큰 집약적 객체(이미지 등)는 환경에 그대로 남는다.
- LLM 컨텍스트에는 참조(reference)만 전달된다.
sequenceDiagram participant L as LLM (Main Context) participant S as Sandbox Environment participant R as Result Store L->>S: 코드 출력 (실행 위임) S->>S: 이미지·오디오 처리 (격리) S->>R: 결과 저장 S->>L: 참조(path/key)만 반환 Note over L: 토큰 집약적 객체는<br/>컨텍스트에 들어오지 않음
3. State Schema 격리 (LangGraph)
LangGraph의 런타임 state 객체는 특정 필드를 특정 스텝에서만 LLM에 노출한다.
- 격리 방식: 도구 출력을 별도 필드에 저장해 두었다가, 필요한 순간에만 컨텍스트에 주입한다.
- 효과: LLM 컨텍스트를 늘 “필요한 정보만 담긴” 상태로 유지한다.
- 관계: 06_01-Write전략-스크래치패드-파일시스템-크로스세션의 런타임 State와 같은 메커니즘이지만, 여기서는 격리 효과 쪽에 초점을 둔다.
4. 멀티에이전트의 근본 가치 — “충분한 토큰 투입”
Anthropic(2025)은 다소 반직관적인 통찰을 내놓는다.
“Multi-agent systems work mainly because they help spend enough tokens to solve the problem.” — Anthropic Engineering, 2025
멀티에이전트가 작동하는 주된 이유는 문제 해결에 충분한 토큰을 투입하도록 돕기 때문이다. 다만 그만큼 비용이 따른다.
| 항목 | 배율 |
|---|---|
| 채팅 대비 단일 에이전트 | 약 4× 토큰 |
| 채팅 대비 멀티에이전트 | 약 15× 토큰 |
5. Claude Code — 의도적으로 단순한 서브에이전트 패턴
Walden Yan(Cognition, 2025)은 Claude Code를 올바른 Isolate 구현의 모범 사례로 꼽는다.
“Claude Code is an example of an agent that spawns subtasks. However, it never does work in parallel with the subtask agent… The designers of Claude Code took a purposefully simple approach.” — Walden Yan, 2025
Claude Code의 서브에이전트 원칙은 세 가지다.
- 병렬 작업 금지: 서브에이전트가 생성되면 메인 에이전트는 대기한다.
- 질문 응답 전용: 서브에이전트는 조사만 하고 직접 실행은 하지 않는다.
- 조사 결과가 메인 히스토리에 남지 않으므로, Context Quarantine 효과를 자동으로 얻는다.
Isolate 전략을 최소한의 장치로 구현한 사례라 할 수 있다.
6. Isolate 전략의 도메인 의존성
| 도메인 특성 | 권장 Isolate 방식 | 이유 |
|---|---|---|
| 독립적·병렬 가능 리서치 | 멀티에이전트 (Anthropic 패턴) | 90.2% 향상, 병렬 토큰 투입 |
| 상호의존적 코딩 태스크 | 단일 에이전트 or Context Quarantine만 | 결정 충돌 방지 (Cognition 원칙) |
| 토큰 집약적 객체 처리 | CodeAgent 샌드박스 격리 | 이미지·오디오를 컨텍스트 밖으로 |
| 브라우저 자동화 | 브라우저 환경 격리 | DOM 처리를 환경에 위임 |
자세한 찬반 논쟁은 06_05-멀티에이전트-찬성-Anthropic-리서치시스템과 06_06-멀티에이전트-반대-Cognition-DontBuild 참고.
7. Isolate가 막는 실패모드
| 실패모드 | Isolate 기법 | 메커니즘 |
|---|---|---|
| 혼란 (Confusion) | Context Quarantine | 각 태스크를 독립 컨텍스트에 격리 |
| 충돌 (Clash) | 에이전트 격리 | 상충 정보가 동일 컨텍스트에 공존 방지 |
| 과부하 (Overload) | 멀티에이전트 병렬 분산 | 컨텍스트를 여러 창으로 분산 |
| 암묵적 결정 분산 | 전체 트레이스 공유 (Cognition) | 공유 컨텍스트로 결정 일관성 유지 |
참고문헌
- Context Engineering for Agents — The LangChain Team, 2025, LangChain Blog
- How we built our multi-agent research system — Anthropic Engineering Team, 2025, Anthropic Engineering
- Don’t Build Multi-Agents — Walden Yan, 2025, Cognition Blog
- How to Fix Your Context — Drew Breunig, 2025, dbreunig.com
관련 노트
- 06_05-멀티에이전트-찬성-Anthropic-리서치시스템 — Isolate의 극대화 구현 (찬성 측)
- 06_06-멀티에이전트-반대-Cognition-DontBuild — Isolate의 한계와 반론 (반대 측)
- 06_09-실패모드-전략-매핑표 — Isolate가 막는 실패모드 전체 매핑
- 03 혼란 — Isolate가 직접 방어하는 실패모드
- 04 충돌 — Isolate가 직접 방어하는 또 다른 실패모드