Translate

Mostrar mensagens com a etiqueta Engenharia de IA. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Engenharia de IA. Mostrar todas as mensagens

segunda-feira, 1 de junho de 2026

O Que Todo Programador COBOL Padawan Precisa Saber Sobre Full Fine-Tuning, LoRA, QLoRA, SFT, DPO e RLHF na Era da Inteligência Artificial

 

Bellacosa Mainframe e o fine tuning de llm

☕ Um Café no Bellacosa Mainframe

Fine-Tuning de LLMs Descomplicado

O Que Todo Programador COBOL Padawan Precisa Saber Sobre Full Fine-Tuning, LoRA, QLoRA, SFT, DPO e RLHF na Era da Inteligência Artificial

"No Mainframe aprendemos cedo que não se recompila um sistema bancário inteiro para corrigir uma única regra de negócio. Então por que tantas pessoas fazem exatamente isso com modelos de Inteligência Artificial?" 


Introdução

Se você trabalha há algum tempo com IBM Mainframe, provavelmente já participou de alguma situação parecida.

O banco precisava alterar apenas uma regra tributária.

A alteração estava concentrada em um único programa COBOL.

Mesmo assim alguém sugeriu:

"Vamos recompilar tudo."

A reação de qualquer analista experiente seria imediata.

Para quê?

Afinal, recompilar centenas de programas significa consumir CPU, aumentar riscos, gerar mais testes, envolver homologação, aumentar o tempo de deploy e, principalmente, criar possibilidades de novos erros.

No mundo dos Large Language Models (LLMs), acontece exatamente a mesma coisa.

Muitos profissionais ouvem falar em Fine-Tuning e imaginam que exista apenas uma maneira de "ensinar" algo novo para uma IA.

Na prática, existem diversas estratégias.

Algumas alteram bilhões de parâmetros.

Outras modificam apenas alguns milhões.

Outras nem sequer alteram o modelo.

É exatamente essa diferença que separa projetos de milhares de dólares de projetos que podem ser treinados em uma única GPU doméstica.

Neste café vamos entender toda essa arquitetura utilizando comparações que fazem muito sentido para quem já viveu anos trabalhando com COBOL, CICS, DB2, VSAM e JCL.

Pegue seu café.

Hoje vamos abrir a tampa do motor da Inteligência Artificial.


Antes de falar em Fine-Tuning precisamos entender um Transformer

Imagine um programa COBOL enorme.

Não estamos falando de 3.000 linhas.

Imagine um sistema bancário com:

  • milhares de programas

  • centenas de COPYBOOKs

  • dezenas de módulos

  • chamadas CICS

  • SQL para DB2

  • VSAM

  • MQ

  • APIs REST

Agora imagine que tudo isso fosse compactado em um único conjunto gigantesco de matrizes matemáticas.

Esse conjunto é o modelo.

Um Transformer moderno possui dezenas ou centenas de camadas (Layers).

Visualmente podemos imaginar algo assim:

Entrada

↓

Embedding

↓

Layer 1

↓

Layer 2

↓

Layer 3

↓

...

↓

Layer 80

↓

Saída

Cada Layer possui milhões de parâmetros.

Juntos eles representam o conhecimento aprendido.


O que são parâmetros?

Se você nunca estudou Redes Neurais, imagine um enorme arquivo VSAM contendo bilhões de pequenos números.

Cada número representa um ajuste aprendido durante o treinamento.

Exemplo:

0.834829

↓

0.834841

A diferença parece insignificante.

Mas quando bilhões desses valores são alterados ao mesmo tempo...

O comportamento inteiro do modelo muda.

Esses números são chamados de pesos (weights).

Treinar uma IA significa simplesmente alterar esses pesos.

Nada mais.

Nada menos.


Pense como um Programador COBOL

Imagine um sistema bancário.

Você possui:

  • Programa COBOL

  • COPYBOOKS

  • CICS

  • DB2

  • JCL

Agora alguém pede:

"Ensine esse sistema a emitir PIX internacional."

Você possui diversas opções.

Pode alterar somente um COPYBOOK.

Pode alterar apenas um módulo.

Pode criar um novo programa.

Ou pode reescrever absolutamente tudo.

No universo dos LLMs acontece exatamente a mesma coisa.


O espectro do Fine-Tuning

Muitos iniciantes acreditam que Fine-Tuning é uma técnica.

Na realidade ele é um conjunto de técnicas.

Podemos organizar assim:

Prompt Engineering

↓

RAG

↓

SFT

↓

LoRA

↓

QLoRA

↓

Full Fine-Tuning

↓

DPO

↓

RLHF

Quanto mais descemos...

Maior o custo.

Maior o consumo de GPU.

Maior a complexidade.

Maior o tempo de treinamento.


Prompt Engineering

É a primeira ferramenta.

E curiosamente...

É a mais barata.

Você não altera absolutamente nada no modelo.

É como escrever uma JCL melhor.

O programa continua exatamente igual.

Você apenas fornece instruções mais inteligentes.

Exemplo:

Você é um especialista em COBOL IBM Enterprise COBOL 6.5.

Explique COMP-3.

Utilize exemplos bancários.

Responda em português.

Nenhum parâmetro foi alterado.

Nenhum peso foi modificado.

Mesmo assim a qualidade melhora bastante.


RAG

Agora imagine outra situação.

Seu programa COBOL precisa consultar um novo cadastro.

Você faria o quê?

Reescreveria todo o sistema?

Claro que não.

Bastaria consultar um novo banco de dados.

É exatamente isso que faz o RAG.

Pergunta

↓

Busca documentos

↓

Envia ao LLM

↓

Resposta

O modelo continua congelado.

Quem muda é apenas o conhecimento disponível durante a consulta.

Por isso dizemos:

RAG adiciona memória.

Não inteligência.


Quando NÃO devemos fazer Fine-Tuning

Esse talvez seja o maior erro da indústria.

