Fusion — o Painel Multimodelo

Os modelos de ponta falham de maneiras diferentes. Um escapa a um caso limite que outro apanha; um alucina uma API que os outros três se recusam a inventar. O Fusion faz dessa diversidade uma funcionalidade: quando está engatado, cada pergunta que a sua sessão do Claude Code faz é respondida por vários modelos ao mesmo tempo, um modelo juiz traça onde os rascunhos concordam, se contradizem e cada um brilha, e uma única resposta sintetizada — assente nessa análise — é entregue ao Claude Code como se um só modelo a tivesse escrito. O agente nunca sabe que se reuniu um painel.

O Fusion corre inteiramente no proxy do lado do anfitrião (ver Conceitos), pelo que nada muda dentro da VM: sem opções de agente, sem guiões de embrulho, sem nenhuma fonte de latência visível a que o agente pudesse reagir. Configura-se por máquina (um espaço de trabalho, no editor de definições) no painel de definições Fusion, e engata-se com o botão de relâmpago (⚡) na barra de ferramentas enquanto um dos separadores de terminal da máquina está no ecrã.

Nota: o Fusion está marcado BETA na interface. É um protótipo que funciona: o mecanismo é estável, mas os prompts do juiz, os backends dos fornecedores e o tratamento de falhas ainda estão a evoluir. Ver Limitações da beta antes de contar com ele.

Como o Fusion funciona

O Fusion interceta o tráfego da sessão do Claude Code para o ponto final /v1/messages da Anthropic. Cada pedido é tratado por etapas:

  1. Ramo A — o Claude responde primeiro. O pedido original do convidado é enviado à Anthropic sem alteração (forçado a não ser em streaming, para que a resposta completa possa ser inspecionada). A sua sessão do Claude Code é sempre um dos ramos do fusível.
  2. Os turnos de ferramenta passam direto. Se a resposta do Claude for uma chamada de ferramenta — o caso comum na programação agêntica, em que a maioria dos turnos é «lê este ficheiro», «executa este comando» — é encaminhada ao agente palavra por palavra e a fusão é saltada nesse turno. O ciclo agêntico nunca é quebrado por uma chamada de ferramenta sintetizada.
  3. Os turnos de texto abrem em leque. Só quando o Claude devolve uma resposta em texto simples é que o Fusion entra. Todos os outros ramos selecionados — Codex (OpenAI), Grok (xAI), Kimi Code (Moonshot AI), Oh My Pi, e opcionalmente um modelo local — recebem a mesma pergunta sobre a mesma transcrição achatada.
  4. O juiz traça o terreno. O modelo juiz compara todos os rascunhos e emite uma análise JSON estruturada — consenso, conflitos, perceções únicas, pontos cegos, e um veredicto — em vez de comentário em prosa.
  5. O juiz sintetiza. O mesmo modelo juiz escreve então a resposta definitiva, assente na análise que acabou de produzir.
  6. Entrega. A resposta fundida é devolvida em fluxo ao agente dentro da VM exatamente na forma que ele pediu (SSE da Anthropic ou JSON). Do ponto de vista do Claude Code, respondeu um modelo.

Uma falha em qualquer etapa degrada-se com suavidade em vez de quebrar a sessão: um ramo cuja credencial não se consegue resolver, ou que dá erro ou excede o tempo, é silenciosamente descartado do fusível. Se sobreviverem menos de duas respostas, a resposta do próprio Claude é devolvida sem alteração.

Turnos de ferramenta e turnos de texto

A distinção entre turno de ferramenta e turno de texto é o que torna o Fusion seguro para trabalho agêntico. As ações (chamadas de ferramenta) são executadas exatamente como o Claude as emitiu; só as respostas — explicações, desenhos, revisões, planos — são fundidas. Numa sessão de programação típica a maioria dos turnos são ações, pelo que a influência do Fusion se concentra onde a diversidade de modelos mais conta: no raciocínio e nas conclusões, não nas edições mecânicas de ficheiros.

De onde vem a identidade de cada ramo

