Pular para o conteúdo
fernando.moretes.com
BlogEstudosCursosE-booksOpen SourcePodcasts
Loading…
Fernando Azevedo

Arquiteto de TI Especialista

Arquitetura, AWS, IA em produção, sistemas financeiros e FinOps, escritos a partir do que foi operado, com os números.

  • LinkedIn
  • GitHub
  • E-mail

Conteúdo

  • Blog
  • Estudos de arquitetura
  • Cursos
  • E-books
  • Open Source
  • Podcasts
  • Assuntos
  • Trilhas

Ferramentas

  • Well-Architected self-check
  • Arquitetura deste site
  • Números públicos
  • Histórico de estudo

Sobre

  • Comunidade
  • IA Builder
  • Perfil
  • Currículo (CV)
  • Trabalhe comigo
  • Media kit
  • RSS do blog
  • RSS dos estudos
  • Artigos narrados (podcast)
  • llms.txt
  • Termos, privacidade e uso de IA

(c) 2026 Fernando Francisco Azevedo

BIAN na prática: como um banco funciona por dentro/IA Builder: mapeamento e contratos com grounding
Módulo 3 · O BIAN no trabalho· Aula 08/24

IA Builder: mapeamento e contratos com grounding

Mapeamento assistido por IA que não inventa domínio, e revisão de contratos contra a Semantic API oficial.

6 min de leitura

Assista ao documentário desta parte: Parte 1 · O mapa do BIAN (~24 min)

A IA é boa em um trabalho que todo arquiteto detesta: ler as definições de todos os Service Domains e lembrar qual faz o quê. E é péssima em outro: inventar um nome plausível quando não encontra o certo. Esta aula mostra como ficar com a primeira parte e eliminar a segunda, com recuperação sobre as definições oficiais da v14, escolha com citação, validador de lista fechada e um humano que decide. Acelerar sim, terceirizar o julgamento não.

A regra: o modelo escolhe, nunca cria

Mapear um sistema no BIAN é um problema de classificação com catálogo fechado. A v14 tem um conjunto finito de Service Domains, cada um com papel, resumo e funções descritos em texto. O trabalho do mapeador é olhar uma capacidade do sistema ("calcula o limite rotativo do cartão") e apontar o domínio que a contém. Não há domínio novo a inventar: se o nome não está no catálogo, a resposta está errada.

Isso muda como se usa o modelo. Em vez de perguntar "qual Service Domain cuida de X?" e aceitar o que vier, o pipeline faz RAG sobre as definições oficiais da versão escolhida: cada domínio vira um documento (papel, resumo, funções, action terms), indexado por embedding. Para cada capacidade, recuperam-se os candidatos mais próximos, e só então o modelo entra, com uma instrução estreita: escolha entre estes candidatos, cite o trecho da definição que justifica a escolha e, se nenhum serve, responda "nenhum".

A última defesa é mecânica: um validador com lista fechada, os nomes exatos da v14. Qualquer saída fora da lista é rejeitada antes de chegar ao humano. O ponto é não depender da obediência do modelo. Modelo bem instruído erra pouco; validador não erra. Em sistemas financeiros, é esse o padrão que vale a pena: a regra que importa mora fora do prompt, em código pequeno e testável.

Pipeline de mapeamento com validador e fila humana

A IA só escolhe entre candidatos recuperados das definições oficiais; o validador rejeita qualquer nome fora da v14; o humano decide e cada decisão vira métrica.

📚 Grounding: definições oficiais v14
  • Catálogo BIAN v14 · papel, resumo, funções, YAML
  • Ingestão e chunking · um documento por Service Domain
  • Bedrock Knowledge Bases · índice vetorial
🤖 IA: rascunho, nunca decisão
  • Recuperar candidatos · top-k por capacidade
  • Escolher com citação · trecho da definição ou 'nenhum'
🔐 Validação mecânica
  • Validador de lista fechada · nomes exatos da v14
  • Script de contrato · rascunho vs YAML oficial
👤 Humano: julgamento
  • Fila de revisão · candidato + citação + divergências
  • Heatmap assinado · fronteiras decididas
📏 Medição
  • Métricas · aceito, corrigido, rejeitado

O pipeline em seis passos

  1. 1

    Ingerir as definições da versão escolhida

    Um documento por Service Domain da v14: papel, resumo, funções, action terms. Versão fixada e registrada; misturar versões é a origem de metade dos erros.

  2. 2

    Recuperar candidatos

    Para cada capacidade do inventário, buscar os domínios mais próximos por similaridade. O modelo nunca vê o catálogo inteiro, só os candidatos.

  3. 3

    Escolher com citação

    O modelo escolhe um candidato e cita o trecho da definição que sustenta a escolha. Sem trecho, sem escolha. "Nenhum" é resposta aceita.

  4. 4

    Validar na lista fechada

    Comparação exata contra os nomes da v14. Nome inventado, obsoleto ou antigo é rejeitado e volta com o motivo.

  5. 5

    Revisar com humano

    O revisor vê candidato, citação e alternativas, e decide. Fronteira entre vizinhos e exigência regulatória ficam sempre aqui.

  6. 6

    Medir

    Taxa de aceite sem correção, taxa de rejeição do validador, domínios mais corrigidos. É o que diz se vale aumentar a confiança ou apertar o prompt.

Os quatro modos de falha que o validador pega (e o que ele não pega)