Imagine que sua empresa possui:

  • manuais

  • normas

  • PDFs

  • contratos

  • documentação interna

Alguém diz:

"Vamos treinar um LLM com tudo isso."

Provavelmente está desperdiçando dinheiro.

RAG resolve praticamente todos esses casos.


Full Fine-Tuning

Agora chegamos ao método clássico.

Todos os parâmetros são atualizados.

Visualmente:

Layer 1

Treina

↓

Layer 2

Treina

↓

Layer 3

Treina

↓

...

↓

Layer N

Treina

Nada permanece congelado.

Tudo muda.


Por que isso é tão caro?

Vamos imaginar um modelo de 70 bilhões de parâmetros.

Todos eles precisarão:

  • armazenar gradientes

  • calcular derivadas

  • atualizar pesos

  • salvar checkpoints

Isso exige dezenas de GPUs profissionais.

Em muitos casos:

Centenas.


Analogia Mainframe

É como recompilar:

  • COBOL

  • PL/I

  • Natural

  • CICS

  • MQ

  • DB2

  • JCL

  • COPYBOOKS

Tudo.

Mesmo que apenas um programa precisasse mudar.

Faz sentido?

Na maioria das vezes...

Não.


Onde Full Fine-Tuning ainda faz sentido?

Modelos médicos.

Modelos militares.

Modelos científicos.

Modelos jurídicos extremamente especializados.

Ou quando estamos criando um novo modelo base.

Fora isso...

Existem alternativas melhores.


A Revolução Chamada LoRA

Em 2021 surgiu uma ideia brilhante.

E se...

Em vez de alterar bilhões de parâmetros...

Nós adicionássemos pequenas correções?

Foi exatamente isso que o artigo LoRA propôs.

O modelo original permanece intacto.

Quem aprende são pequenos adaptadores.


Visualmente:

Modelo Original

↓

Congelado

+

Adaptadores

↓

Aprendem

O que significa Low Rank?

Aqui entra um pouco de matemática.

Imagine uma matriz enorme:

4096 x 4096

Em vez de aprender tudo isso...

LoRA aprende duas matrizes muito menores.

4096 x 16

+

16 x 4096

A multiplicação das duas aproxima a alteração necessária.

Resultado?

Muito menos parâmetros.

Muito menos memória.

Muito menos GPU.


Analogia COBOL

Imagine um programa de 40.000 linhas.

Você não altera tudo.

Você cria uma rotina adicional.

Algo parecido com um módulo externo.

Na execução...

O sistema utiliza:

Programa Original

Nova Rotina

Essa nova rotina corresponde ao adaptador LoRA.


Vantagens do LoRA

Economia.

Rapidez.

Facilidade.

Possibilidade de possuir dezenas de especializações diferentes para o mesmo modelo.

Imagine um único Llama.

E vários LoRAs.

Llama

↓

LoRA Jurídico

↓

LoRA Médico

↓

LoRA COBOL

↓

LoRA DevOps

↓

LoRA SAP

Todos compartilham exatamente o mesmo modelo base.


QLoRA

Agora vem outra inovação.

E se...

Além de congelar o modelo...

Nós comprimíssemos sua memória?

É isso que faz o QLoRA.

O modelo base é armazenado em apenas 4 bits.

Mas atenção.

Esse é um detalhe extremamente importante.

Os adaptadores continuam treinando normalmente em maior precisão, como FP16 ou BF16.

Isso evita perda excessiva de qualidade durante o aprendizado.


Quantização

Imagine uma fotografia.

Original:

16 milhões de cores.

Depois:

256 cores.

Ela ocupa muito menos espaço.

Com os modelos acontece algo semelhante.

Menos bits.

Menos memória.

Mais eficiência.


Analogia Mainframe

É como compactar um dataset utilizando um formato extremamente eficiente.

O conteúdo continua disponível.

Mas ocupa muito menos disco.


SFT – Supervised Fine-Tuning

Aqui começamos a ensinar comportamento.

Não conhecimento.

A diferença é enorme.

Imagine um professor.

Ele entrega:

Pergunta.

Resposta correta.

Pergunta.

Resposta correta.

Pergunta.

Resposta correta.

O modelo aprende imitando.

Exemplo:

Pergunta

Explique VSAM.

↓

Resposta ideal.

↓

Treinamento.

Onde usamos SFT?

Chatbots corporativos.

Assistentes técnicos.

Documentação.

Atendimento.

Programação.

Explicações.

Tudo isso normalmente começa com SFT.


DPO – Direct Preference Optimization

Imagine que existam duas respostas.

Resposta A.

Resposta B.

Um especialista diz:

"A ficou muito melhor."

O DPO aprende exatamente isso.

Ele não precisa calcular recompensas complexas.

Ele apenas aprende qual saída deve ser preferida.

É extremamente elegante.


Analogia COBOL

Imagine dois programas.

Os dois compilam.

Os dois executam.

Mas apenas um segue corretamente a especificação do banco.

O DPO aprende a favorecer esse comportamento.


RLHF

Agora chegamos ao método mais sofisticado.

Reinforcement Learning from Human Feedback.

O fluxo é enorme.

Modelo

↓

Respostas

↓

Humanos avaliam

↓

Reward Model

↓

PPO

↓

Novo treinamento

Existe inclusive um segundo modelo.

O Reward Model.

Ele aprende a dar notas.

Depois outro algoritmo utiliza essas notas para melhorar o modelo principal.

É poderoso.

Mas extremamente caro.


Por que DPO ficou tão popular?

Porque elimina boa parte dessa complexidade.

Em muitos cenários.

SFT + DPO produz resultados muito próximos ao RLHF.

Com muito menos custo.


O maior erro das empresas

Muitas organizações ainda pensam assim:

Preciso melhorar o modelo.

↓

Fine-Tuning.

Essa pergunta está errada.

A pergunta correta é:

"O que realmente precisa mudar?"

Talvez apenas o prompt.

Talvez apenas o RAG.

