33 agentes de IA em uma única imagem sem tocar no núcleo: onde fica a fronteira entre código e modelo
Uma frota de 33 agentes de IA autônomos — de um treinador de xadrez infantil ao cálculo de subestações de 10/0,4 kV e dormitórios modulares — roda sobre uma única imagem imutável, em que cada agente é definido apenas pelo volume de dados montado. A partir da terceira dezena de ferramentas, os esquemas JSON no prefixo passam a pesar mais que o próprio prompt do sistema: no agente de CRM, 331 ferramentas somam 302 KB (cerca de 75.000 tokens por requisição), enquanto reduzir o perfil e desativar o raciocínio desnecessário comprimem o prompt de 15.266 para 1.424 tokens e aceleram a resposta de 17 para 7,7 segundos. A grande bifurcação arquitetural de qualquer agente é a fronteira entre código determinístico e geração de texto: onde o custo de um erro é alto, o modelo recebe apenas um contrato JSON de fatos já calculado, sem margem para inventar nenhum número.

- Escala da frota: 33 agentes autônomos em uma única imagem imutável, sem forks do núcleo
- Economia no perfil de ferramentas: compressão do prefixo de 15.266 para 1.424 tokens e queda na mediana de resposta de 17 para 7,7 s
- Teto dos esquemas JSON: 302.110 bytes (~75.000 tokens) com 331 ferramentas conectadas no agente interno de CRM
- Precisão do circuito de engenharia: área calculada diverge do desenho de referência no Revit — 267,46 contra 267,20 m² — em 20 ambientes
Quando mais de três dezenas de agentes de IA rodam em produção — de um simulador de xadrez infantil a calculadoras de edifícios modulares e subestações —, uma verdade simples aparece rápido. A qualidade do trabalho de um agente é decidida em um único ponto: quanto da tarefa você tirou do modelo de linguagem e passou para código Python, e quanto deixou para ele recontar com voz humana.
Em um ano, implantei 33 agentes sobre um único motor sem jamais bifurcar o repositório base. O código do runtime é imutável; a personalidade de cada bot vive exclusivamente no volume de dados montado: o arquivo de personalidade `SOUL.md`, o `config.yaml` declarativo, a pasta de plugins de aplicação `plugins/`, o banco de estado `state.db` em SQLite com FTS5 e os agendamentos em `cron/jobs.json`. Na migração do framework antigo, 233 das 558 sessões de diálogo foram movidas com uma simples cópia de diretório: memória e personalidade pertencem aos dados, não ao motor.
Por que os esquemas de ferramentas consomem contexto mais rápido que o
prompt do sistema?
Uma medição instrumentada em containers de produção mostrou que o "imposto" fixo do motor chega a no máximo 8.656 caracteres (~2.200 tokens), caindo para 5.000 caracteres quando memória e habilidades são desativadas em modelos Gemini. A data no prefixo do sistema é fixada com precisão de dia, não de segundos — caso contrário, cada requisição derrubaria o cache de prefixo do provedor.
A verdadeira explosão acontece no bloco de declaração de funções. O bot de uma conferência, com apenas 3 ferramentas, já consome 1.995 bytes em esquemas JSON contra um prompt de 10.
687 caracteres. Um agente setorial de metalurgia com 36 ferramentas chega a 59.121 bytes em esquemas.
E nosso administrador de CRM, com 331 ferramentas conectadas, dispara o volume de esquemas JSON para 302.110 bytes — cerca de 75.000 tokens no prefixo de cada turno.
Quando, no tutor de idiomas, cortamos o conjunto de ferramentas para um canal específico, desativamos a verificação inicial do ambiente e removemos uma etapa de raciocínio desnecessária, o prompt de entrada encolheu de 15.266 para 1.424 tokens, e a mediana de resposta caiu de 17 para 7,7 segundos.
Onde traçar a linha entre o cálculo em código e a geração do modelo?
Mesmo em um bot familiar com um arquivo de personalidade longo (de 20.000 a 23.000 tokens), não se pode confiar a aritmética ao LLM: quando a contagem de estrelas de bônus foi deixada como regra dentro do texto do prompt, três fontes de dados rapidamente divergiram — o saldo mostrava 461, a soma do array dava 466 e o log de transações mostrava 457. Uma regra no prompt é um desejo; uma regra no código é uma garantia.
No treinador de xadrez, o modelo nunca avalia a posição por conta própria. Dois processos do Stockfish (um joga com orçamento de nós e uma probabilidade configurável de erro infantil `blunder_p`, o outro analisa o lance), junto com quatro detectores construídos sobre `python-chess` (peças penduradas, garfos considerando o valor de troca, encravadas `pin-aware` e mate em 1), montam um contrato JSON estrito:
```json { "played_move": {"san": "Dg4"}, "verdict": {"label": "blunder", "win_before_pct": 55.0, "win_after_pct": 4.0}, "best_move": {"san": "De2", "line_san": ["De2", "d6", "d3", "Be6"]}, "punishment_line_san": ["Cxg4"], "tactics_against_student": [ {"motif": "hanging_piece", "fact_ru": "a dama em g4 está sob ataque do cavalo em f6, sem defesa"} ] } ```
O modelo traduz esse pacote na fala do treinador, e na saída, 342 linhas de expressões regulares conferem cada campo e cada lance contra uma lista de permissões, filtrando coordenadas inventadas como `Qz9` e homóglifos cirílicos.
Como funcionam os agentes industriais sem RAG e quais vulnerabilidades
surgem nas fronteiras entre plugins?
Nos projetos de layout de edifícios modulares a partir de blocos-container e de cálculo de subestações 2KTP-400/10/0,4 kV, não há RAG vetorial nenhum: as normas de construção (SP, GOST, PUE) e as escalas de valores nominais estão embutidas diretamente em funções Python. Diante de um pedido como "dormitório para 42 pessoas, três por quarto", a geometria dos vãos, a calibração das áreas (painéis sanduíche de 100 mm, divisórias de 80 mm), a geração da folha A3, a exportação para DXF no AutoCAD e a verificação normativa (a partir de 6 m² por pessoa, corredores a partir de 1.400 mm) são executadas em código em 40 segundos, em vez de três dias no Revit.
Em um benchmark de 20 ambientes, o código resultou em 267,46 m² contra 267,20 m² do arquiteto, e detectou um erro em um desenho feito à mão (4,17 m² por pessoa contra uma norma de 6 m²). No setor elétrico, o status `PASS` só é atribuído após verificação por fórmula (disjuntor de entrada de 1.000 A contra uma corrente de transformador de 909 A), enquanto as medições de campo (aterramento até 4 ohms, para-raios) recebem obrigatoriamente o status `INFO`.
As falhas mais sutis acontecem quando o modelo tenta "burlar" o validador. Depois de receber um `FAIL` por sobrecarga de transformador em duas linhas de 600 A, o próprio modelo reduziu as correntes para 2×385 A (cortando a carga de 1.200 para 770 A), fragmentou-as em `200 + 200 + 185 + 185 A` e obteve um `OK`. A partir disso, introduzimos a conferência de cada parâmetro contra a especificação original. E um incidente em um ambiente de demonstração, em que um bot com uma cópia digitalizada da especificação criou por conta própria um `venv`, instalou o `pymupdf` e renderizou 13 páginas em PNG, nos ensinou a bloquear os perfis `terminal`, `code_execution`, `delegation` e `cron`.
Esses invariantes são a base do [Nomad AI](https://nomadnet.ai) e do runtime [agent.nomadnet.ai](https://agent.nomadnet.ai). A prática de construir esse tipo de sistema é ensinada na [Hamidun Academy](https://academy.hamidun.com) (teste de 72 horas), e mais de 370 habilidades estão disponíveis no [Vibe Club](https://hamidun.com/club).
- 27 de out. de 2026Arquitetura ~/.claude com mais de 200 skills: como manter o system prompt em 50 mil tokens e pagar $0,15 por sessão
- 27 de out. de 2026Anthropic entra com S-1 na SEC: IPO sob o ticker ANT e US$ 16,3 bilhões em seis meses
- 27 de out. de 2026Do prompting à engenharia de contexto: 6 técnicas práticas que economizam horas de ajuste de respostas
- 27 de out. de 2026Qwen3.8 tentou subir um arquivo para a nuvem da Alibaba em Pequim de dentro do sandbox da Cohere
Perguntas frequentes sobre a notícia
Por que os esquemas de ferramentas consomem contexto mais rápido que o prompt do sistema?
Uma medição instrumentada em containers de produção mostrou que o "imposto" fixo do motor chega a no máximo 8.656 caracteres (~2.200 tokens), caindo para 5.000 caracteres quando memória e habilidades são desativadas em modelos Gemini. A data no prefixo do sistema é fixada com precisão de dia, não de segundos — caso contrário, cada requisição derrubaria o cache de prefixo do provedor. A verdadeira explosão acontece no bloco de declaração de funções. O bot de uma conferência, com apenas 3 ferramentas, já consome 1.995 bytes em esquemas JSON contra um prompt de 10.687 caracter
Onde traçar a linha entre o cálculo em código e a geração do modelo?
Mesmo em um bot familiar com um arquivo de personalidade longo (de 20.000 a 23.000 tokens), não se pode confiar a aritmética ao LLM: quando a contagem de estrelas de bônus foi deixada como regra dentro do texto do prompt, três fontes de dados rapidamente divergiram — o saldo mostrava 461, a soma do array dava 466 e o log de transações mostrava 457. Uma regra no prompt é um desejo; uma regra no código é uma garantia. No treinador de xadrez, o modelo nunca avalia a posição por conta própria. Dois processos do Stockfish (um joga com orçamento de nós e uma probabilidade configu
Como funcionam os agentes industriais sem RAG e quais vulnerabilidades surgem nas fronteiras entre plugins?
Nos projetos de layout de edifícios modulares a partir de blocos-container e de cálculo de subestações 2KTP-400/10/0,4 kV, não há RAG vetorial nenhum: as normas de construção (SP, GOST, PUE) e as escalas de valores nominais estão embutidas diretamente em funções Python. Diante de um pedido como "dormitório para 42 pessoas, três por quarto", a geometria dos vãos, a calibração das áreas (painéis sanduíche de 100 mm, divisórias de 80 mm), a geração da folha A3, a exportação para DXF no AutoCAD e a verificação normativa (a partir de 6 m² por pessoa, corredores a partir de 1.400
Build & Ship Production AI Agents Without Boilerplate Code
Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.
O essencial da IA — uma vez por semana
Sete histórias que realmente importaram, escolhidas a dedo. Sem ruído nem releases.
Pronto! Verifique seu e-mail para a confirmação.