Quatro erros aparecem em todo mapeamento assistido, e três deles passam em revisão visual porque parecem corretos.

Nome inventado: o modelo responde "Card Limit Management" porque soa como BIAN. Não existe na v14. Sem lista fechada, o nome entra no heatmap e vira caixa num diagrama que ninguém vai conferir.

Versão velha: "Payment Execution" aparece em muito material público sobre BIAN e, portanto, no treinamento de qualquer modelo. Na v14 ele é obsoleto, junto com Payment Order e Payment Instruction; o fluxo de pagamento hoje passa por Payment Order Initiation, Payment Orchestration, Payment Confirmation, Payment Settlement e Payment Rail. Um modelo sem grounding responde a versão que leu mais vezes, não a que você escolheu.

Rename perdido: "Credit Card Position Keeping" virou Card Transaction Tracking. O nome antigo é plausível, descreve bem a função e está errado. O mesmo vale para Payment Initiation (hoje Payment Order Initiation) e Payment Rail Operations (hoje Payment Rail).

Vizinhos confundidos: Fraud Evaluation dá um veredito pontual sobre uma transação; Fraud Diagnosis analisa um caso suspeito ao longo do tempo. Os dois existem, os dois passam no validador, e a escolha errada coloca a fronteira do serviço no lugar errado. Esse é o erro que só a citação da definição e o revisor humano pegam. É por isso que o pipeline exige o trecho citado, não só o nome: a citação é o que permite ao revisor discordar em um minuto, em vez de reabrir o catálogo.

FA
Minha leitura
Arquiteto de TI Especialista

Na prática, o ganho não está em o modelo acertar mais que o arquiteto; está em ele ler as definições inteiras toda vez, coisa que ninguém faz na terceira semana de mapeamento. Eu uso a IA para o rascunho e a justificativa de cada célula do heatmap, e reservo o julgamento para onde ele é insubstituível: fronteira entre vizinhos, o que fica fora do mapa e o que o regulador exige. Quem assina o heatmap sou eu, não o pipeline.

Quiz

O validador da v14

1. O modelo sugeriu 'Payment Execution'. O validador da v14…
2. O modelo sugeriu 'Credit Card Position Keeping'. O que fazer?
3. Quem decide manter, comprar, construir ou aposentar?

Contratos: o rascunho contra o YAML oficial

O mesmo princípio vale para contratos. Quando um time rascunha a API de um serviço mapeado em Payment Order Initiation, a referência é o YAML oficial da Semantic API v14 desse domínio, não a memória do modelo. Um script simples carrega o contrato rascunhado e o oficial, alinha as operações pelo action term e compara os campos: no Payment Order Initiation, PayerReference, PayeeReference, Amount e Currency precisam estar lá, com o mesmo nome e no mesmo lugar. Campo renomeado, campo faltando, tipo diferente: o script aponta a divergência linha a linha, e o revisor decide se foi desvio proposital ou descuido.

Desvio proposital existe e é legítimo. A Semantic API define semântica, não a sua implementação: ela não diz qual é a chave de idempotência do seu endpoint. No Pix, quem define isso é o catálogo de serviços do SPI, por mensagem; a Semantic API não entra nesse detalhe. Então idempotência é decisão sua, registrada como extensão documentada do contrato, não como campo "que o BIAN pediu". O script deve conhecer essas extensões declaradas para não marcar como erro o que foi decidido.

Sobre a infraestrutura: a opção gerenciada de RAG na AWS é o Amazon Bedrock Knowledge Bases, que cuida de ingestão, chunking, embedding e recuperação. Use quando a equipe não quer operar índice vetorial próprio e as definições cabem em um fluxo de ingestão simples. O validador de lista fechada e o script de contratos continuam sendo código seu, pequeno e testável. É a parte que menos muda quando você troca de modelo, e a que mais protege o mapa.

O que levar desta aula

O modelo escolhe entre candidatos recuperados das definições oficiais da v14 e cita o trecho; ele nunca cria nome de domínio.
O validador de lista fechada é código, não prompt: nome inventado, obsoleto (Payment Execution) ou antigo (Credit Card Position Keeping) não passa.
Vizinhos como Fraud Evaluation e Fraud Diagnosis passam no validador; só a citação e o revisor humano resolvem.
Contrato rascunhado se compara com o YAML oficial por script; idempotência é decisão sua, documentada como extensão.
Meça aceite, correção e rejeição por domínio: é o que justifica confiar mais ou apertar o pipeline.

Perguntas frequentes

E se nenhum candidato recuperado serve para a capacidade?

"Nenhum" é uma resposta válida e deve ir para a fila humana com os candidatos descartados. Em geral significa uma de três coisas: a capacidade está descrita em termos de tecnologia e não de negócio, ela pertence a dois domínios e precisa ser dividida, ou está fora do escopo do BIAN. Forçar um encaixe é pior que deixar a célula em aberto.

Posso deixar a IA preencher o heatmap inteiro e revisar só por amostragem?

Só para o rascunho. A amostragem serve para medir a qualidade do pipeline, não para substituir a decisão sobre fronteiras: o custo de uma fronteira errada é de anos de integração no lugar errado, não de uma célula pintada. Use a métrica de aceite para decidir onde a revisão pode ser mais leve, domínio por domínio.

Concluir e ir para a próxima Aula anterior