Talvez um LoRA.

Talvez um SFT.

Talvez nenhum treinamento.


O que a imagem não mostra

O universo de PEFT (Parameter Efficient Fine-Tuning) vai muito além do LoRA.

Hoje existem técnicas como:

  • AdaLoRA

  • DoRA

  • IA³

  • Prefix Tuning

  • Prompt Tuning

  • P-Tuning v2

  • VeRA

  • LoKr

  • LoHa

  • OFT

  • BOFT

Todas elas têm o mesmo objetivo:

Treinar menos.

Aprender mais.

Consumir menos GPU.


Misturando Adaptadores

Outra grande vantagem.

Você pode carregar múltiplos adaptadores.

Imagine:

Modelo Base

↓

LoRA Financeiro

↓

LoRA RH

↓

LoRA Jurídico

↓

LoRA Mainframe

Dependendo da tarefa...

Você ativa apenas o adaptador correspondente.

É como carregar módulos diferentes em uma aplicação COBOL sem alterar o núcleo do sistema.


Catastrophic Forgetting

No Full Fine-Tuning existe um risco importante.

Ao aprender demais um novo domínio...

O modelo pode esquecer conhecimentos antigos.

É o chamado Catastrophic Forgetting.

Como o LoRA preserva o modelo original congelado, esse problema tende a ser muito menor.


O Futuro

A tendência da indústria é clara.

Pouquíssimas empresas treinam modelos gigantes do zero.

A maioria utiliza modelos abertos como:

  • Llama

  • Mistral

  • Qwen

  • Gemma

  • DeepSeek

Depois aplica:

  • Prompt Engineering

  • RAG

  • LoRA

  • QLoRA

  • SFT

  • DPO

Conseguindo resultados excelentes com custos muito menores.


O Café do Bellacosa ☕

Quando comecei minha carreira em Mainframe, aprendi uma lição que continua verdadeira décadas depois.

O melhor engenheiro não é aquele que modifica mais código.

É aquele que modifica apenas o necessário.

Essa filosofia aparece em praticamente tudo que fazemos em TI.

No COBOL, evitamos recompilar aplicações inteiras para uma pequena mudança de negócio.

No DB2, preferimos ajustar um índice ou um plano de acesso antes de reescrever consultas complexas.

No CICS, alteramos uma transação ou um programa específico, não toda a região.

No z/OS, aplicamos um PTF em vez de reinstalar o sistema operacional.

Na Inteligência Artificial, a lógica é exatamente a mesma.

Nem todo problema exige Full Fine-Tuning.

Nem todo projeto precisa de RLHF.

Muitas vezes, um bom Prompt Engineering resolve o problema. Em outras, um RAG bem construído fornece o conhecimento necessário. Quando o desafio é adaptar o comportamento do modelo, LoRA ou QLoRA costumam oferecer uma relação extraordinária entre custo e benefício. Se o objetivo é ensinar exemplos de respostas ideais, o SFT é o caminho natural. E quando precisamos alinhar preferências de forma eficiente, o DPO surge como uma alternativa elegante ao complexo pipeline do RLHF.

O verdadeiro arquiteto de IA não escolhe a ferramenta mais sofisticada.

Escolhe a ferramenta mais adequada.

Assim como um bom programador COBOL sabe que nem toda alteração exige recompilar milhares de programas, um bom engenheiro de IA entende que o segredo não está em treinar mais, mas em treinar melhor.

No fim das contas, Fine-Tuning não é uma única técnica. É um conjunto de estratégias, cada uma com objetivos, custos e impactos diferentes. Compreender o que realmente está sendo atualizado dentro do modelo é a diferença entre um projeto sustentável e um desperdício de GPUs, tempo e dinheiro.

E talvez essa seja a maior lição deste café: a evolução da Inteligência Artificial não elimina os princípios da Engenharia de Software que aprendemos no Mainframe. Pelo contrário, ela os reforça. Planejamento, eficiência, reutilização, modularidade e otimização continuam sendo as bases dos grandes sistemas — apenas mudaram de cenário.

Porque, seja ajustando um programa COBOL em um IBM Z ou adaptando um LLM de bilhões de parâmetros, a pergunta continua a mesma:

"O que realmente precisa ser alterado?"

Quando você sabe responder a essa pergunta, deixa de apenas usar Inteligência Artificial e passa a projetá-la com a mesma disciplina e maturidade que fizeram do Mainframe a plataforma mais confiável da história da computação.

domingo, 13 de outubro de 2024

MCP Design Patterns: O Manual Definitivo para Construir Agentes de IA Inteligentes (e por que Arquitetura Vale Muito Mais que Prompt)

 

Bellacosa Mainframe mcp design patterns

☕ Um Café no Bellacosa Mainframe

MCP Design Patterns: O Manual Definitivo para Construir Agentes de IA Inteligentes (e por que Arquitetura Vale Muito Mais que Prompt)

"Todo desenvolvedor júnior se encanta pelo agente. O desenvolvedor sênior se preocupa com a arquitetura. O arquiteto sabe que um agente inteligente sobre uma arquitetura ruim apenas toma decisões erradas mais rapidamente."

Durante muitos anos nós, programadores, aprendemos que desenvolver software significava criar classes, funções, APIs e bancos de dados.

Depois vieram os microsserviços.

Depois Kubernetes.

Depois Serverless.

Agora chegou a vez da Inteligência Artificial.

Mas existe um erro que praticamente todo iniciante comete.

Ele acredita que construir um sistema baseado em IA significa apenas conectar o ChatGPT a uma API.

Não significa.

Na verdade, isso representa apenas uma pequena parte da arquitetura.

É exatamente aqui que entra um conceito que provavelmente será tão importante quanto REST foi para os sistemas distribuídos:

Model Context Protocol (MCP).

Mas existe uma segunda descoberta que poucos fazem no início da jornada.

O MCP resolve a comunicação.

Os Design Patterns resolvem o problema real.