O Fusion não tem interface de credenciais própria. Cada ramo usa a sessão ou a chave de API já configurada para esse agente nas definições de modelos efetivas da máquina — Preferências › Modelos mais a substituição Modelos da própria máquina (ver Modelos e fornecedores). Quando altera essas definições, a configuração do Fusion de uma máquina em execução é refrescada de imediato; se a alteração deixar menos de dois modelos utilizáveis, o Fusion é desengatado.

  • Subscrição — o ramo usa um token vivo do armazém de subscrições do anfitrião (Claude, ChatGPT, Grok ou Kimi); o anfitrião renova-o quando for preciso. Os tokens de subscrição do Claude recebem automaticamente o bloco de sistema de identidade do Claude Code e o cabeçalho beta de OAuth que a Anthropic exige.
  • Chave de API — o ramo usa a chave de API verdadeira do mapa de substituição de tokens do lado do anfitrião (o convidado só viu um falso; ver Credenciais).
  • Oh My Pi — o omp funciona só com chave de API e fala o fornecedor para o qual está mudado, pelo que o seu ramo usa a chave de API desse fornecedor, com o modelo que as definições de Modelos escolhem para o omp lá (caso contrário o modelo de ramo predefinido desse fornecedor). Só a Anthropic, a OpenAI e a xAI podem ser fundidas; o omp em z.ai ou num ponto final personalizado não é oferecido como ramo.
  • Modelo local — o ramo aponta para o motor local da máquina: o seu servidor personalizado quando há um configurado, e de outro modo o motor no dispositivo do Mac (ver Modelos e fornecedores).
  • Amazon Bedrock — uma sessão do Claude Code em Bedrock só contribui através do pedido do próprio convidado; não há um ramo de fusão de Bedrock em separado.

Um ramo cuja credencial não se consegue resolver é descartado com uma linha de registo, nunca com um erro exposto ao agente.

Requisitos

O Fusion precisa de pelo menos dois modelos utilizáveis:

  • A sua sessão do Claude Code conta sempre como um ramo, desde que o agente Claude Code tenha uma credencial utilizável.
  • Cada ramo de nuvem adicional — Codex (OpenAI), Grok (xAI), Kimi Code (Moonshot AI) — precisa de uma credencial para esse agente, configurada em Preferências › Modelos ou na substituição Modelos da máquina. Até haver uma, a linha fica esbatida com a dica — sem credencial de nuvem (configure uma em Preferências › Modelos).
  • O ramo Oh My Pi precisa do omp mudado para Anthropic, OpenAI ou xAI, com uma chave de API desse fornecedor. Caso contrário a sua linha mostra — precisa de uma chave de API Anthropic, OpenAI ou xAI para o Oh My Pi (ponha-a em Preferências › Modelos).
  • O ramo Modelo local precisa de um modelo local: um modelo no dispositivo descarregado em No dispositivo dentro de Modelos, ou um Servidor personalizado. Até lá, a sua linha mostra — descarregue um em Preferências › Modelos.

Com menos de dois modelos utilizáveis selecionados, o painel mostra o texto de ajuda «Escolha pelo menos dois modelos a fundir — a sua sessão do Claude Code conta como um, por isso acrescente mais um (um agente de nuvem ou um modelo local).» e o botão de relâmpago fica desativado.

Configurar o Fusion para uma máquina

O Fusion configura-se no painel Fusion, sob Modelos nas definições da máquina (o ícone de relâmpago amarelo; o painel está marcado BETA). A referência campo a campo vive em Definições do Fusion; esta secção percorre o fluxo.

O painel Fusion do editor do espaço de trabalho Web app: a insígnia BETA e a explicação, a lista Modelos a fundir com Claude Code (Anthropic) — a sua sessão, Codex (OpenAI), Grok (xAI), Kimi Code (Moonshot AI) e Oh My Pi esbatidos com a dica sem credencial de nuvem, a linha Modelo local, e o texto de ajuda laranja a pedir pelo menos dois modelos

