Orquestador Multi-Agente Chrome
Activa de 1 a 5 agentes paralelos de Claude Code, cada uno con su propio navegador Chrome, para realizar tareas de navegación de forma concurrente.
Cuándo Usarlo
- Enviar formularios de contacto en una lista de sitios web
- Llenar solicitudes en múltiples plataformas
- Extraer páginas renderizadas con JS que necesitan interacción real con el navegador
- Cualquier tarea repetitiva de navegación donde hacerlo secuencialmente sea demasiado lento
Arquitectura
Espacio de trabajo del negocio (orquestador)
├── active/multi-chrome-agent/
│ ├── chat.md # Archivo de coordinación compartido
│ ├── launch_chrome.sh # Genera instancias de Chrome en puertos 9223-9227
│ ├── kill_chrome.sh # Cierra todas las instancias de Chrome
│ ├── chrome-agent-1/ # Espacio de trabajo para el Agente 1
│ │ ├── .mcp.json # Chrome DevTools en puerto 9223
│ │ └── CLAUDE.md # Instrucciones de comportamiento del agente
│ ├── chrome-agent-2/ # Puerto 9224
│ ├── chrome-agent-3/ # Puerto 9225
│ ├── chrome-agent-4/ # Puerto 9226
│ └── chrome-agent-5/ # Puerto 9227
Orquestación Paso a Paso
1. Determinar cuántos agentes se necesitan
Observa la tarea. Si hay 10 formularios de contacto para llenar, 3-5 agentes es buena cantidad. Si hay 3, usa 2-3. No sobreaprovisiones.
2. Lanzar instancias de Chrome
bash /Users/nicksaraev/Business/active/multi-chrome-agent/launch_chrome.sh [CANTIDAD]
Esto genera CANTIDAD instancias de Chrome en los puertos 9223+. Espera la confirmación "READY" para cada una.
3. Reiniciar el archivo de chat
Limpia el archivo de chat y escribe las asignaciones de tareas:
# Chat del Agente Multi-Chrome
## Orquestador
[2026-03-05 14:30] Lanzando 3 agentes para envío de formularios de contacto.
### Tareas del Agente 1
1. Ir a https://example1.com/contact -> llenar nombre: "Nick Saraev", correo: "[email protected]", mensaje: "Hola, estoy interesado en..."
2. Ir a https://example2.com/contact -> mismo llenado de formulario
### Tareas del Agente 2
1. Ir a https://example3.com/contact -> llenar formulario
2. Ir a https://example4.com/contact -> llenar formulario
### Tareas del Agente 3
1. Ir a https://example5.com/contact -> llenar formulario
2. Ir a https://example6.com/contact -> llenar formulario
## Agente 1
## Agente 2
## Agente 3
4. Generar agentes de Claude Code
Para cada agente, abre una nueva terminal y ejecuta:
cd /Users/nicksaraev/Business/active/multi-chrome-agent/chrome-agent-N && claude
Donde N es 1-5. Cada agente:
- Tomará su CLAUDE.md (instrucciones de trabajador del navegador)
- Se conectará a su instancia de Chrome mediante su .mcp.json local
- Leerá chat.md para sus asignaciones de tareas
- Ejecutará las tareas y reportará el estado de vuelta a chat.md
Lanzamiento programático mediante osascript: Claude Code bloquea sesiones anidadas a través de la variable de entorno CLAUDECODE. Para lanzar agentes programáticamente desde una sesión existente, usa osascript con env -u para eliminar las variables de entorno bloqueadoras:
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 'Eres el Agente $i. Lee /Users/nicksaraev/Business/active/multi-chrome-agent/chat.md, encuentra tus tareas bajo Agente $i y ejecútalas. Usa Chrome DevTools MCP para navegar sitios web, buscar listados y recopilar datos. Escribe tus hallazgos como una tabla markdown de vuelta a chat.md en la sección del Agente $i. Márquete como [WORKING] mientras estés activo y [DONE] cuando termines.'\""
sleep 2
done
Esto abre ventanas separadas de Terminal.app, cada una ejecutando una sesión independiente de Claude Code con su propio Chrome DevTools MCP.
Alternativa manual: Si osascript no funciona, indica al usuario que abra N pestañas de terminal:
Pestaña 1: cd ~/Business/active/multi-chrome-agent/chrome-agent-1 && claude
Pestaña 2: cd ~/Business/active/multi-chrome-agent/chrome-agent-2 && claude
...
5. Monitorear el progreso
Lee el archivo de chat periódicamente para verificar el estado de los agentes:
cat /Users/nicksaraev/Business/active/multi-chrome-agent/chat.md
Busca las etiquetas [DONE], [ERROR] o [WORKING] de cada agente.
6. Finalizar
Cuando todos los agentes reporten [DONE]:
bash /Users/nicksaraev/Business/active/multi-chrome-agent/kill_chrome.sh
Protocolo de Chat
Los agentes se comunican a través del archivo compartido chat.md:
| Etiqueta | Significado |
|---|---|
[WORKING] | El agente está procesando activamente una tarea |
[DONE] | El agente completó todas las tareas asignadas |
[ERROR] | El agente encontró un bloqueo (CAPTCHA, tiempo de espera, etc.) |
[WAITING] | El agente está inactivo, esperando nuevas tareas |
Mapa de Puertos
| Agente | Puerto Chrome | Espacio de Trabajo |
|---|---|---|
| 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/ |
El puerto 9222 está reservado para el Chrome DevTools MCP principal (no paralelo).
Casos Especiales
- CAPTCHA: El agente reporta
[ERROR] CAPTCHA en https://...en el chat. El orquestador puede reasignar o saltar. - Límite de tasa: Si un sitio bloquea después de N solicitudes, distribuye las URL entre más agentes para que cada uno acceda al sitio menos veces.
- Inicio de sesión requerido: Autentica previamente en cada instancia de Chrome antes de asignar tareas, o incluye los pasos de inicio de sesión en la lista de tareas.
- Tareas de larga duración: Los agentes revisan chat.md cada 30s. Si el orquestador necesita abortar, escribe
[ABORT]en la sección del Orquestador.