멀티 에이전트 Chrome 오케스트레이터
1~5개의 병렬 Claude Code 에이전트를 실행하여, 각 에이전트가 자체 Chrome 브라우저를 사용해 브라우저 작업을 동시에 수행합니다.
사용 시기
- 여러 웹사이트에 걸쳐 문의 양식 제출
- 여러 플랫폼에 지원서 작성
- 실제 브라우저 상호작용이 필요한 JS 렌더링 페이지 스크래핑
- 순차적으로 처리하기에는 너무 느린 반복적인 브라우저 작업
아키텍처
Business workspace (orchestrator)
├── active/multi-chrome-agent/
│ ├── chat.md # 공유 조정 파일
│ ├── launch_chrome.sh # 9223-9227 포트에 Chrome 인스턴스 실행
│ ├── kill_chrome.sh # 모든 Chrome 인스턴스 종료
│ ├── chrome-agent-1/ # 에이전트 1 워크스페이스
│ │ ├── .mcp.json # 9223 포트의 Chrome DevTools
│ │ └── CLAUDE.md # 에이전트 동작 지침
│ ├── chrome-agent-2/ # 9224 포트
│ ├── chrome-agent-3/ # 9225 포트
│ ├── chrome-agent-4/ # 9226 포트
│ └── chrome-agent-5/ # 9227 포트
단계별 오케스트레이션
1. 필요한 에이전트 수 결정
작업을 확인합니다. 10개의 문의 양식을 작성해야 한다면 3-5개의 에이전트가 적당합니다. 3개라면 2-3개를 사용하세요. 과도하게 프로비저닝하지 마십시오.
2. Chrome 인스턴스 실행
bash /Users/nicksaraev/Business/active/multi-chrome-agent/launch_chrome.sh [COUNT]
이 명령은 9223+ 포트에 COUNT개의 Chrome 인스턴스를 실행합니다. 각각에 대해 "READY" 확인 메시지를 기다립니다.
3. 채팅 파일 초기화
채팅 파일을 지우고 작업 할당을 작성합니다:
# Multi-Chrome Agent Chat
## Orchestrator
[2026-03-05 14:30] 문의 양식 제출을 위해 3개의 에이전트를 시작합니다.
### Agent 1 Tasks
1. https://example1.com/contact 방문 -> 이름: "Nick Saraev", 이메일: "[email protected]", 메시지: "안녕하세요, 관심이 있습니다..." 입력
2. https://example2.com/contact 방문 -> 동일한 양식 작성
### Agent 2 Tasks
1. https://example3.com/contact 방문 -> 양식 작성
2. https://example4.com/contact 방문 -> 양식 작성
### Agent 3 Tasks
1. https://example5.com/contact 방문 -> 양식 작성
2. https://example6.com/contact 방문 -> 양식 작성
## Agent 1
## Agent 2
## Agent 3
4. Claude Code 에이전트 실행
각 에이전트에 대해 새 터미널을 열고 다음을 실행합니다:
cd /Users/nicksaraev/Business/active/multi-chrome-agent/chrome-agent-N && claude
여기서 N은 1-5입니다. 각 에이전트는:
CLAUDE.md(브라우저 작업자 지침)를 읽습니다.- 로컬
.mcp.json을 통해 자체 Chrome 인스턴스에 연결합니다. chat.md에서 작업 할당을 읽습니다.- 작업을 실행하고 상태를
chat.md에 보고합니다.
osascript를 통한 프로그래밍 방식 실행: Claude Code는 CLAUDECODE 환경 변수를 통해 중첩 세션을 차단합니다. 기존 세션 내에서 프로그래밍 방식으로 에이전트를 실행하려면 osascript와 env -u를 사용하여 차단 환경 변수를 제거하십시오:
for i in 1 2 3 4 5; do
osascript -e "tell application \"Terminal\" to do script \"cd /Users/nicksaraev/Business/active/multi-chrome-agent/chrome-agent-$i && env -u CLAUDECODE -u CLAUDE_CODE_ENTRYPOINT -u CLAUDE_AGENT_SDK_VERSION -u CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING -u CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS claude --dangerously-skip-permissions -p 'You are Agent $i. Read /Users/nicksaraev/Business/active/multi-chrome-agent/chat.md, find your tasks under Agent $i, and execute them. Use Chrome DevTools MCP to browse websites, search listings, and collect data. Write your findings as a markdown table back to chat.md under the Agent $i section. Mark yourself as [WORKING] while active and [DONE] when finished.'\""
sleep 2
done
이 명령은 각각 자체 Chrome DevTools MCP가 있는 독립적인 Claude Code 세션을 실행하는 별도의 Terminal.app 창을 엽니다.
수동 대체 방법: osascript가 작동하지 않으면 사용자에게 N개의 터미널 탭을 열도록 안내합니다:
Tab 1: cd ~/Business/active/multi-chrome-agent/chrome-agent-1 && claude
Tab 2: cd ~/Business/active/multi-chrome-agent/chrome-agent-2 && claude
...
5. 진행 상황 모니터링
채팅 파일을 주기적으로 읽어 에이전트 상태를 확인합니다:
cat /Users/nicksaraev/Business/active/multi-chrome-agent/chat.md
각 에이전트의 [DONE], [ERROR] 또는 [WORKING] 태그를 확인합니다.
6. 종료
모든 에이전트가 [DONE]을 보고하면:
bash /Users/nicksaraev/Business/active/multi-chrome-agent/kill_chrome.sh
채팅 프로토콜
에이전트는 공유 chat.md 파일을 통해 통신합니다:
| 태그 | 의미 |
|---|---|
[WORKING] | 에이전트가 작업을 적극적으로 처리 중입니다 |
[DONE] | 에이전트가 할당된 모든 작업을 완료했습니다 |
[ERROR] | 에이전트가 장애물(CAPTCHA, 타임아웃 등)을 만났습니다 |
[WAITING] | 에이전트가 유휴 상태이며 새 작업을 기다리고 있습니다 |
포트 맵
| 에이전트 | Chrome 포트 | 워크스페이스 |
|---|---|---|
| 1 | 9223 | chrome-agent-1/ |
| 2 | 9224 | chrome-agent-2/ |
| 3 | 9225 | chrome-agent-3/ |
| 4 | 9226 | chrome-agent-4/ |
| 5 | 9227 | chrome-agent-5/ |
포트 9222는 기본(비병렬) Chrome DevTools MCP용으로 예약되어 있습니다.
엣지 케이스
- CAPTCHA: 에이전트가
[ERROR] CAPTCHA on https://...를 채팅에 보고합니다. 오케스트레이터가 작업을 재할당하거나 건너뛸 수 있습니다. - 속도 제한: 사이트가 N번 요청 후 차단하는 경우, 각 에이전트가 해당 사이트를 더 적게 방문하도록 URL을 더 많은 에이전트에 분산합니다.
- 로그인 필요: 작업을 할당하기 전에 각 Chrome 인스턴스에서 사전 인증을 수행하거나 작업 목록에 로그인 단계를 포함합니다.
- 장기 실행 작업: 에이전트는 30초마다
chat.md를 확인합니다. 오케스트레이터가 중단해야 하는 경우 Orchestrator 섹션에[ABORT]를 작성합니다.