APIs multiagente nativas: la beta multiagente de Responses de OpenAI frente a construirlo tú mismo
Durante dieciocho meses, «multiagente» significó que el fan-out lo escribías tú. Escribías el prompt del coordinador, lanzabas N llamadas en paralelo, fusionabas sus JSON y gestionabas los reintentos. El 9 de julio de 2026 OpenAI lo redujo a un parámetro de la petición: multi_agent.enabled: true en la Responses API, envuelto en una función de consumo llamada Sol Ultra Mode. El propio modelo decide cuántos subagentes generar, los ejecuta en paralelo y sintetiza el resultado, todo dentro de una única llamada HTTP. Ningún otro proveedor de frontera ha lanzado una primitiva simétrica. Esta página recoge qué se lanzó realmente, las cifras que hay detrás, qué ofrece Anthropic en su lugar y — lo que importa — las tres cargas de trabajo en las que la primitiva nativa compensa su coste y las dos en las que un fan-out casero sigue ganando.
- Leer el cuerpo exacto de una petición multiagente de la Responses API y saber qué limita realmente max_concurrent_subagents
- Hacer las cuentas del coste: qué cobra en realidad «el modelo genera 4 subagentes» a precios de Sol
- Situar el mismo terreno en el lado de Anthropic — Cowork, Managed Agents y los subagentes de Claude Code — y ver la brecha de primitivas
- Elegir la primitiva adecuada para cada carga: multiagente nativo, fan-out casero, A2A o un único turno largo
- Evitar los cuatro modos de fallo que convierten una llamada Ultra de 4 agentes en una factura x4 sin ganancia de precisión
La versión en una frase
Ultra Mode es una capa de consumo sobre multi_agent.enabled: true en la Responses API: una primitiva nativa que permite al modelo generar subagentes en paralelo dentro de una petición, sintetizar sus salidas y devolver una única respuesta. Aporta una mejora de precisión pequeña pero real en tareas paralelizables (Terminal-Bench 2.1: 88,8 % → 91,9 %), con una factura de tokens que escala aproximadamente de forma lineal con el número de subagentes que el modelo decida generar.
Qué se lanzó realmente el 9 de julio de 2026
En el mismo lanzamiento aterrizaron dos cosas, y conviene separarlas:
- Ultra Mode — un interruptor de producto dentro de ChatGPT y Codex. Disponible en el nivel insignia (Sol). Al activarlo, las tareas difíciles se descomponen en ejecuciones paralelas de subagentes antes de la síntesis. Se anuncia como «genera 4+ agentes»; algunos gráficos de benchmarks GA de la propia OpenAI muestran además configuraciones de 16 agentes en BrowseComp y SEC-Bench Pro, pero cuatro es el valor de trabajo por defecto.
- Beta multiagente de la Responses API — una primitiva para desarrolladores. La misma capacidad subyacente, expuesta como
multi_agent.enabled: trueenclient.beta.responses.create(). Es lo que usarías para construir tu propia experiencia tipo Ultra.
La confusión que dejó el marketing es real: los desarrolladores no paran de preguntar «¿cómo llamo a Ultra Mode desde la API?». La respuesta es que no se llama: activas la beta multiagente, que es la primitiva que hay bajo la función de producto.
La petición multiagente de la Responses API
En concreto, esta es la forma (SDK de Python):
Llamada multiagente mínima a la Responses API
from openai import OpenAI
client = OpenAI()
resp = client.beta.responses.create(
model="gpt-5.6-sol",
input="Audit this repo for auth-bypass patterns and write a report.",
multi_agent={
"enabled": True,
"max_concurrent_subagents": 3,
},
tools=[...], # your MCP tools, function tools, etc.
extra_headers={"OpenAI-Beta": "responses_multi_agent=v1"},
)Cuatro aspectos poco evidentes de esta forma:
max_concurrent_subagentsno es un presupuesto total. Limita los turnos de subagente activos en todo el árbol en un momento dado: raíz más descendientes. El modelo puede generar un número total mucho mayor de subagentes durante la vida de la petición; lo único que no puede es tener más de N en ejecución a la vez.- La profundidad no tiene límite. Un subagente puede generar a su vez subagentes. No hay un tope fijo ni para la profundidad del árbol ni para el número total de subagentes por ejecución. Tu superficie de coste no es «N llamadas», sino un árbol que el modelo da forma en tiempo de ejecución.
- La raíz sintetiza. El agente raíz se encarga de fusionar las respuestas de los subagentes en la respuesta final. No recibes un objeto estructurado
{subagents: [...]}; recibes una sola respuesta, y los turnos intermedios de los agentes son opacos para tu código. - Algunos parámetros se desactivan en silencio.
reasoning.summaryymax_tool_callsno se admiten con multiagente activado, y el endpoint de compactación no se admite en respuestas multiagente. Si dependes de los resúmenes de razonamiento para la observabilidad, los pierdes en cuanto lo activas.
Las cuentas del coste que nadie imprime en la página de marketing
Con el precio GA de Sol, 5 $ de entrada / 30 $ de salida por millón de tokens, la aritmética no perdona. A partir de los análisis de desarrolladores que hicieron ingeniería inversa de ejecuciones reales de Ultra:
- Una tarea que Ultra descompone en 2 subagentes ≈ 2x el coste en tokens de salida de una sola llamada a Sol, porque ambos subagentes generan salida y, además, la raíz genera la síntesis.
- Una tarea para la que Ultra genera 5 subagentes ≈ 5x, con el mismo razonamiento y proporcionalmente más repetición de tokens de entrada a lo largo del árbol.
- Los gráficos de BrowseComp / SEC-Bench que muestran configuraciones de 16 agentes no son una comida gratis: son una demostración de nivel investigador, no un valor por defecto. Con 16 subagentes concurrentes en Sol, hablamos de una cifra de dos dígitos medios en dólares por consulta difícil solo en tokens de salida.
La forma de pensarlo: pagas un Monte Carlo de llamadas a Sol más una pasada de síntesis encima. A veces eso compra la precisión suficiente para importar. A veces es solo una factura x4 por una tarea que una única llamada habría resuelto.
Qué compra realmente la precisión
Las mejoras publicadas en las evaluaciones paralelizables — las cargas para las que se diseñó Ultra Mode — son reales pero modestas:
| Benchmark | Sol (individual) | Sol Ultra | Delta | Qué mide la evaluación |
|---|---|---|---|---|
| Terminal-Bench 2.1 | 88,8 % | 91,9 % | +3,1 | Planificación de línea de comandos en varios pasos, coordinación de herramientas |
| BrowseComp | 87,5 % | 92,2 % | +4,7 | Investigación web con múltiples fuentes y síntesis |
| SEC-Bench Pro | — | 74,3 % | (cifra del modo individual no publicada) | Razonamiento sobre documentos regulatorios en grandes corpus |
Tres observaciones sobre esta tabla:
- La banda de +3–5 puntos es coherente con lo que el muestreo en paralelo ha aportado históricamente en otras fronteras (best-of-N, self-consistency). La primitiva es realmente útil; la mejora no es un salto cualitativo.
- Son el mejor caso: evaluaciones elegidas para mostrar el modo. En tareas secuenciales (una edición lineal de código, la reescritura de un solo archivo, un chat corto), Ultra añade latencia de síntesis y coste sin mover la precisión.
- En el mismo gráfico de Terminal-Bench 2.1, Opus 4.8 de Anthropic obtuvo un 78,9 %: es decir, la ventaja de Sol Ultra procede tanto del mejor modelo base como del impulso multiagente apilado encima. Si migras de Opus a Sol Ultra, no atribuyas toda la diferencia a la primitiva multiagente.
Qué hace Anthropic en su lugar
Anthropic no ha lanzado una primitiva de API simétrica. Los análogos más cercanos resuelven cada uno una parte distinta del mismo problema:
- Cowork — una superficie de producto. Un espacio de trabajo agéntico de escritorio donde un agente realiza trabajo sostenido de varios pasos junto al usuario. Comparable a Ultra Mode como función, pero no como primitiva de API.
- Managed Agents y los almacenes de memoria de managed agents — un bucle de agente alojado con estado persistente y programación. Cubre el hueco de «agente de fondo de larga duración», no el de «generar 4 en paralelo y fusionar».
- Subagentes de Claude Code y los límites de flota de subagentes — una primitiva de subagentes de primera clase, pero limitada a la CLI de Claude Code. Está documentada, se puede lanzar en paralelo y es el análogo más cercano a
multi_agent.enabled, con la diferencia importante de que el prompt del coordinador lo escribes tú. - Building Agents sobre la Messages API — el camino casero. Lanzas N llamadas
messages.createen paralelo, escribes el prompt de síntesis y gestionas los reintentos. El mismo resultado, más código.
La brecha: ninguna superficie de la API de Anthropic permite hoy activar un único booleano para que el propio modelo decida cuántos subagentes generar y fusione su trabajo. Si quieres ese comportamiento con Claude, lo construyes: consulta Cowork & Agent Teams para la parte de producto y Managed Agents para la primitiva de bucle alojado.
Elegir la primitiva adecuada para cada carga
- Si las subtareas pueden ejecutarse sin esperar los resultados de las demás — auditar un repositorio, investigar un tema en muchas fuentes, refactorizar N archivos de forma independiente — una forma de fan-out compensa su coste. Si la tarea es secuencial (editar A, luego leer el resultado de A, luego editar B), cualquier primitiva multiagente añade sobrecoste de síntesis sin beneficio.
- El multiagente nativo (Ultra, beta multiagente de Responses) oculta los turnos de los subagentes a tu código. Si necesitas rastros de auditoría, atribución de coste por subagente o la capacidad de intervenir a mitad de ejecución, construye tú el fan-out. Los subagentes de Claude Code te dan visibilidad; la beta multiagente de la Responses API no.
- Si las subtareas pertenecen a organizaciones, nubes o proveedores distintos, estás fuera del alcance de cualquier primitiva de un único proveedor. Usa A2A — consulta /docs/models/a2a-protocol-agent-to-agent. El multiagente nativo es intra-modelo; A2A es inter-agente.
- Los árboles multiagente nativos se forman en tiempo de ejecución: no puedes predecir la factura de tokens a partir de la petición. Si tu aplicación tiene un SLA de coste por petición, prefiere un fan-out casero donde controles la anchura del abanico, o fija un tope estricto de max_output_tokens en la raíz.
- Si tu evaluación dice que la tarea se resuelve al 85 % con una sola llamada y que el 90 % marca la diferencia entre lanzar o no, el multiagente nativo es una forma de bajo rozamiento de comprarlo. Si una sola llamada a Sol u Opus ya resuelve la tarea, Ultra es una factura x4 por una ganancia de 0 puntos.
Cuatro modos de fallo que convierten Ultra en una factura x4 por nada
- Activarlo para tareas secuenciales. El modelo sigue descomponiendo y sintetizando aunque la tarea no se paralelice. Pagas la sobrecarga de coordinación en un trabajo que nunca la necesitó. Regla práctica: si no puedes explicar qué estaría haciendo el segundo subagente mientras el primero se ejecuta, no actives el multiagente.
- Dejar la observabilidad por resumen de razonamiento en tu panel.
reasoning.summaryno se admite en silencio con multiagente. Si tu monitorización depende de él, obtendrás campos vacíos y pensarás que el modelo no razona. Despliega un cambio de esquema antes de activar el flag. - Usar
max_tool_callscomo límite de seguridad. También se desactiva en silencio con multiagente. La garantía que creías tener — «como máximo 20 llamadas a herramientas por petición» — desaparece. Aplica los techos de llamadas a herramientas en la capa del adaptador de herramientas, no mediante el parámetro de la petición. - Suponer que
max_concurrent_subagentses un tope de coste. Limita los subagentes activos en un momento dado, no el total generado durante la petición. Una sola llamada Ultra puede generar decenas de subagentes de forma secuencial y seguir respetando un límitemax_concurrent_subagents: 3. Si tu techo es el coste, añade un max_output_tokens a nivel de petición.
Lo que el «multiagente nativo» no es
Con él se confunden a menudo dos primitivas cercanas:
- No es muestreo
n > 1. El antiguo parámetronde OpenAI muestrea varias completaciones y las devuelve todas; tú eliges una. El multiagente ejecuta subagentes distintos haciendo trabajo distinto y sintetiza sus salidas. Lo primero es muestreo por temperatura; lo segundo es descomposición de tareas. - No es inferencia por lotes. La batch API procesa en segundo plano muchas peticiones independientes. El multiagente son muchos subagentes coordinados dentro de una petición interactiva. El batch está orientado al rendimiento; el multiagente, al resultado.
Hacia dónde va esto
El protocolo A2A (consulta A2A: el protocolo Agent-to-Agent) cubre el multiagente entre proveedores. multi_agent.enabled: true cubre el multiagente dentro del modelo. El hueco sin cubrir es una primitiva entre proveedores: el modelo del proveedor A genera un subagente en el proveedor B y fusiona el resultado; todavía no existe una especificación pública. Cuando llegue, lo hará como A2A más un verbo de traspaso nativo, no como una API nueva en ninguno de los dos lados. Vigila ese espacio.
Check yourself
0/4Fuentes y lecturas adicionales
- Multi-agent — OpenAI API guide — la referencia oficial de la beta multiagente de Responses: forma de la petición, semántica de
max_concurrent_subagents, lista de parámetros no admitidos y cabecera beta. - GPT-5.6: Frontier intelligence that scales with your ambition — OpenAI — entrada de lanzamiento de Sol, Terra, Luna y Ultra Mode, con el posicionamiento de la familia.
- Previewing GPT-5.6 Sol — OpenAI — la página de avance anterior, útil para la metodología de los benchmarks.
- GPT-5.6 Sol Ultra Mode: 64 Subagents on One Problem — Digital Applied — las cuentas de coste lineales tras las cifras de 2x/5x («N agentes pueden quemar hasta N veces los tokens de una ejecución de un solo agente con la misma tarifa por token»), además del valor de trabajo por defecto de 4 agentes y su techo de tokens de «hasta 4x la línea base».
- How to Use GPT-5.6 Ultra Mode: Multi-Agent Coordination for Complex Tasks — MindStudio — el detalle del valor por defecto de 4 agentes y de los 16 agentes en algunos gráficos.
- OpenAI Releases GPT-5.6 (Sol, Terra, Luna) — MarkTechPost — cobertura del lanzamiento y de la primitiva Programmatic Tool Calling lanzada junto con el multiagente.
- GPT-5.6 & ChatGPT Work for Claude Users — la página hermana de AILmanac sobre la propia familia de modelos.
- Cowork & Agent Teams — el análogo de Anthropic a nivel de producto.
- Managed Agents — la primitiva de bucle alojado en Claude.
- Subagentes de Claude Code y Subagent Fleet Limits — la primitiva de subagentes de primera clase dentro de la CLI.
- A2A: el protocolo Agent-to-Agent — el hermano entre proveedores; úsalo cuando los subagentes cruzan una frontera de confianza.
- Programmatic Tool Calling — una primitiva distinta que también se lanzó en el mismo evento de OpenAI (su versión basada en JS), y la versión de Claude en sandbox de Python.
Siguiente
- OpenAI Agents API vs Claude Managed Agents — la capa de septiembre de 2026 por encima de esta: sesiones duraderas y sandboxes, comparadas con el bucle alojado de Anthropic
- A2A: el protocolo Agent-to-Agent