Hoje vamos entender profundamente por quê.

Pegue seu café.

Porque esta conversa pode mudar completamente sua forma de enxergar agentes inteligentes.


O que realmente é o MCP?

Imagine um programador COBOL chegando ao escritório.

Ele precisa consultar:

  • CICS

  • Db2

  • IMS

  • RACF

  • VSAM

  • MQ

  • arquivos JCL

  • documentação

  • APIs REST

Cada tecnologia possui uma interface diferente.

Agora imagine um engenheiro de IA.

Ele possui exatamente o mesmo problema.

Só que o usuário é um LLM.

O LLM não sabe conversar com Db2.

Não entende CICS.

Nunca ouviu falar em JES2.

Muito menos em um dataset PDS.

Então alguém precisava criar um idioma universal.

Esse idioma recebeu o nome de Model Context Protocol (MCP).

Pense nele como um USB-C.

Você não precisa mais fabricar um cabo diferente para cada dispositivo.

Todos falam o mesmo protocolo.

O mesmo acontece com IA.

Ao invés de ensinar cada modelo a conversar com milhares de APIs diferentes...

Criamos um protocolo único.


MCP não é um Framework

Esse é outro erro comum.

MCP não substitui:

  • Spring Boot

  • FastAPI

  • Express

  • ASP.NET

Ele também não substitui:

  • REST

  • GraphQL

  • gRPC

Na verdade...

Ele vive acima deles.

Usuário

↓

LLM

↓

MCP Client

↓

MCP Server

↓

REST
SOAP
GraphQL
SQL
MQ
Filesystem
Mainframe

Perceba que o MCP não elimina tecnologias existentes.

Ele apenas organiza o acesso a elas.


O maior erro dos iniciantes

Quase todo mundo faz isso.

"Vou criar um MCP."

Mas ninguém pergunta:

Meu fluxo realmente funciona como?

Essa pergunta vale milhões.

Porque existem dezenas de maneiras diferentes de organizar um sistema baseado em IA.

É exatamente para isso que servem os Design Patterns.


Pense como um arquiteto

Um arquiteto não começa desenhando portas.

Ele pergunta:

Será uma escola?

Hospital?

Shopping?

Casa?

Prédio?

O mesmo vale para MCP.

Não existe um único padrão.

Existe o padrão correto para determinado problema.

Vamos conhecer cada um deles.


Pattern 1 — Local Resource Access

É o padrão mais simples.

Mas também um dos mais utilizados.

Imagine um agente que precisa responder perguntas usando documentos internos.

PDFs.

Excel.

TXT.

CSV.

Imagens.

JCL.

COBOL.

PL/I.

Datasets.

Não faz sentido enviar tudo para a nuvem.

Então o MCP acessa diretamente o sistema de arquivos.

LLM

↓

Servidor MCP

↓

Filesystem

Simples.

Seguro.

Rápido.


Exemplo no Mainframe

Imagine perguntar:

"Liste todos os JOBs que utilizam SORT."

O MCP poderia analisar:

SYS1.PROCLIB

SYS2.PROCLIB

USER.JCL

PRODUCTION.JOBS

Sem copiar absolutamente nada para fora do ambiente z/OS.

Esse padrão é fantástico para ambientes regulados.


Curiosidade

Empresas financeiras dificilmente aceitam que seus documentos internos sejam enviados para provedores externos de IA.

Por isso, o Local Resource Pattern provavelmente será um dos mais utilizados nos próximos anos.


Pattern 2 — Hierarchical MCP

Agora o sistema começou a crescer.

Imagine uma fintech.

Ela possui:

Clientes.

Pagamentos.

PIX.

Cartões.

Fraude.

CRM.

Cobrança.

Tudo misturado.

Um caos.

Então surge um roteador principal.

Agente

↓

Router MCP

↓

Clientes

↓

Pagamentos

↓

PIX

↓

Fraudes

Cada servidor conhece apenas seu domínio.

Exatamente como microsserviços.


Analogia Mainframe

Pense em um Sysplex.

Cada LPAR executa determinadas cargas.

Existe coordenação.

Mas ninguém tenta fazer tudo sozinho.

O mesmo acontece aqui.


Pattern 3 — Event Driven

Esse padrão muda completamente a filosofia.

Nem tudo precisa acontecer imediatamente.

Às vezes basta gerar um evento.

Pedido recebido

↓

MQ

↓

Servidor MCP

↓

Worker

↓

Resposta futura

Isso lembra bastante:

  • IBM MQ

  • Kafka

  • RabbitMQ

  • Event Streams


Exemplo corporativo

Recebeu uma nota fiscal.

Extrair dados.

Classificar.

Enviar ao ERP.

Gerar relatório.

Enviar e-mail.

Tudo isso pode acontecer sem bloquear o usuário.


Exemplo IBM Z

CICS

↓

MQ

↓

MCP

↓

Análise

↓

Atualiza Db2

↓

Notifica operador

É exatamente a filosofia dos sistemas orientados a eventos.


Pattern 4 — MCP-to-Agent

Agora chegamos onde a IA realmente fica interessante.

Imagine um único agente tentando responder tudo.

Financeiro.

Jurídico.

RH.

Infraestrutura.

Banco de dados.

Não parece uma boa ideia.

Então fazemos exatamente o contrário.

Criamos especialistas.

Supervisor

↓

Especialista COBOL

Especialista Db2

Especialista CICS

Especialista RACF

Especialista MQ

Cada um conhece profundamente sua área.

Depois alguém junta as respostas.

Isso é arquitetura Multi-Agent.


Imagine isso

Usuário pergunta:

"Por que meu JOB terminou com RC=12?"

O supervisor encaminha a pergunta para:

  • Especialista JCL

  • Especialista SORT

  • Especialista Db2

  • Especialista JES2

Todos analisam simultaneamente.

Depois entregam um diagnóstico consolidado.

Muito mais eficiente.


Pattern 5 — Composite Service

