Fusion — el panel multimodelo
Distintos modelos de frontera fallan de forma distinta. Uno pasa por alto un caso límite que otro detecta; uno alucina una API que los otros tres se niegan a inventar. Fusion convierte esa diversidad en una función: cuando está activado, cada pregunta que hace tu sesión de Claude Code es respondida por varios modelos a la vez, un modelo juez traza dónde coinciden, entran en conflicto y destacan individualmente los borradores, y una única respuesta sintetizada —fundamentada en ese análisis— se entrega de vuelta a Claude Code como si la hubiera escrito un solo modelo. El agente nunca sabe que se convocó un panel.
Fusion se ejecuta por completo en el proxy del lado del anfitrión (véase Conceptos), así que nada cambia dentro de la VM: sin flags para el agente, sin scripts envoltorio, sin ninguna fuente de latencia visible a la que el agente pudiera reaccionar. Se configura por espacio de trabajo en el panel de configuración de Fusion y se activa por sesión con el botón del rayo (⚡) en la barra de título de la sesión.
Nota: Fusion está etiquetado como BETA en la interfaz. Es un prototipo funcional: el mecanismo es estable, pero los prompts del juez, los backends de proveedores y la gestión de errores aún están evolucionando. Consulta Limitaciones de la beta antes de confiar en él.
Cómo funciona Fusion
Fusion intercepta el tráfico de la sesión de Claude Code hacia el endpoint /v1/messages de Anthropic. Cada solicitud se gestiona por etapas:
- Tramo A — Claude responde primero. La solicitud original del invitado se envía a Anthropic sin cambios (forzada a no usar streaming para poder inspeccionar la respuesta completa). Tu sesión de Claude Code es siempre uno de los tramos del fusible.
- Los turnos de herramienta pasan directamente. Si la respuesta de Claude es una llamada a herramienta —el caso habitual en el desarrollo agéntico, donde la mayoría de los turnos son "lee este archivo", "ejecuta este comando"—, se reenvía al agente tal cual y la fusión se omite en ese turno. El bucle agéntico nunca se rompe con una llamada a herramienta sintetizada.
- Los turnos de texto se abren en abanico. Solo cuando Claude devuelve una respuesta de texto plano se activa Fusion. A cada uno de los demás proveedores seleccionados —Codex (OpenAI), Grok (xAI) y, opcionalmente, un modelo local en el dispositivo— se le hace la misma pregunta sobre la misma transcripción aplanada.
- El juez traza el terreno. El modelo juez compara todos los borradores y emite un análisis JSON estructurado —consenso, conflictos, aportaciones únicas, puntos ciegos y un veredicto— en lugar de comentarios en prosa.
- El juez sintetiza. El mismo modelo juez escribe entonces la respuesta definitiva, fundamentada en el análisis que acaba de producir.
- Entrega. La respuesta fusionada se transmite de vuelta al agente dentro de la VM exactamente con la forma de red que solicitó (SSE de Anthropic o JSON). Desde la perspectiva de Claude Code, respondió un solo modelo.
Un fallo en cualquier etapa se degrada con elegancia en lugar de romper la sesión: un tramo cuya credencial no se puede resolver, o que da error o expira, se descarta silenciosamente del fusible. Si sobreviven menos de dos respuestas, se devuelve la propia respuesta de Claude sin cambios.
Turnos de herramienta frente a turnos de texto
La distinción entre turno de herramienta y turno de texto es lo que hace que Fusion sea seguro para el trabajo agéntico. Las acciones (llamadas a herramienta) se ejecutan exactamente como las emitió Claude; solo las respuestas —explicaciones, diseños, revisiones, planes— se fusionan. En una sesión de desarrollo típica la mayoría de los turnos son acciones, así que la influencia de Fusion se concentra donde más importa la diversidad de modelos: el razonamiento y las conclusiones, no las ediciones mecánicas de archivos.
De dónde procede la identidad de cada tramo
Fusion no tiene una interfaz de credenciales propia. Cada tramo resuelve la credencial que la pestaña Agentes del espacio de trabajo ya tiene para ese proveedor:
- Modo suscripción — el tramo usa un token OAuth activo del almacén de suscripciones del anfitrión; el anfitrión lo renueva según sea necesario. Los tokens de suscripción de Claude reciben automáticamente el bloque de identidad del sistema de Claude Code y la cabecera beta OAuth que Anthropic requiere.
- Modo token de API — el tramo usa la clave de API real del mapa de intercambio de tokens del lado del anfitrión (el invitado solo vio jamás un señuelo; véase Credenciales).
- Modelo local — el tramo apunta al motor de inferencia del anfitrión con su clave interna (véase Inferencia local e híbrida).
- Bedrock (AWS) — un agente Claude en modo Bedrock contribuye únicamente a través de la propia solicitud del invitado; no hay un tramo de fusión de Bedrock aparte.
Un tramo cuya credencial no se puede resolver se descarta con una línea de registro, nunca con un error mostrado al agente.
Requisitos
Fusion necesita al menos dos modelos utilizables:
- Tu sesión de Claude Code cuenta siempre como un tramo, siempre que el agente de Claude Code tenga una credencial utilizable.
- Cada tramo en la nube adicional —Codex (OpenAI), Grok (xAI)— necesita su credencial configurada en la pestaña Agentes del espacio de trabajo. Hasta entonces, su fila en el panel de Fusion aparece atenuada con la indicación — sin credencial en la nube (configúrala en Agentes).
- El tramo del Modelo local necesita al menos un modelo descargado en el panel de Modelos locales. Hasta entonces, su fila muestra — descarga uno en Modelos locales.
Con menos de dos modelos utilizables seleccionados, el panel muestra el texto de ayuda "Elige al menos dos modelos para fusionar — tu sesión de Claude Code cuenta como uno, así que añade uno más (un agente en la nube o un modelo local)." y el botón del rayo de la sesión permanece deshabilitado.
Configurar Fusion para un espacio de trabajo
Fusion se configura en el panel Fusion de la ventana Editar espacio de trabajo (el icono del rayo amarillo en la barra lateral, marcado como BETA). La referencia campo por campo está en Configuración de Fusion; esta sección recorre el flujo de trabajo.
En la captura de pantalla anterior, todavía no hay credenciales de agente configuradas, así que todas las filas bajo Modelos para fusionar aparecen atenuadas y el texto de ayuda naranja explica qué falta. Una vez que la pestaña Agentes tenga credenciales, las filas se vuelven seleccionables.
- Abre el espacio de trabajo en el explorador de espacios de trabajo y haz clic en Editar espacio de trabajo, luego selecciona el panel Fusion.
- Bajo Modelos para fusionar, marca los proveedores cuyas respuestas quieras en el panel. Claude Code (Anthropic) — tu sesión es siempre un tramo; añade Codex (OpenAI), Grok (xAI) o Modelo local. La fila del Modelo local incluye un selector de los modelos locales instalados.
- Bajo Juez, elige el Proveedor y el Modelo que sopesarán los borradores y escribirán la respuesta final. La lista de Proveedor ofrece todos los proveedores en la nube con una credencial utilizable, más Local cuando hay al menos un modelo local instalado. Las listas de modelos en la nube se obtienen en directo del endpoint
/v1/modelsdel proveedor e incluyen una entrada (predeterminado); si la obtención falla, se ofrece en su lugar una pequeña lista incorporada. Un juez local elige entre los modelos del catálogo instalados. - Haz clic en Guardar.
| Ajuste | Predeterminado | Notas |
|---|---|---|
| Modelos para fusionar | Ninguno seleccionado | Claude Code es siempre un tramo; los demás necesitan una credencial (nube) o un modelo instalado (local). |
| Juez → Proveedor | Primer proveedor utilizable | Local aparece una vez que hay un modelo local instalado. |
| Juez → Modelo | (predeterminado) → claude-opus-4-8 | Listas en la nube obtenidas en directo de /v1/models. |
Cuando el modelo de un tramo no está fijado explícitamente, los valores predeterminados son: Claude → claude-opus-4-8; Codex → gpt-5.5 con una suscripción o gpt-5.5-2026-04-23 con una clave de API; Grok → grok-build.
Consejo: Un modelo local es un tramo adicional capaz y de coste marginal cero — y el propio juez puede ejecutarse localmente, manteniendo toda la etapa de análisis y síntesis en tu Mac. Véase Inferencia local e híbrida.
Activar Fusion en una sesión
Configurar el panel solo hace que Fusion esté disponible. Cada sesión decide si usarlo, mediante el botón del rayo (⚡) en la barra de título de la ventana de sesión:
| Aspecto del rayo | Estado | Descripción emergente |
|---|---|---|
| Hueco, deshabilitado | No disponible — menos de dos modelos utilizables | "Para habilitar Fusion necesitas tener al menos dos modelos habilitados." |
| Relleno, gris oscuro | Disponible, desactivado | "Fusion disponible — desactivado. Haz clic para activar la síntesis multimodelo." |
| Relleno, amarillo | Activado | "Fusion activado — las respuestas se sintetizan a través de los modelos seleccionados. Haz clic para desactivar." |
Haz clic en el rayo para alternar. Las sesiones nuevas siempre empiezan desactivadas — Fusion es una elección explícita, por sesión, nunca un valor predeterminado silencioso.
Desde la línea de comandos
Con la app en ejecución, puedes alternar Fusion en una VM activa sin tocar la ventana:
bromure-cli vm fusion enable <vm>
bromure-cli vm fusion disable <vm>
<vm> es un id de VM o un nombre de espacio de trabajo, y se aceptan on/off/engage/disengage como alias. La salida de estado de bromure-cli vm incluye una fila de fusión que muestra engaged o available (off). Estos comandos hablan con la API de control de la app, así que requieren que la app (o su agente) esté en ejecución; véase Automatización y CLI.
Cuánto cuesta Fusion
Fusion multiplica el uso de modelos, y deberías activarlo conociendo la aritmética. Por cada turno en el que Claude devuelve una respuesta de texto plano:
- Cada tramo adicional seleccionado hace una llamada de modelo completa, recibiendo la misma transcripción aplanada como contexto — así que las conversaciones largas cuestan proporcionalmente en cada tramo, en cada turno fusionado.
- El juez hace dos llamadas más: una para producir el análisis JSON, otra para escribir la síntesis. Ambas están limitadas a 4.096 tokens de salida.
Con los cuatro tramos seleccionados, una única respuesta fusionada cuesta por tanto hasta cinco llamadas de modelo más allá de la llamada a Claude que ya estabas haciendo. Los turnos de llamada a herramienta se abren en abanico a cero llamadas adicionales, lo que en la práctica mantiene las sesiones agénticas mucho más baratas que el peor caso — la mayoría de los turnos en un bucle de desarrollo son llamadas a herramienta.
Cómo se factura cada tramo depende de su credencial: los tramos con clave de API facturan por token, los tramos de suscripción consumen la cuota de la suscripción, y un tramo local solo cuesta cómputo en el dispositivo (y batería, en un portátil). Cada tramo tiene por defecto un tiempo de espera de subida de 600 segundos.
Fusion en la traza
Fusion es deliberadamente invisible para el agente pero totalmente visible para ti. Cada llamada lateral de subida —cada tramo, el análisis del juez y la síntesis— es capturada por la canalización de trazas como cualquier otro intercambio de IA, sujeta al nivel de traza del espacio de trabajo (véase Trazado).
Consecuencias prácticas:
- El Inspector de trazas (menú Ventana → Inspector de trazas…) enumera los intercambios adicionales junto al tráfico normal de la sesión, y presenta las solicitudes y respuestas capturadas como conversaciones analizadas — puedes leer exactamente qué respondió cada tramo y qué concluyó el juez.
bromure-cli trace hostnamesmuestra que se contactó con hosts comoapi.openai.comdesde una sesión que quizá creías que era solo de Anthropic. Si tu organización audita la salida de red, espera que las sesiones fusionadas muestren los endpoints de cada proveedor seleccionado.- Fusion también registra de forma detallada en la stderr de la app con un prefijo
[fusion]— útil al diagnosticar por qué se descartó un tramo.
Nota: Si las reglas de manejo de datos de tu espacio de trabajo restringen qué proveedores pueden ver tu código, recuerda que cada tramo seleccionado recibe la transcripción aplanada completa de la conversación. Selecciona los tramos en consecuencia.
Anulaciones de entorno
Algunos valores predeterminados se pueden anular con variables de entorno al iniciar la app — útil para experimentar, no pensado como configuración cotidiana:
| Variable | Predeterminado | Efecto |
|---|---|---|
BROMURE_FUSION_TIMEOUT | 600 | Tiempo de espera de subida por tramo, en segundos. |
BROMURE_FUSION_OPENAI_MAX_TOKENS | 128000 (GPT-5/serie o), 16384 (gpt-4o y anteriores) | Límite de tokens de compleción del tramo de OpenAI. |
Limitaciones de la beta
Fusion es una función beta con aristas que conviene conocer:
- Solo sesiones de Claude Code. Fusion intercepta las solicitudes POST a
/v1/messagesde Anthropic. Las sesiones que ejecutan Codex o Grok como agente principal no se fusionan — el tráfico de esos agentes pasa normalmente. - Los tramos que no son de Claude responden sin herramientas. Las definiciones de herramientas se descartan para los tramos de Codex, Grok y local; responden en prosa sobre una transcripción aplanada. Sus borradores informan la síntesis pero no pueden por sí mismos tomar acciones.
- Backends de suscripción de mejor esfuerzo. El tramo de suscripción de Codex viaja sobre el backend de ChatGPT por WebSocket, y el tramo de suscripción de Grok usa
cli-chat-proxy.grok.com— ambas interfaces no documentadas. Ante cualquier error, el tramo se descarta en lugar de hacer fallar el fusible. - Degradación silenciosa. Los tramos descartados y los fallos del juez recurren a la propia respuesta de Claude (o a un borrador en bruto) sin alertar al agente. La traza y el registro stderr
[fusion]son los únicos lugares donde verás que ocurrió. - Latencia. Un turno de texto fusionado espera al tramo superviviente más lento, y luego dos llamadas al juez. Espera turnos de respuesta notablemente más lentos que en una sesión normal; los turnos de herramienta no se ven afectados.