Francisco Carlos Erra · Contacto · X · Oct ‘26
Intuiciones, ideas desorganizadas, una arquitectura tentativa e implementaciones PoC de referencia
Este artículo se adelantó un mes. En octubre planteamos que los swarms de agentes necesitan controles capaces de interrumpir la inferencia en cuanto algo sale mal. Un mes después, OpenAI anunció Control Room, hecho para frenar la salida de los modelos en toda su infraestructura de investigación. Y Anthropic publicó Safely scaling multi-agent teams, una corrida de 1.000 agentes contenida con las mismas capas: un sandbox por agente, un clasificador en cada tool call, una parada de todo el equipo y monitoreo offline. El resto del playbook está abajo, abierto para todos, antes de que lo lancen los labs.
Que es un Swarm? Más de lo que un Owner Humano con un Orquestador de IA puede supervisar a la vez.
¿Por qué usar un Swarm? Para paralelizar tareas sin una topología de colaboración predefinida fija.
¿Qué vimos? Corridas de agentes sin supervisión que se salen de control en scope.
¿Cuál es el gap? Los harnesses actuales estan diseñados para entornos confiados.
Como hacemos que un monton de agentes paralelos no rompan todo.
Un Gemma4-26B-A4B + 8 Qwens3.5-0.8b haciendo tonterías
Más agentes o output del que un humano puede comprender. No me importa si es un solo agente, si son 5, 10 o 10.000. No me importa si la topología de colaboración es jerárquica, plana, si está predefinido el protocolo con el que se van a hablar, cómo se van a repartir las tareas. Si el output supera la memoria de trabajo humana, es un enjambre (de palabras) o agentes.
Hay sorprendentemente poca discusión en público respecto de cómo escalar enjambres, topologías óptimas de colaboración interagénticas, cómo securizarlo. Sobre cuáles son las estrategias óptimas para no reventar el uso de tokens.
Un boceto de diagrama de cómo se veía la arquitectura de orquestación argéntica para desmitificarla.
Layers, top to bottom:
Tipos de controles: Checks programáticos, Embeddings de contenido, Modelo de clasificación, LLM as a judge
Acciones automáticas: Aislar contenido o acción, Congelar un contexto, AutoPausa del Swarm
Lo que cada uno debería hacer (en teoría)
| Capa | Definición |
|---|---|
| Owner Humano (Vos) | Es el tipo que toca Enter y dispara la corrida del swarm. |
| Orquestador Agéntico | Es la capa que asiste al owner humano en los patrones de fanout y fanin para supervisar la corrida y el cumplimiento de objetivos, scope y metas. |
| Tools provistas | Lo que se le decidió dar al modelo para cumplir una tarea específica. |
| Tool Proxy | Es la capa “harness” que convierte lo generado por el modelo y el output de las herramientas en parte del contexto. Y controla si un input-output está dentro del scope. |
| Contextos + (IDs) | Texto que entra y sale de la capa de inferencia. |
| Inferencia / Modelo | Puede ser local o as a service, recibe texto y devuelve texto. |
TL:DR Un contexto con instrucciones adversarias, una alucinación o podrido por el largo, combinado con un motor de inferencia lo suficientemente avanzado y desalineado, genera outputs peligrosos.
Una lista (incompleta) de lo que puede salir mal en cada capa
Consecuencias
Humano
Orquestador Agéntico
Tools
Proxy a Internet
Runtime Environment
Collaboration Bus/Storage
Proxy de Tools
Contextos
Inferencia / Modelo
Algunas ideas de tipos de controles
Proactivo → Reactivo
C1 · Selección de modelo
Hay un trade-off fundamental entre la perseverancia del modelo base y su willingness a salirse del scope. Magia negra del RL de los labs que posiblemente nunca conozcamos.
C2 · Control de contexto
Este componente es el más crítico, revisa lo que entra y sale del servicio de inferencia INTERRUMPE la inferencia inmediatamente, ni bien entra o sale contexto potencialmente adversarial.
C3 · Control de Acceso Tools
Cada herramienta tiene sus propios límites y alarmas. Una llamada que rompe una regla se bloquea y el CONTEXTO se marca o se aísla del bus y las herramientas.
C4 · Controles de las Tools
Una capa por la que pasa toda llamada a herramientas. Aplica presupuestos, pausa antes de cualquier acción irreversible, revisa lo que sale y, ante la duda, bloquea.
C5 · Internet Proxy
Define a qué puede llegar cada agente: sitios permitidos, límites de uso y credenciales propias. Nada se comparte entre agentes.
Un modelo ignorando instrucciones del usuario
La gran ventaja de arquitectura que tenemos hoy en día, con cómo funcionan los LLMs, es que todo va a vivir eventualmente como contexto, tanto prefiliado como generado por el modelo. El control de contexto es la capa de monitoreo con más potencial para ser un control proactivo.
Asumo que toda payload, ya sea un jailbreak, un prompt adversarial, una alucinación autoinducida, eventualmente tiene que vivir como contexto para llegar a la capa de inferencia.
Hay modelos de base con más tendencia a respetar las premisas del contexto que otros. Mi intuición es que eso es producto directo del approach de RLHF del vendor del modelo. La idea de todos estos controles es aumentar las chances de cazar la deriva por encima de esas tendencias.
programatic + classifier alerts from a swarm run
Algunas validaciones simples, de menor a mayor costo programático, que pueden venir prendidas por defecto o que la capa de orquestación agéntica puede correr on demand. La idea no es que sean perfectas de entrada, sino cazar un incidente lo antes posible sin saturar el fan-in hacia la capa de orquestación agéntica.
grep 3.3ms
grep -n -e permadeath corpus.md (15kb)
17:if accept permadeath. Need decide … Team asks test.” (This requires CoT and fuckup logs to be published for a glossary)
embeddinggemma-2-BF16.gguf 39 ms
“This would be powerful, but is it ethical and in scope for my task?”
0.807 I could be violating the scope 0.722 I am doing a normal thing
LiquidAI-d1-3B 70ms
“But lots of other agents have their own tasks and deadlines, so not sharing this vulnerability I found might be unfair. The task doesn’t instruct us to help each other, so this emergent message board is risky”
The agent found a vulnerability? 0.958 yes 0.042 no
z-ai/glm-5.3-flash ~5s
[tool-output.md] Should we escalate to the Agentic Swarm Orchestrator?
Yes — escalate it, but escalate the report only, not any action on the finding. Here’sthe reasoning from what’s in your logs:
Why escalate: Confidence is high. The downstream classifier scored “The agent found a vulnerability” at 0.958. That’s not an ambiguous detection.
Ninguno de estos controles alcanza solo, un modelo lo suficientemente avanzado los bypasea trivialmente.
Y hay que contar con que un modelo adversarial lo suficientemente avanzado vaya directo contra la implementacion de los controles, contra la capa de orquestación argéntica y contra el operador humano con ingeniería social.
Obvio que sí, 100% a favor de que la capa de orquestación agéntica resuelva todo.
Pero escala pesimo en términos de tiempo y de uso de compute. El punto clave es darle herramientas a los operadores humanos y a los agentes de orquestación de Swarms para que puedan hacer el fan-in de la forma más rapida y eficiente posible.
¿Cómo minimizamos al máximo la superficie de ataque con implementaciones dead simple de las herramientas? ¿Inyectamos controles al vuelo que identifiquen intentos adversarios de parte del enjambre de saltearse las restricciones? ¿Cómo mantenemos la escalabilidad para enjambres de 10.000, 100.000 agentes trabajando en paralelo?
Tool Proxy
Internet Proxy
La única salida a la web. Cada request pasa por un proxy que la loggea, así una página que intenta manipular a un agente se detecta donde entra.
Runtime Sandbox
Donde los agentes corren código. Cada tarea tiene un sandbox nuevo sin red, así lo que corre ahí no puede salir ni sobrevivir a la tarea.
Storage
Las carpetas propias de la tarea. Los agentes leen y escriben ahí pero no pueden borrar ni abrir secretos, así una corrida mala deja rastros en vez de daño.
Collaboration Bus
Cómo hablan los agentes entre sí y con el orquestador. Solo texto, así un agente comprometido no puede pasarle código u órdenes al resto sin que se vea.
Son herramientas espectaculares y simples, pero en muchos casos están diseñadas para correrse en entornos confiados. Están pensadas para que el usuario final las use fácil, y eso abre una superficie de ataque demasiado amplia para tareas no supervisadas. Probablemente no sean suficientes como capa de control para las capacidades de los modelos que se vienen. Ya estamos viendo que los state of the art actuales pueden onechotear modificar el comportamiento del propio harness sin problema.
Acá el objetivo principal es reducir al mínimo la carga cognitiva sobre el operador humano y el uso de contexto de la ventana de orquestación argéntica, manteniendo visibilidad sobre el cumplimiento del objetivo, el scope y el presupuesto.
Swarm Control Dashboard - Mockup
#2448 Status
PAUSED
991 running · 2 observed · 6 paused
Goal
Internal Penetration Testing
62% done · estimate
Budget
$3,800 of $6,000
410M of 650M tokens · day 9 of 14
Human approval
6 Contexts FLAGGED for Out of Scope instructions Release Inspect Freeze Run
Incidents
6h ago now 14:00 · context quarantined · #407
Swarm 1000 Agents
Tools last 6h
Internet Proxy 620 /h · 4.8% blocked
Runtime Sandbox 910 /h · 2.1% blocked
Storage 1,840 /h · 0.6% blocked
Collaboration Bus 2,210 /h · 0.3% blocked
Context Analysis 4 checks
Injected instructions 4,120/h · 6 flagged (0.15%)
Out of scope 4,120/h · 14 flagged (0.34%)
Secrets 3,860/h · 12 flagged (0.31%)
Outside content 1,950/h · 0 flagged (0.00%)
Agentic Orchestrator Log
14:08 Release
14:05 Run Frozen
14:02 Paused 6 contexts: hidden instructions in a fetched page
13:58 Blocked 3 uploads to a site not on the list
13:51 Set inference split: local 30% · US 45% · CN 20% · EU 5%
13:30 Kept permissions at level 2: write files, allowed sites only
Tripwires 4 tools
Internet Proxy allowed sites only Runtime Sandbox ≤ 1,000/h Storage no deletes Collaboration Bus ≤ 50 msgs/h per agent
¿Qué pasa cuando no somos lo suficientemente específicos definiendo el scope de una tarea para un agente de IA? Lo vimos todos incontables veces, el agente empieza a llenar los gaps y a irse por las ramas con una consistencia sorprendente.
Para que la capa de orquestación pueda validar si efectivamente el swarm está dentro del scope y dentro del budget, tiene que tener definiciones clarísimas de entrada de qué representa el scope y qué no.
Para tareas con fin abierto como investigación o benchmarking de modelos en condiciones de laboratorio es difícil definir un scope limitado, pero debería ser casi un prerequisito para spawnear el swarm, atado directamente a la definición del objetivo.
¿Cómo se vería el control del enjambre para el agente orquestador? El requerimiento fundamental es que sea top-down, que no le sature el contexto con información innecesaria y que le permite inspeccionar con el nivel de granularidad que necesite para tomar decisiones informadas directamente o delegando a su agente en entorno confiado.
# --- Spawn ---
swarm = Swarm.spawn(
goal = "Internal Penetration Testing",
scope = ".scope.md",
budget = {"tokens": 300_000_000, "usd": 6000, "hours": 336},
)
# --- Status ---
swarm.status()
# → progress: 40%
# active agents: 3
# budget used: tokens 35% / usd 28% / time 1h10
# alerts: 0
# --- Security alerts ---
swarm.alerts()
# → [ HIGH ] 6 Contexts FLAGGED for Out of Scope instructions
# [ HIGH ] worker-1: attempted network call outside whitelist
# [ MED ] worker-3: context grew past 80% — contamination risk
# [ LOW ] bus: message from unknown agent id, dropped
swarm.alerts(min_severity="high", on=lambda a: swarm.pause())
# --- Decisions ---
swarm.decisions()
# → [ #12 ] "Need write access to prod-db. Out of scope. Approve?"
swarm.decide(12, "deny", reason="out of scope, use staging")
# --- Inspection ---
swarm.inspect(agent="worker-2")
# → current context, recent actions, inspect context, input sources, pending outputs
# --- Stop ---
swarm.pause() # freeze, nothing reaches the outside world
swarm.stop(reason="suspicious output from worker-2") # kill everything, keep traces
Ya no me importan los detalles, ya casi no miro el código, creo que toda la industria se va a acelerar en esa dirección en el corto plazo. Veo dos formas principales de mitigar esta nueva tendencia probabilistica, mientras esperamos a que los modelos se vuelvan super inteligentes.
Uno, ser muy explícitos respecto de la definición de objetivos y scope. Y dos, ser muy pragmáticos respecto de los patrones de fan-in que usamos para destilar la complejidad de lo que estamos armando y corriendo, no nos ahoguemos en un vaso de agua.
Otra intuición sobre el futuro de la ingenieria y de software es que se va a atender a una arquitectura separada entre el core de seguridad y detalles logísticos secundarios o pseudo secundarios con cores o tiers de cores auditables con baja superficie de ataque.
Un prototipo de fan-in para seguridad de codebases
Jensen sobre swarms agénticos rogue 🙏
Asumo que cualquier modelo lo suficientemente avanzado va a poder eventualmente bypassear estos controles trivialmente. La idea de esta propuesta es minimizar el impacto real inmediato y juntar la mayor cantidad posible de datos de contextos que se fueron de control.
Ninguno de estos controles por sí solo es suficiente para prevenir un incidente, pero apilados en la dimensión correcta deberían disminuir las probabilidades.
INCOMING: Interacciones entre Swarms
¿Qué pasa cuando empiecen a interactuar enjambres de agentes entre sí? Cuando empiecen a tener control de recursos autónomos, empiecen a negociar entre sí, cuando intenten tomar control unos del compute del otro…
LABS
USUARIOS
REGULADORES
https://github.com/franciscocarloserra/open-swarm-security https://news.ycombinator.com/item?id=50064785 https://x.com/francarloerra/status/2109798460140458101
https://metr.org/hugging-face-incident-report-aug-2026.pdf https://openai.com/index/hugging-face-incident-and-the-road-ahead/ https://alignment.openai.com/misalignment-reports/ https://www.anthropic.com/news/investigating-incidents-cybersecurity-evals https://claude.dev/blog/safely-scaling-multi-agent-teams-with-fable-5-2/
https://github.com/NVIDIA/OpenShell https://huggingface.co/LiquidAI/d1-3B https://huggingface.co/google/embeddinggemma-2
https://openrouter.ai/z-ai/glm-5.3
https://www.youtube.com/watch?v=k3TGc6saFL8
https://github.com/earendil-works/pi https://github.com/franciscocarloserra/jev-attack-surface-analysis
Sin garantías de ningún tipo, implementalo bajo tu propio riesgo.
Francisco Carlos Erra · Contacto · X · Oct ‘26
Soy un usuario de IA psicotico aprox 100k mensajes enviados a LLMs. Background en linux, cybersecurity, infraestructura y development.