Agora o MCP vira um maestro.

Ele coordena vários serviços.

Consulta Cliente

↓

Consulta Crédito

↓

Consulta Receita

↓

Consulta ERP

↓

Consulta Open Finance

↓

Resposta

Para o usuário parece uma única ferramenta.

Mas internamente dezenas de APIs trabalharam juntas.


Exemplo Mainframe

Abrir uma conta.

O MCP pode chamar:

  • CICS

  • Db2

  • MQ

  • RACF

  • z/OS Connect

  • API do CRM

Tudo automaticamente.


Pattern 6 — Direct API Wrapper

É o mais simples.

Você já possui APIs.

Só precisa expô-las.

REST

↓

MCP

↓

LLM

Não existe necessidade de reinventar nada.

Esse padrão é excelente para:

  • MVP

  • Provas de conceito

  • Hackathons

  • Integrações rápidas


Comparando todos os padrões

PatternComplexidadeEscalaQuando usar
Local ResourceMuito baixaMédiaArquivos locais
Direct APIBaixaAltaAPIs existentes
CompositeMédiaAltaIntegrações
Event DrivenAltaMuito altaProcessamentos longos
HierarchicalAltaMuito altaGrandes empresas
MCP-to-AgentMuito altaExtremamente altaIA especializada

Como isso conversa com RAG?

Muita gente confunde.

RAG não substitui MCP.

MCP não substitui RAG.

Eles trabalham juntos.

Imagine:

Pergunta

↓

Agente

↓

RAG procura conhecimento

↓

MCP executa ação

↓

Resposta

Um encontra informação.

O outro executa tarefas.

São complementares.


E onde entra o Prompt Engineering?

Outro mito.

Prompt Engineering não desapareceu.

Na verdade ficou ainda mais importante.

Agora temos:

  • Prompt do usuário

  • Prompt do agente

  • Prompt das ferramentas

  • Prompt dos especialistas

  • Prompt do supervisor

É uma arquitetura inteira de prompts.


Observabilidade: o detalhe que todo mundo esquece

Quem respondeu?

Qual ferramenta foi utilizada?

Quanto tempo demorou?

Qual API falhou?

Qual agente tomou determinada decisão?

Sem observabilidade...

Você nunca conseguirá depurar um sistema baseado em IA.

Da mesma forma que usamos:

  • SMF

  • RMF

  • SDSF

  • JES2

para monitorar o z/OS,

precisaremos monitorar agentes.

Provavelmente surgirão verdadeiros "SDSFs para IA".


Segurança

Este talvez seja o assunto mais importante.

Imagine um agente com acesso irrestrito.

Ele poderia:

Excluir arquivos.

Cancelar JOBs.

Criar usuários.

Alterar tabelas.

Assustador.

Por isso o MCP precisa respeitar princípios como:

  • Menor privilégio (Least Privilege)

  • Zero Trust

  • Autenticação forte

  • Autorização por função

  • Auditoria completa

  • Logs imutáveis

No mundo IBM Z, isso conversa diretamente com RACF, ACF2 e Top Secret.


O futuro: agentes especializados

Hoje temos um único chatbot.

Daqui a alguns anos teremos verdadeiras equipes virtuais.

Imagine um ambiente de desenvolvimento onde coexistem:

  • um Arquiteto de Software virtual;

  • um Especialista COBOL;

  • um DBA Db2;

  • um Especialista CICS;

  • um Analista de Segurança RACF;

  • um Especialista em Performance WLM;

  • um Engenheiro DevOps;

  • um Especialista em Observabilidade.

Você faz uma única pergunta, e um agente supervisor distribui automaticamente as tarefas para cada especialista. Essa visão, que parecia ficção científica há poucos anos, já começa a aparecer nas arquiteturas corporativas mais modernas.


Dicas para o Programador Júnior

Se você está começando agora, não tente aprender tudo de uma vez. Construa sua base de forma incremental:

  1. Aprenda primeiro o que é o MCP e como ele expõe ferramentas.

  2. Crie um pequeno servidor MCP acessando arquivos locais.

  3. Envolva uma API REST existente usando o padrão Direct API Wrapper.

  4. Evolua para um Composite Service, orquestrando duas ou três APIs.

  5. Estude filas e processamento assíncrono com IBM MQ, Kafka ou RabbitMQ.

  6. Experimente arquiteturas multiagentes, separando especialistas por domínio.

  7. Documente tudo. Um bom diagrama vale tanto quanto um bom código.

  8. Pense sempre em segurança, observabilidade e governança desde o primeiro dia.

Lembre-se: a melhor arquitetura é aquela que continua simples mesmo quando o sistema cresce.


Curiosidades

☕ O conceito de protocolos padronizados não é novo. Assim como HTTP revolucionou a Web e JDBC padronizou o acesso a bancos de dados, o MCP busca padronizar a comunicação entre modelos de IA e ferramentas.

☕ Muitas empresas estão reutilizando APIs que já existiam há anos. Em vez de reescrever sistemas, apenas criam uma camada MCP sobre elas.

☕ Um servidor MCP pode conversar com sistemas escritos em COBOL, Java, Python, C#, Go ou Node.js. O protocolo não depende da linguagem de implementação.

☕ Ambientes IBM Z são candidatos naturais para o uso de MCP, pois concentram processos críticos, regras de negócio consolidadas e décadas de conhecimento corporativo.


Easter Eggs para os apaixonados por tecnologia

🥚 Easter Egg #1: Se você conhece o padrão Facade da programação orientada a objetos, já entendeu parte da ideia do Composite Service Pattern: esconder a complexidade de vários serviços atrás de uma interface simples.

🥚 Easter Egg #2: O Hierarchical MCP Pattern lembra a organização de um Sysplex: vários componentes especializados coordenados por uma camada superior.

🥚 Easter Egg #3: O Event-Driven Pattern conversa naturalmente com IBM MQ, Kafka e até mesmo com os tradicionais batch triggers do z/OS. O conceito muda, mas a filosofia continua a mesma.

