多代理 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 環境變數阻止巢狀 session。若要從現有 session 中以程式方式啟動代理,請使用 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 '你是代理 $i。請讀取 /Users/nicksaraev/Business/active/multi-chrome-agent/chat.md,找到你在 Agent $i 下的任務,並執行它們。使用 Chrome DevTools MCP 瀏覽網站、搜尋列表並收集資料。將你的發現以 Markdown 表格形式寫回 chat.md 中的 Agent $i 章節。工作期間將自己標記為 [WORKING],完成後標記為 [DONE]。'\""
sleep 2
done
這會開啟多個獨立的 Terminal.app 視窗,每個視窗執行一個獨立的 Claude Code session,並配有各自的 Chrome DevTools MCP。
手動備援: 如果 osascript 無法運作,請告知使用者開啟 N 個終端機分頁:
分頁 1:cd ~/Business/active/multi-chrome-agent/chrome-agent-1 && claude
分頁 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。如果協調器需要中止,請在協調器區段寫入
[ABORT]。