Na captura acima, não há nenhum fornecedor configurado para o espaço de trabalho, pelo que todas as linhas sob Modelos a fundir estão esbatidas e o texto de ajuda laranja explica o que falta.

  1. Abra as definições da máquina (Definições… no menu de máquinas) e escolha o painel Fusion.
  2. Sob Modelos a fundir, marque os agentes cujas respostas quer no painel. Claude Code (Anthropic) — a sua sessão é sempre um ramo; acrescente Codex (OpenAI), Grok (xAI), Kimi Code (Moonshot AI), Oh My Pi e/ou Modelo local. A linha Modelo local inclui um seletor dos modelos locais disponíveis.
  3. Sob Juiz, escolha o Fornecedor e o Modelo que vão pesar os rascunhos e escrever a resposta final. A lista de fornecedores oferece todos os agentes com credencial utilizável (o mesmo teste dos ramos), mais Local quando há um modelo local disponível. As listas de modelos de nuvem são obtidas ao vivo do ponto final /v1/models do fornecedor e incluem uma entrada (predefinição); se a obtenção falhar, é oferecida uma pequena lista incorporada. Um juiz local escolhe entre os modelos do catálogo instalado.
  4. Clique em Guardar.
DefiniçãoPredefiniçãoNotas
Modelos a fundirNenhum selecionadoO Claude Code é sempre um ramo; os outros precisam de credencial (nuvem) ou de um modelo local.
Juiz → FornecedorO primeiro fornecedor utilizávelLocal aparece assim que houver um modelo local disponível.
Juiz → Modelo(predefinição) → claude-opus-4-8Listas de nuvem obtidas ao vivo de /v1/models.

Quando o modelo de um ramo não está fixado de forma explícita, as predefinições são: Claude → claude-opus-4-8; Codex → gpt-5.5 numa subscrição ou gpt-5.5-2026-04-23 com chave de API; Grok → grok-build; Kimi Code → kimi-k2.5; Oh My Pi → a predefinição do fornecedor com que fala (a do Claude, a predefinição por chave de API do Codex, ou a do Grok). Um juiz Oh My Pi recorre ao modelo de ramo do omp.

Dica: um modelo local é um ramo extra capaz e de custo marginal nulo — e o próprio juiz pode correr localmente, mantendo toda a etapa de análise e síntese no seu Mac. Ver Modelos e fornecedores.

Engatar o Fusion numa máquina

Configurar o painel só torna o Fusion disponível. Você engata-o por máquina, com o botão de relâmpago (⚡) na barra de ferramentas da janela principal. O relâmpago só aparece enquanto um dos separadores de terminal da máquina está no ecrã — sob Máquinas virtuais na barra lateral, ou depois de premir a cápsula Linux (⌥⌘U) numa sessão para saltar para o seu terminal. Nunca aparece num chat.

Aspeto do relâmpagoEstadoDica
Vazado, desativadoIndisponível — menos de dois modelos utilizáveis«Ative pelo menos dois modelos para usar o Fusion»
Cheio, cinzento-escuroDisponível, desengatado«Fusion disponível — clique para engatar»
Cheio, amareloEngatado«Fusion engatado — clique para desengatar»

Clique no relâmpago para alternar. Engatá-lo aplica-se a toda a máquina: cada sessão do Claude Code que nela corre é fundida até você desengatar. Uma máquina começa com o Fusion desengatado — é uma escolha explícita, nunca uma predefinição silenciosa.

A partir da linha de comandos

Com a aplicação a correr, pode alternar o Fusion numa VM em execução sem tocar na janela:

bromure-cli vm fusion enable <vm>
bromure-cli vm fusion disable <vm>

<vm> é um id de VM ou um nome de espaço de trabalho, e on/off/engage/disengage são aceites como aliases. A saída de estado de bromure-cli vm inclui uma linha de fusion a dizer engaged ou available (off). Estes comandos falam com a API de controlo da aplicação, pelo que exigem que a aplicação (ou o seu agente) esteja a correr; ver CLI, API e MCP.

Quanto custa o Fusion

O Fusion multiplica o consumo de modelos, e deve engatá-lo conhecendo a aritmética. Para cada turno em que o Claude devolve uma resposta em texto simples:

  • Cada ramo selecionado adicional faz uma chamada de modelo completa, recebendo a mesma transcrição achatada como contexto — pelo que conversas longas custam proporcionalmente em cada ramo, em cada turno fundido.
  • O juiz faz duas chamadas a mais: uma para produzir a análise JSON, outra para escrever a síntese. Ambas estão limitadas a 4096 tokens de saída.

Com o Codex, o Grok e um modelo local selecionados ao lado do Claude, uma única resposta fundida custa, portanto, até cinco chamadas de modelo além da chamada ao Claude que já estava a fazer; cada ramo a mais acrescenta outra. Os turnos de chamada de ferramenta abrem em leque para zero chamadas extra, o que na prática mantém as sessões agênticas muito mais baratas que o pior caso — a maioria dos turnos num ciclo de programação são chamadas de ferramenta.