🥚 Easter Egg #4: Um agente supervisor distribuindo tarefas para especialistas lembra muito o escalonamento de workloads feito pelo Workload Manager (WLM): cada recurso executa aquilo para o qual foi projetado.

🥚 Easter Egg #5: Se você percebeu que um servidor MCP funciona como uma espécie de "3270 inteligente" para a IA, parabéns! Em ambos os casos existe uma camada intermediária que traduz comandos e controla o acesso aos sistemas corporativos.


Conclusão

O entusiasmo em torno da Inteligência Artificial faz muita gente acreditar que basta escolher o melhor modelo de linguagem para resolver qualquer problema. A prática mostra o contrário. Modelos excelentes podem fracassar quando são colocados sobre arquiteturas mal planejadas, enquanto modelos mais modestos entregam resultados impressionantes quando sustentados por uma boa engenharia.

O Model Context Protocol (MCP) representa um passo importante nessa evolução porque padroniza a comunicação entre agentes e sistemas. No entanto, o protocolo é apenas a fundação. O verdadeiro diferencial está na escolha do Design Pattern adequado ao fluxo de trabalho, ao domínio de negócio, aos requisitos de segurança e à estratégia de escalabilidade.

Para quem trabalha com IBM Mainframe, a boa notícia é que muitos dos princípios utilizados há décadas — modularização, separação de responsabilidades, processamento assíncrono, governança, auditoria e alta disponibilidade — continuam absolutamente válidos. O cenário mudou, mas os fundamentos permanecem.

No fim das contas, construir soluções com IA não é muito diferente de construir sistemas corporativos de qualidade: o protocolo conecta, a arquitetura organiza e a experiência do engenheiro transforma tecnologia em valor para o negócio.

Porque, como gostamos de dizer aqui no Bellacosa Mainframe:

"A IA pode escrever código em segundos. Mas somente uma boa arquitetura garante que esse código continuará útil daqui a dez anos."

 

quinta-feira, 25 de janeiro de 2024

Classic RAG, Graph RAG e Agentic RAG: A Evolução da Inteligência Artificial Explicada para Quem Já Entendeu um JCL

 

Bellacosa Mainframe apresenta RAG e a evolução da IA

☕ Um Café no Bellacosa Mainframe

Classic RAG, Graph RAG e Agentic RAG: A Evolução da Inteligência Artificial Explicada para Quem Já Entendeu um JCL

"Nem toda aplicação precisa de um Parallel Sysplex. Nem toda IA precisa de um Agentic RAG."

Existe um fenômeno curioso acontecendo no mercado de Inteligência Artificial.

Basta uma empresa anunciar que utiliza IA para imediatamente aparecerem palavras como Agentic AI, Graph RAG, Knowledge Graph, MCP, AI Agents, Multi-Agent Systems, Planning, Reasoning, Memory, Tool Calling...

Tudo parece extremamente sofisticado.

Mas existe um problema.

Na maioria das vezes, a empresa precisava apenas de um bom mecanismo para responder perguntas sobre documentos.

Nada mais.

Como dizia um velho arquiteto de sistemas que conheci:

"Nunca compre um caminhão para buscar pão na esquina."

Essa frase resume perfeitamente o assunto de hoje.

Vamos entender por que existem diferentes arquiteturas RAG e, principalmente, quando utilizar cada uma delas.

Pegue seu café.

Hoje a conversa vai longe.


O nascimento do problema

Imagine um chatbot tradicional.

Você pergunta:

Como faço um BIND PACKAGE no Db2?

O modelo responde.

Mas... de onde veio essa resposta?

Do treinamento.

Se o treinamento terminou há dois anos...

Ele nunca viu a documentação mais recente.

Muito menos os procedimentos internos da empresa.

Resultado?

Ele começa a...

"...achar..."

"...supor..."

"...inventar..."

É o famoso:

Hallucination

No mundo Mainframe isso seria equivalente ao operador responder:

"Acho que esse JCL funciona..."

Ninguém faz isso em produção.


Surge o RAG

Retrieval-Augmented Generation.

Traduzindo:

Geração aumentada através da recuperação de conhecimento.

A ideia é brilhante.

Em vez do modelo responder sozinho...

Primeiro buscamos informação.

Depois perguntamos ao modelo.

Ou seja:

Usuário

↓

Pergunta

↓

Busca documentos

↓

Seleciona informações

↓

Entrega ao LLM

↓

Resposta

Agora o modelo responde baseado em fatos.

Não em memória.


A biblioteca do Reino IBM Z

Imagine um enorme castelo.

Dentro existe uma biblioteca infinita.

Livros IBM.

Redbooks.

Runbooks.

Documentação interna.

Procedimentos.

APARs.

Manuais RACF.

Guias CICS.

JCL Standards.

DB2 Utilities.

Agora imagine um bibliotecário.

Você pergunta:

Como criar um Dataset VSAM?

Ele corre até a estante.

Encontra o livro.

Marca a página.

Entrega para você.

Esse bibliotecário é o Classic RAG.


Classic RAG

É disparado o mais utilizado atualmente.

E existe um motivo.

Ele resolve aproximadamente 70% dos problemas corporativos.

Por quê?

Porque empresas possuem milhares de documentos.

E funcionários vivem procurando informações.

O fluxo é simples.

Pergunta

↓

Embedding

↓

Banco Vetorial

↓

Top-K documentos

↓

LLM

↓

Resposta

Parece simples.

Mas há muita tecnologia escondida aqui.


O que é Embedding?

Essa palavra assusta muitos iniciantes.

Mas a ideia é incrivelmente simples.

Imagine duas frases.

Como criar um usuário RACF?

e

Como cadastrar um novo usuário no RACF?

As palavras são diferentes.

O significado é praticamente igual.

O embedding transforma frases em coordenadas matemáticas.

Algo como:

[0.18,0.42,0.81...]

