Hasta aquí delegaste tareas aisladas. Ahora imagina un pedido realmente grande: "recopila todo lo que existe sobre el tema X, confirma qué es realmente cierto y entrégame un informe completo". Un solo subagente no es suficiente, y peor aún, si detenerse demasiado pronto o creer en el primer resultado, recibes una respuesta convincente pero incorrecta. La arquitectura a escala lo resuelve con tres etapas encadenadas: una flota que busca hasta agotar las opciones (find), un tribunal que refuta cada hallazgo (verify) y uno sintetizador que reúne solo lo que sobrevivió (synthesize). Graba este pipeline — es el esqueleto de todo el módulo.
↑ El esqueleto del harness: find en bucle → verify adversarial por mayoría → synthesize solo de los sobrevivientes.
Contenido detallado
🚢 La flota: de un subagente a muchos
Una flota es un conjunto de subagentes del mismo tipo que trabajan en el mismo problema al mismo tiempo: no uno, no dos, sino diez, cuarenta, cien, cada uno en una parte. El maestro deja de «delegar una tarea» y pasa a ejecutar una operación: dividir el espacio de búsqueda, despachar la flota, recopilar las partes y pasar a la siguiente etapa. La unidad de razonamiento deja de ser el subagente y pasa a ser el sistema entero.
⚓ La analogía de la flota de exploración
Piensa en un océano por cartografiar. Un solo barco tarda meses y aun así deja regiones enteras sin explorar. Un flota divide el mar en sectores, envía un barco a cada uno y la almirante (el director) reúne las cartas. Ningún barco se comunica con los demás: todos informan a la almirante. Si una región resulta confusa, ella envía más barcos allá. La escala no es el tamaño del barco, sino la cantidad y la coordinación.
- •Almirante = el maestro/harness, que divide, despacha y consolida.
- •Barcos = la flota de subagentes, cada uno en un sector del problema.
- •Cartas = los informes parciales que vuelven para unirse.
un patrón en el que muchos subagentes con el mismo rol trabajan en paralelo en distintas partes del mismo problema, coordinados por un único orquestador.
los problemas de cobertura amplia (recorrer un repositorio gigante, recopilar bibliografía, auditar cientos de archivos) solo se vuelven manejables cuando piensas en una flota, no en "un agente esforzado".
partición · paralelismo a gran escala · el orquestador como centro · el sistema como unidad de razonamiento.
🔁 Loop-until-dry: repetir hasta que se agote
El mayor error de una búsqueda a gran escala es detenerse demasiado pronto. Un subagente encuentra cinco cosas, cree que «ya está» y las devuelve, pero en realidad había quince. La solución es el loop-until-dry: ejecuta la flota en rondas, y solo detente cuando K rondas seguidas no devuelvan resultados (nada nuevo). «Seco» no es «una ronda sin novedades»; es K rondas sin novedades — un amortiguador contra detenerse en el primer respiro.
Ronda: envía a la flota
Cada subagente busca en su parte.
La ronda produce un lote de hallazgos nuevos. Todo lo que ya apareció antes se deduplica con el acumulado.
Mide el «beneficio» de la ronda
Cuántos hallazgos inéditos ¿entraron?
Si aparece un hallazgo nuevo, el contador de rondas vacías vuelve a cero y abre una nueva ronda. La búsqueda todavía está «húmeda».
Ronda vacía → cuenta para K
Nada nuevo en esta ronda.
Incrementa el contador. Solo cuando llega a K (p. ej., 2 o 3 vacías seguidas), la búsqueda se declara seca y termina la etapa.
💡 Por qué K y no 1
Una ronda vacía puede ser cuestión de suerte (esa vez la flota buscó en los lugares equivocados). Exigir K vacías seguidas evita declarar la victoria demasiado pronto. A cambio, define un límite de rondas (p. ej., máximo 8) para que el loop no se ejecute para siempre en un caso patológico.
⚖️ Verificación adversarial: N escépticos refutan
Encontrar no es confirmar. Cada hallazgo de la flota se incluye en un tribunal: tú activas N subagentes escépticos, y la tarea de cada uno no es estar de acuerdo: es intentar derribar la afirmación ("encuentra una evidencia de que esto está mal"). Si la mayoría poder refutar, el hallazgo muere. Solo sobrevive lo que resistió el ataque. Es lo contrario de pedir confirmación: pedir confirmación solo refuerza el sesgo.
✓ Verificación adversarial (hazla)
- ✓Indicar al escéptico que buscar el error, no confirmarlo
- ✓Usar N escépticos independientes y decidir por mayoría
- ✓Exigir que cada refutación señale evidencia, no opiniones
- ✓Dejar pasar solo lo que sobrevivió al ataque
✗ Verificación ingenua (evítala)
- ✗Preguntar "¿esto está bien?" (fomenta el asentimiento)
- ✗Un único verificador (se convierte en un punto único de sesgo)
- ✗El mismo agente que encontró es quien valida
- ✗Aceptar todo lo que «parece plausible»
🔭 Perspectivas diversas: lentes diferentes
Una flota de subagentes idénticos cometen los mismos errores en coro: todos miran el mismo lugar e ignoran el mismo punto ciego. La solución es darle a cada subagente una lente diferente: el mismo material, distintos roles. Uno busca contradicciones, otro busca lo que falta, otro lo analiza desde la perspectiva del costo y otro desde la seguridad. Diversidad de perspectivas = diversidad de errores encontrados. Es la misma idea de las 5 personas de la Ruta 1, ahora como pieza de arquitectura.
Lente de la contradicción
"¿Dónde se contradicen dos hallazgos? ¿Cuál de ellos debe estar equivocado?"
Lente de la brecha
"¿Qué debería existir y no apareció? ¿Qué pregunta nadie hizo?"
Lente del costo
"¿Cuánto cuesta esto en la práctica? ¿Qué cambia cuando el presupuesto se ajusta?"
Lente del riesgo
"¿Dónde falla esto? ¿Cuál es el peor caso? ¿Qué aprovecharía un adversario?"
Lente de la escala
"¿Funciona con 10? ¿Y con 10 millones? ¿En qué punto deja de servir el enfoque?"
Suma de perspectivas
Cada perspectiva encuentra un defecto que las demás no ven. Juntas, cubren lo que una flota uniforme pasaría por alto.
📊 Diversidad > cantidad
Diez subagentes con la misma lente encuentra, en la práctica, casi lo mismo que encontraría una persona — solo que más rápido. Cinco con lentes diferentes encuentran cosas que ninguno de los diez vería. Al escalar, varía el enfoque antes de aumentar la cantidad.
🧮 Completeness critic: ¿qué falta todavía?
Loop-until-dry te dice cuándo la flota dejó de encontrar. Pero "dejó de encontrar" no significa "encontró todo lo importante"; puede haber quedado una brecha entera sin explorar. Entra el completeness critic: un subagente cuya única misión es revisar el conjunto reunido y preguntar "¿qué falta todavía?". No busca; señala las brechas. Cada brecha que señala se convierte en una nueva ronda de búsqueda dirigida, cerrando el ciclo entre verificar y volver a buscar.
# Pergunta única do crítico: "o que ainda falta?"
COBERTO ✓ definição do conceito
COBERTO ✓ 3 casos de uso confirmados
COBERTO ✓ limites conhecidos
LACUNA ✗ nenhuma fonte sobre custo em produção
LACUNA ✗ nada sobre o que muda fora do Claude Code
LACUNA ✗ zero contra-exemplos (só casos de sucesso)
# → o harness abre 3 buscas direcionadas para
# fechar exatamente estas lacunas e roda de novo.
💡 Buscar es diferente de criticar
Quien busca tiende a conformarse con lo que encontró. Por eso, el crítico de exhaustividad es un subagente separado, con contexto nuevo — llega sin el apego del buscador a "ya encontré bastante" y ve el vacío que el buscador normaliza. Es el mismo principio del revisor imparcial, aplicado a la cobertura.
📋 Sin límite silencioso: registrar lo que se recortó
Todo sistema a escala tiene límites — de tokens, de tiempo, de número de elementos. El problema no es limitar; es cortar en silencio. Si la flota encontró 500 elementos y el sistema solo procesa 50 sin avisar, recibes un informe que parece completo y no es — y nunca lo vas a saber. La regla de oro: ningún recorte silencioso. ¿Recortaste algo? Regístralo: qué se recortó, cuánto y con qué criterio. El usuario necesita ver el límite del mapa.
✓ Recorte honesto
- ✓"Procesé 50 de 500 hallazgos (los más relevantes)"
- ✓Registra el criterio del corte (relevancia, fecha, alcance)
- ✓Guarda lo que quedó pendiente para una ronda futura
- ✓Permite que el usuario decidir si quieres superar el límite
✗ Límite silencioso
- ✗Se trunca en 50 y no avisa que había más
- ✗El informe parece completo, pero es solo una parte
- ✗Descarta los otros 450 sin dejar rastro
- ✗Decisión de cobertura tomada por ti sin ti
⚠️ El error más peligroso al escalar
Es el único error de esta lista que no da señales. Una búsqueda superficial se nota; el tribunal elimina un hallazgo falso; pero un límite silencioso entrega un informe plausible e incompleto que nadie cuestiona. Por eso la regla es estricta: si se cortó, que aparezca en el log — siempre, incluso cuando el recorte parece obvio.
🧬 Sintetizar: el informe que cierra el pipeline
Al final, alguien tiene que juntarlo todo — pero reunir no es pegar. El sintetizador recibe solo los hallazgos que sobrevivieron al tribunal, después de cerrar las brechas, con el registro de recortes a mano, y produce una narrativa coherente: deduplica, agrupa por tema, resuelve los conflictos restantes, cita el origen de cada afirmación y declara lo que quedó fuera. El informe final es lo único que vuelve a ti: limpio, como indica el modelo de subagente.
# Síntese: <pergunta original>
## Conclusões (sobreviveram ao tribunal)
- <afirmação A> [fonte: f1, f7 · 4/4 céticos mantiveram]
- <afirmação B> [fonte: f3 · 3/4 mantiveram]
## Conflitos resolvidos
- A vs. C → C caiu (refutado por evidência em f9)
## O que ficou de fora (sem cap silencioso)
- 500 achados → 38 processados (top por relevância)
- lacuna ainda aberta: custo em produção (0 fontes)
## Confiança
- alta nos itens 4/4; média nos 3/4; baixa onde há 1 fonte
📊 La síntesis lleva el rastro
Un buen informe no oculta el proceso: cada conclusión incluye cuántos escépticos la mantuvieron e de dónde vino, y hay una sección honesta de "lo que quedó fuera". Eso es lo que transforma una pila de hallazgos en un documento en el que se puede confiar y que se puede auditar.
Ejemplo: el esqueleto de un harness
Uno harness es el código (o la skill) que orquesta la flota: el «almirante» hecho programa. No necesitas escribirlo ahora en ningún lenguaje específico; lo que importa es reconocer la forma. Abajo, el esqueleto en pseudocódigo: los siete temas de este módulo aparecen como pasos de una función. Léelo como una receta, no como código listo para usar.
função pesquisar_em_escala(pergunta, K=2, max_rodadas=8, N_ceticos=4):
achados = conjunto() # dedup automático
rodadas_vazias = 0
log_cortes = []
# ── 1+2 · FIND em loop-until-dry ──────────────────────
enquanto rodadas_vazias < K e rodada < max_rodadas:
fatias = particionar(pergunta, achados) # tópico 1: frota
novos = frota_paralela(BUSCADOR, fatias) # cada um, uma lente (tópico 4)
ineditos = novos - achados
se ineditos vazio: rodadas_vazias += 1
senão: rodadas_vazias = 0; achados |= ineditos
# ── 3 · VERIFY adversarial (mata por maioria) ─────────
para cada a em achados:
votos = frota_paralela(CETICO, repetir(a, N_ceticos)) # "ache o erro"
se maioria(votos) == "refuta": achados.remove(a)
# ── 5 · COMPLETENESS critic → realimenta o find ───────
lacunas = subagente(CRITICO_COMPLETUDE, achados) # "o que falta?"
se lacunas: retornar pesquisar_em_escala(focar(pergunta, lacunas), K, ...)
# ── 6 · SEM CAP SILENCIOSO ────────────────────────────
se tamanho(achados) > TETO:
log_cortes.append(f"processados {{TETO}} de {{tamanho(achados)}} (top relevância)")
achados = top(achados, TETO)
# ── 7 · SYNTHESIZE (única saída p/ o maestro) ─────────
retornar subagente(SINTETIZADOR, achados, log_cortes) # relatório citado
🧠 Qué garantiza el harness
- Profundidad — el bucle solo termina cuando se agotan (K vacías).
- Confiabilidad — cada hallazgo pasa por el tribunal.
- Completitud — el crítico devuelve información al find sobre las brechas.
- Honestidad — cada recorte se convierte en una línea de registro.
⚙️ Los parámetros que ajustas
- K — cuántas rondas vacías esperar antes de declarar que no hay más resultados.
- max_rodadas — límite para que el loop no se ejecute para siempre.
- N_céticos — cuántos refutan cada hallazgo.
- LÍMITE — límite explícito, siempre registrado cuando se alcanza.
Prompts listos (copia y pega)
Tres prompts para imponer la doctrina de este módulo a una flota, incluso sin escribir un harness. Fíjate en el patrón: pide agotamiento, pide refutación y prohíbe el corte silencioso.
Dispare uma frota de subagentes para levantar TUDO sobre
<tema>. Rode em rodadas e só pare quando 2 rodadas
seguidas não trouxerem nada novo. No fim, diga quantas
rodadas rodou e por que considerou a busca esgotada.
Para cada achado, abra 4 subagentes céticos cuja missão
é TENTAR REFUTÁ-LO com evidência (não confirmar). Se a
maioria refutar, descarte o achado. Me entregue só os
que sobreviveram, com a contagem de votos de cada um.
Antes de fechar, rode um crítico que liste o que ainda
falta e abra buscas para as lacunas. Depois sintetize um
relatório citado. Se você cortar QUALQUER coisa por
limite, registre o que cortou, quanto e por qual critério.
Pantalla simulada: el harness ejecutando una flota
Así es como aparece la operación en la terminal: el harness está en la ronda 3 del find, con una flota de buscadores y escépticos en paralelo. Observa el contador de rondas vacías (1/2 — aún no se ha secado), los escépticos derribando hallazgos y, en la base, la línea de log del corte — visible, nunca silenciosa.
↑ Recreación ilustrativa del terminal (no es una captura de pantalla real). La flota consume contexto en sus ventanas; la tuya casi no se mueve, y el recorte de 214→50 está a la vista en el registro.
Ejercicio: diseña un loop-until-dry
Elige un problema real de amplia cobertura (p. ej., "encontrar todos los lugares de mi código que tocan pagos" o "recopilar todo lo que sé sobre el competidor X") e dibuja en papel el harness que lo resolvería con la doctrina de este módulo. No hace falta ejecutar nada: el entregable es el diseño del ciclo y sus reglas.
Cómo hacerlo
- Define cómo dividir el problema entre la flota (¿por carpeta? ¿por fuente? ¿por subtema?).
- Elige el K (cuántas rondas vacías hasta que se agote) y un límite de rondas.
- Escribe la regla de verificación adversarial: cuántos escépticos y cómo decide la mayoría.
- Define el completeness critic: qué pregunta hace y qué se convierte en una nueva búsqueda.
- Di dónde está el límite de corte y exactamente lo que vas a registrar cuándo cortar.
✅ Criterio de verificación — cómo saber si acertaste
Tu diseño es correcto si un lector puede responder, con solo mirarlo, las cinco preguntas:
- →¿Cuándo parar? La condición de parada es «K rondas vacías», no «una ronda» ni «se acabó el tiempo».
- →¿Cómo lo sabe? Hay refutación por mayoría, no «preguntar si está en lo correcto».
- →¿Cómo sabes que está completo? Existe un crítico de brechas que retroalimenta la búsqueda.
- →¿Qué se recortó? Hay un punto explícito de registro: ningún recorte es silencioso.
- →¿Qué vuelve? Una síntesis citada, no el conjunto bruto de hallazgos.
Si falta cualquiera de los cinco, el diseño aún no es una arquitectura a escala: son solo "varios subagentes sueltos".
Ejemplo resuelto (resumido)
Problema: encuentra todo lo relacionado con pagos en el repo. Partición: una parte por directorio de nivel superior. K=2, máximo 6 rondas. Verify: 3 escépticos por hallazgo, si la mayoría lo refuta → se descarta. Crítico: "¿qué flujo de pago no aparece en ningún hallazgo?" → se convierte en una búsqueda dirigida. Reduce: límite de 80 fragmentos; si se supera, registra "procesados 80 de N". Salida: lista citada por archivo + sección "no cubierto".
✅ Resumen del módulo
Próximo módulo:
4.2 — Subagentes en Codex y otros entornos. El mismo concepto fuera de Claude Code: equivalencias, compatibilidad entre entornos de ejecución y qué cambia.