Como cada ramo é faturado segue a sua credencial: os ramos com chave de API faturam por token, os ramos de subscrição puxam pela cota da subscrição, e um ramo local custa apenas cálculo no dispositivo (e bateria, num portátil). Cada ramo tem, por predefinição, um tempo-limite a montante de 600 segundos.

O Fusion no rastreio

O Fusion é deliberadamente invisível para o agente, mas totalmente visível para você. Todas as chamadas laterais a montante — cada ramo, a análise do juiz e a síntese — são capturadas pelo pipeline de rastreio como qualquer outra troca de IA, sujeitas ao nível de rastreio da máquina (ver Rastreio).

Consequências práticas:

  • O Inspetor de rastreio (menu Janela → Inspetor de rastreio…) lista as trocas extra ao lado do tráfego normal da sessão, e apresenta os pedidos e as respostas capturados como conversas analisadas — pode ler exatamente o que cada ramo respondeu e o que o juiz concluiu.
  • O bromure-cli trace hostnames mostra que anfitriões como api.openai.com foram contactados a partir de uma sessão que talvez pensasse ser só da Anthropic. Se a sua organização audita a saída, espere que as sessões fundidas mostrem os pontos finais de todos os fornecedores selecionados.
  • O Fusion também registra abundantemente no registo da aplicação (~/Library/Logs/BromureAC/bromure-ac.log) com o prefixo [fusion] — útil quando se diagnostica por que razão um ramo foi descartado.

Nota: se as suas regras de tratamento de dados restringem que fornecedores podem ver o seu código, lembre-se de que cada ramo selecionado recebe a transcrição achatada completa da conversa. Escolha os ramos em conformidade. Quando a Proteção de dados pessoais está ligada na máquina, os dados pessoais são trocados por substitutos antes do leque, pelo que cada ramo recebe os substitutos.

Substituições por variáveis de ambiente

Algumas predefinições podem ser substituídas por variáveis de ambiente ao lançar a aplicação — útil para experimentar, e não pensado como configuração do dia a dia:

VariávelPredefiniçãoEfeito
BROMURE_FUSION_TIMEOUT600Tempo-limite a montante por ramo, em segundos.
BROMURE_FUSION_OPENAI_MAX_TOKENS128000 (GPT-5/série o), 16384 (gpt-4o e anteriores)Limite de tokens de conclusão do ramo OpenAI.

Limitações da beta

O Fusion é uma funcionalidade em beta, com arestas vivas que vale a pena conhecer:

  • Só sessões do Claude Code. O Fusion interceta os pedidos POST /v1/messages da Anthropic. As sessões que correm o Codex, o Grok, o Kimi ou o omp não são fundidas — o tráfego desses agentes passa normalmente.
  • Os ramos que não são do Claude respondem sem ferramentas. As definições de ferramentas são retiradas para os ramos Codex, Grok, Kimi Code, Oh My Pi e local; eles respondem em prosa sobre uma transcrição achatada. Os seus rascunhos informam a síntese, mas não podem eles mesmos agir.
  • Backends de subscrição no melhor esforço. O ramo de subscrição do Codex anda no backend do ChatGPT por WebSocket, e o de subscrição do Grok usa o cli-chat-proxy.grok.com — ambas interfaces não documentadas. Em qualquer erro o ramo é descartado em vez de fazer o fusível falhar.
  • Oh My Pi só em três fornecedores. Um ramo ou um juiz Oh My Pi funciona apenas enquanto o omp estiver mudado para Anthropic, OpenAI ou xAI com uma chave de API; em z.ai ou num ponto final personalizado não é oferecido.
  • Degradação silenciosa. Ramos descartados e falhas do juiz recorrem à resposta do próprio Claude (ou a um rascunho cru) sem alertar o agente. O rastreio e as linhas [fusion] no registo da aplicação são os únicos lugares onde verá que aconteceu.
  • Latência. Um turno de texto fundido espera pelo ramo sobrevivente mais lento, e depois por duas chamadas ao juiz. Conte com turnos de resposta bem mais lentos que numa sessão simples; os turnos de ferramenta não são afetados.