Esses números representam significado.

Não palavras.

É como colocar cada documento em um enorme mapa tridimensional.

Documentos parecidos ficam próximos.

Documentos diferentes ficam distantes.


Banco Vetorial

Aqui mora a mágica.

Diferente de um banco SQL...

Ele não procura igualdade.

Procura proximidade.

Imagine perguntar:

Como executar REORG?

Mesmo que nenhum documento possua exatamente essa frase...

Ele encontra documentos sobre:

  • RUNSTATS

  • REORG TABLESPACE

  • Utilities Db2

  • REORG INDEX

Porque entende contexto.

Não texto.


Por que ele é tão rápido?

Porque ele utiliza índices vetoriais.

Algoritmos como:

  • HNSW

  • IVF

  • PQ

  • Annoy

  • FAISS

Eles permitem pesquisar milhões de documentos em poucos milissegundos.


Onde o Classic RAG brilha?

Praticamente qualquer base documental.

Exemplos:

  • FAQ

  • Help Desk

  • RH

  • Jurídico

  • Normas ISO

  • IBM Docs

  • Redbooks

  • COBOL Standards

  • CICS Manuals

  • RACF Procedures

  • Catálogo interno


Mas existe um limite...

Imagine perguntar:

Quais programas COBOL utilizam a tabela CLIENTE, que é acessada pelo Job FIN001, que chama uma transação CICS ligada ao MQ?

Agora não basta procurar documentos.

Precisamos entender relações.

É aqui que nasce o Graph RAG.


Graph RAG

Se o Classic RAG é um bibliotecário...

O Graph RAG é um detetive.

Ele liga pistas.

Relaciona pessoas.

Descobre conexões.

Seu coração é um:

Knowledge Graph


Imagine um mapa

Cliente

↓

Conta

↓

Cartão

↓

Compra

↓

Loja

↓

Cidade

↓

Fornecedor

Tudo conectado.

Agora pergunte:

Quais clientes compraram em empresas ligadas ao mesmo fornecedor investigado?

Isso seria extremamente difícil para um banco vetorial.

Mas extremamente simples para um grafo.


O mundo é um grafo

Curiosidade.

Grande parte da natureza pode ser representada como grafos.

Redes sociais.

Internet.

GPS.

Proteínas.

Neurônios.

Árvores genealógicas.

Dependências de software.

E...

Mainframe.


Sim...

O IBM Z também é um enorme grafo.

Veja só.

Programa COBOL

↓

COPYBOOK

↓

DB2

↓

Tabela

↓

Index

↓

Storage Group

↓

Volume

↓

Disk

Ou então...

Job

↓

PROC

↓

Program

↓

VSAM

↓

CICS

↓

MQ

↓

API

Tudo possui dependências.

Isso é um grafo.


Impact Analysis

Imagine alterar uma tabela Db2.

O gerente pergunta:

O que será impactado?

O Graph RAG consegue navegar pelo conhecimento.

Encontrando:

  • programas

  • jobs

  • APIs

  • telas

  • relatórios

  • batch

  • online

Tudo conectado.


Compliance

Outro exemplo fantástico.

Pergunta:

Quais funcionários tiveram acesso aos dados do cliente durante a auditoria?

Agora entram:

  • usuário

  • grupo RACF

  • dataset

  • aplicação

  • horário

  • operação

Tudo relacionado.

É praticamente impossível responder apenas com similaridade vetorial.


Fraudes

Os maiores bancos do mundo utilizam grafos.

Imagine:

Pessoa A

Empresa B

Conta C

PIX D

Fornecedor E

Pessoa F

O sistema começa a encontrar padrões invisíveis.


Agentic RAG

Agora chegamos ao nível "SysProg Jedi".

O Agentic RAG não apenas consulta informação.

Ele pensa.

Planeja.

Decide.

Executa.

Reavalia.


O agente

Imagine um analista extremamente experiente.

Você pergunta:

Existe risco em instalar este PTF?

Ele não responde imediatamente.

Primeiro ele pensa.

Depois consulta:

  • APAR

  • HOLDDATA

  • SMP/E

  • Inventário

  • CMDB

  • Tickets

  • Mudanças

  • IBM Docs

Só então responde.

É exatamente isso que um agente faz.


O ciclo de raciocínio

Objetivo

↓

Planejamento

↓

Ferramentas

↓

Busca

↓

Análise

↓

Autoavaliação

↓

Nova busca

↓

Resposta

Observe algo importante.

Existe um ciclo.

Ele pode voltar.

Pesquisar novamente.

Corrigir.

Melhorar.

Isso aproxima muito mais o comportamento humano.


MCP entra em cena

É aqui que o MCP (Model Context Protocol) começa a fazer sentido.

O agente não conversa apenas com documentos.

Ele conversa com ferramentas.

Imagine:

Pergunta.

MCP.

GitHub.

Jira.

Confluence.

SQL.

Elastic.

IBM Z.

Prometheus.

Grafana.

ServiceNow.

Resposta consolidada.

Agora estamos falando de IA empresarial.


Um exemplo Bellacosa Mainframe

Imagine perguntar:

Existe risco em alterar este programa COBOL?

Um Agentic RAG poderia:

✔ localizar o código COBOL

✔ descobrir quais COPYBOOKS utiliza

✔ localizar os Jobs

✔ consultar Db2

✔ analisar dependências MQ

✔ consultar APIs z/OS Connect

✔ verificar tickets relacionados

✔ consultar documentação IBM

✔ montar um relatório

✔ sugerir um plano de rollback

Isso não é mais um chatbot.

É praticamente um arquiteto de software trabalhando para você.


Então devemos usar Agentic RAG em tudo?

Não.

Esse é justamente o maior erro do mercado.

Muitos acreditam que arquitetura mais sofisticada significa melhor arquitetura.

Nunca significou.

No Mainframe aprendemos isso há décadas.

Você não instala um Parallel Sysplex para rodar um programa COBOL de folha de pagamento com dez usuários.

Você não cria um Data Sharing Group para um sistema departamental.

Da mesma forma...

Você não cria um Agentic RAG para responder:

Qual é o telefone do RH?


Como escolher?

Pense assim.

Preciso apenas encontrar documentos?

Classic RAG.


Preciso entender relações?

Graph RAG.


Preciso tomar decisões?

Agentic RAG.


Uma analogia divertida

Imagine três funcionários.

Classic RAG

O bibliotecário.

Ele encontra qualquer livro.

Muito rapidamente.


Graph RAG

O investigador.

Ele liga pessoas.

Eventos.

Objetos.

Documentos.


Agentic RAG

O gerente de projetos.

Ele:

  • faz reuniões

  • consulta especialistas

  • cria plano

  • delega tarefas

  • revisa resultados

  • entrega solução


A tendência para 2026 e além

As empresas mais maduras dificilmente escolherão apenas uma dessas arquiteturas.

Elas combinarão todas.

Imagine a seguinte arquitetura:

                 Usuário
                    │
                    ▼
            Agente Inteligente
                    │
      ┌─────────────┼──────────────┐
      ▼             ▼              ▼
 Classic RAG   Graph RAG       Ferramentas
      │             │              │
 Vetores      Knowledge Graph   APIs / MCP
      │             │              │
      └─────────────┼──────────────┘
                    ▼
                 Resposta

Essa abordagem híbrida oferece o melhor dos três mundos: velocidade na recuperação documental, compreensão profunda das relações entre entidades e capacidade de planejamento e execução.


Dicas para quem está começando

Se você é programador júnior, não tente aprender tudo ao mesmo tempo.

Uma trilha prática seria:

  1. Entenda muito bem como funcionam embeddings e bancos vetoriais.

  2. Aprenda a criar um Classic RAG simples usando Python e uma base de documentos.

  3. Estude modelagem de grafos com ferramentas como Neo4j e compreenda conceitos de Knowledge Graph.

  4. Explore frameworks para agentes, como LangGraph, AutoGen ou CrewAI, entendendo como eles planejam tarefas e usam ferramentas.

  5. Aprenda sobre MCP (Model Context Protocol) para conectar agentes a APIs, bancos de dados e sistemas corporativos.

  6. Desenvolva pensamento arquitetural: a tecnologia deve servir ao problema, nunca o contrário.


Curiosidades

Você sabia? O conceito de grafos remonta ao século XVIII, quando Leonhard Euler resolveu o famoso problema das Pontes de Königsberg, considerado o nascimento da Teoria dos Grafos. Hoje, essa mesma matemática ajuda IAs a descobrir fraudes financeiras e mapear dependências de aplicações.

Outra curiosidade: muitos bancos vetoriais utilizam algoritmos de Approximate Nearest Neighbor (ANN). Eles não procuram a resposta perfeita; procuram a resposta boa o suficiente em uma fração do tempo. É um compromisso inteligente entre precisão e desempenho.

No Mainframe também existe "RAG" sem percebermos. Quando um operador consulta procedimentos operacionais, manuais de recuperação, runbooks e documentação antes de executar uma ação, ele está fazendo um processo muito parecido com Retrieval-Augmented Generation — só que usando inteligência humana.


Easter Eggs Bellacosa Mainframe 🥚

🔎 Easter Egg #1: O fluxo "Pergunta → Busca → Resposta" lembra bastante o caminho de um comando TSO: você envia uma solicitação, o sistema localiza os recursos necessários e devolve o resultado. A tecnologia muda, o padrão permanece.

🔎 Easter Egg #2: Um Knowledge Graph de um ambiente IBM Z pode representar milhares de relacionamentos: programas COBOL, COPYBOOKs, transações CICS, tabelas Db2, filas MQ, JCLs, datasets VSAM, grupos RACF, APIs via z/OS Connect e pipelines DevOps. É praticamente um "mapa do reino" do Mainframe.

🔎 Easter Egg #3: Se você entendeu conceitos como dependência de programas, impact analysis, catálogo Db2, RACF, SMP/E e CMDB, já possui uma excelente base mental para compreender Graph RAG e Agentic RAG. A IA moderna reutiliza muitos princípios que arquitetos de Mainframe praticam há décadas.

🔎 Easter Egg #4: Em um futuro próximo, um agente poderá analisar um dump ABEND, consultar automaticamente a documentação IBM, pesquisar APARs, verificar o histórico de mudanças e sugerir a correção antes mesmo que um especialista abra o incidente. Parece ficção científica, mas diversas organizações já caminham nessa direção.


Conclusão

Durante muito tempo perguntávamos:

"Qual é a melhor arquitetura RAG?"

Hoje sabemos que essa é a pergunta errada.

A pergunta correta é:

"Qual arquitetura resolve este problema de negócio com simplicidade, eficiência e governança?"

O Classic RAG continua sendo a escolha ideal para a maioria das aplicações de recuperação de conhecimento. O Graph RAG acrescenta inteligência ao revelar conexões ocultas entre pessoas, sistemas e eventos. Já o Agentic RAG amplia o horizonte ao incorporar planejamento, raciocínio, uso de ferramentas e execução de fluxos complexos.

No universo Bellacosa Mainframe, essa evolução soa familiar. Há décadas aprendemos que arquiteturas robustas não nascem do modismo, mas de princípios sólidos, boas práticas e profundo entendimento do problema. Assim como um bom arquiteto IBM Z escolhe cuidadosamente entre Batch, CICS, MQ, Db2, VSAM ou z/OS Connect, o engenheiro de IA moderno deve selecionar entre Classic RAG, Graph RAG e Agentic RAG conforme a necessidade do negócio.

Porque, no fim das contas, a maior inovação não está em usar a tecnologia mais sofisticada.

Está em construir a solução certa, para o problema certo, no momento certo.

E esse, meu amigo, continua sendo o verdadeiro espírito da engenharia de software.