Conectar a IA ao estado do sistema (sem vazar segredo)
O estado do seu sistema vive em formatos diferentes, repositório, observabilidade, ticket, documentação, e cada um pede um caminho de conexão diferente. Errar o caminho dá resposta errada; esquecer a checagem de segurança vaza segredo.
Você pergunta pra IA por que o serviço de checkout está lento desde ontem. Ela responde com uma explicação técnica cheia de termo de arquitetura, e inventada. A IA nunca abriu o seu painel de observabilidade nem o seu repositório, então ela chuta uma causa plausível.
O jurídico pede a lista de licenças de biblioteca de código aberto usadas no produto, cruzando o arquivo de dependências (dado estruturado) com o texto da licença de cada uma (documento corrido). A IA devolve uma lista confiante, mas tratou o arquivo de dependências como texto pra buscar por significado, perdendo a versão exata de cada biblioteca, e resumiu o texto da licença de forma genérica sem notar a cláusula específica daquela versão. Uma biblioteca antiga, presa numa versão com licença diferente da versão atual, foi classificada errada porque a IA não leu o arquivo de dependências como o dado estruturado que ele é. Formato errado, risco jurídico invisível: arquivo de dependências pede leitura de estrutura e versão exata; texto de licença pede RAG completo, não resumo genérico.
Você pede pra IA dizer se o time de engenharia está sobrecarregado, cruzando o sistema de ponto (dado estruturado) com as notas de one-on-one dos gestores (texto corrido em documento). Ela devolve uma conclusão segura de "carga normal", mas tratou o sistema de ponto como texto pra buscar por significado e ignorou a coluna de hora extra, e tratou as notas de one-on-one como planilha, perdendo o tom de exaustão que aparecia nas frases. O engenheiro que mais sinalizava esgotamento nas conversas sumiu do relatório porque nenhuma fonte foi lida do jeito certo. Formato errado, diagnóstico errado: dado estruturado pede raciocínio sobre schema; nota de conversa pede busca por significado.
Você pede pra IA apontar qual bug está mais travando a ativação de usuário novo, cruzando o board de bug (semi-estruturado) com o funil de analytics (dado estruturado). Ela devolve um bug candidato, mas tratou o board como texto solto pra buscar por significado, ignorando o campo de severidade, e tratou o funil de analytics como se precisasse de busca semântica em vez de cálculo direto sobre a taxa de conversão por etapa. O bug que realmente derrubava a ativação estava marcado com severidade alta no board, um dado estruturado que a IA nunca olhou como estruturado. Formato errado, priorização errada: board de bug pede campo estruturado combinado com texto; funil pede cálculo sobre dado estruturado.
Você pede pra IA confirmar, pro vendedor, se a API pública suporta um caso de uso específico que o prospect perguntou, cruzando a documentação da API (texto corrido) com o repositório de código (estrutura e dependência). Ela devolve uma resposta segura de "sim, suporta", mas leu só a documentação, que está desatualizada há dois meses, sem checar se o endpoint ainda existe no repositório de verdade. O endpoint tinha sido removido no último release, um fato que só o código, lido com raciocínio de estrutura, revelaria. Formato errado, promessa errada pro cliente: documentação pede RAG, mas o código é a fonte de verdade sobre o que existe agora, e pede leitura de estrutura.
Você pede pra IA dizer por que o processo automático de faturamento falhou pra alguns clientes esta madrugada, cruzando o log de erro (série temporal estruturada) com o runbook de operação (texto corrido). Ela devolve uma causa provável, mas tratou o log como texto pra buscar por significado, perdendo o padrão exato dos horários de falha, e tratou o runbook como se fosse uma lista de eventos. O padrão real, todas as falhas às 3h em ponto, batendo com uma janela de manutenção do banco, só aparece pra quem olha o log como série temporal estruturada. Formato errado, causa raiz perdida: log estruturado pede leitura de série temporal; runbook pede RAG.
Você pede pra IA confirmar que nenhum log de produção guarda CPF em texto plano, cruzando o código-fonte de logging (estrutura) com os logs já armazenados no sistema de observabilidade (dado histórico volumoso). Ela devolve "conforme", mas só leu o código atual com raciocínio de estrutura, sem consultar o histórico de logs já gravado há dois anos, que é uma fonte de formato e volume completamente diferente. O passivo real, CPF já guardado em logs antigos antes da correção do código, ficou invisível porque a checagem olhou a fonte errada pro tipo de risco em questão. Formato errado, auditoria incompleta: código pede raciocínio de estrutura; histórico de log pede consulta direta ao sistema de observabilidade, não inferência sobre o código atual.
Você pede pra IA achar onde o usuário mais abandona o fluxo de cadastro, cruzando o evento de analytics (dado estruturado) com a gravação de sessão (conteúdo visual, não texto). Ela devolve uma tela candidata, mas tratou o evento de analytics como texto pra buscar por significado em vez de calcular a taxa de abandono por etapa, e não teve como "ler" a gravação de sessão, que exige um caminho de leitura visual, não busca textual. A etapa real de abandono, visível só assistindo a gravação, ficou fora do diagnóstico porque a fonte certa nunca foi lida do jeito que o formato dela exige. Formato errado, achado incompleto: evento de analytics pede cálculo sobre dado estruturado; gravação de sessão pede leitura do conteúdo real, não inferência por cima do evento.
Você pergunta pra IA se a plataforma aguenta o crescimento de usuário projetado pro próximo ano, cruzando a documentação de capacidade (texto corrido) com o painel de uso real (série temporal estruturada). Ela devolve uma resposta confiante de "aguenta com folga", mas tratou o painel de uso como texto pra buscar por significado e perdeu a tendência real de crescimento mês a mês, e tratou o documento de capacidade como se fosse uma tabela de números. O gargalo real, visível só na curva de crescimento do painel, ficou invisível porque nenhuma fonte foi lida do jeito certo. Formato errado, decisão de investimento errada: painel estruturado pede leitura de série temporal; documento de capacidade pede RAG.
Putz, repara numa coisa: o problema quase nunca é a IA ser ruim de raciocínio. O problema é que ela está respondendo de cabeça, sem nunca ter aberto o estado real do SEU sistema. É como contratar o melhor engenheiro sênior do mercado, sentar ele na sua mesa e nunca dar acesso ao seu repositório, ao seu painel de observabilidade, ao seu board de ticket. Ele vai falar com segurança e vai errar feio, porque está chutando. Conectar a IA ao estado do sistema é o que tira ela do genérico. Só que conectar do jeito errado é pior: ou ela lê o formato errado e erra o diagnóstico, ou vaza segredo e credencial que nunca deveriam sair.
A ideia central desta aula. A IA só ajuda de verdade quando enxerga o estado real do seu sistema, e o FORMATO de cada fonte decide o caminho. Repositório de código pede raciocínio sobre estrutura e dependência, não busca por trecho parecido. Observabilidade e log pedem leitura de série temporal estruturada, não busca por significado em texto. Ticket semi-estruturado combina campo estruturado com busca por significado. Documentação de arquitetura, em texto corrido, é o território do RAG. E antes de qualquer coisa sair pra um modelo externo, existe uma checagem de segurança que não é opcional: segredo, credencial e dado de cliente em log nunca saem sem mascarar antes.
01O formato da fonte decide o caminho
A primeira virada de chave é parar de tratar "o estado do sistema" como uma coisa só. Não existe um caminho único pra conectar a IA ao que está acontecendo no seu ambiente. O que existe é o formato de cada fonte, e o formato dita a estrada.
Pensa em quatro naturezas diferentes que convivem em qualquer time de tecnologia. Tem o repositório de código, que não é texto solto: é estrutura, pasta, módulo, grafo de dependência entre função e serviço. Tem a observabilidade, métrica e log, que é série temporal estruturada: número no tempo, com timestamp, com contagem. Tem o ticket, que é semi-estruturado: campo fixo (severidade, status, responsável) misturado com descrição em texto livre. E tem a documentação de arquitetura, o runbook, o texto corrido de verdade, onde a ideia vive em frase e parágrafo.
Cada uma pede uma ferramenta diferente, e o erro mais comum é tentar enfiar as quatro no mesmo caminho, geralmente o RAG tradicional, achando que texto é texto. O estudo do @datasciencebrain bate exatamente nessa tecla: o formato do dado decide a arquitetura de memória, não o contrário.
02Repositório e observabilidade: raciocínio sobre estrutura, não busca vetorial ingênua
Aqui mora o engano mais comum de quem acabou de aprender RAG e tenta aplicar em tudo: achar que jogar o repositório inteiro num índice vetorial resolve. Não resolve, e no repositório o custo do erro é específico: código não é uma coleção de parágrafos parecidos, é um grafo. A função A chama a função B, que é importada pelo serviço C, que outro time depende sem saber. Se você pergunta "o que quebra se eu mudar essa função" e a IA só busca "trechos de texto parecidos com essa função", ela encontra os lugares óbvios e perde as sete chamadas escondidas em outro repositório, outro serviço, outro contexto de import.
O caminho certo é dar pra IA a estrutura: a árvore de pastas, o grafo de dependência entre módulos e serviços, o histórico de commit relevante, e deixar ela raciocinar em cima disso, não só buscar por similaridade textual. É a diferença entre perguntar "quais parágrafos parecem com este" e perguntar "quem depende disto de verdade".
Observabilidade tem o mesmo problema com outra cara. Métrica e log são série temporal: número, com timestamp, com contagem por minuto. Perguntar "esse log de erro tem relação com o deploy" não é uma pergunta de significado textual, é uma pergunta de correlação no tempo: o erro começou exatamente quando, o deploy aconteceu exatamente quando, e a distância entre os dois é o dado que importa. Buscar "textos parecidos" entre logs de antes e depois do deploy é o caminho errado; olhar a contagem de erro por minuto, cruzada com o timestamp exato, é o caminho certo.
03Documentação e ticket: RAG e busca por significado
Agora os dois formatos onde a busca por significado, o RAG de verdade, faz sentido. A documentação de arquitetura, o runbook, o texto de decisão técnica: isso é texto corrido, exatamente o território onde buscar por significado funciona bem. Você pergunta "como o time decidiu lidar com timeout de pagamento" e a busca semântica acha o trecho certo, mesmo que o documento use outra palavra pra descrever a mesma coisa.
Saiba mais: por que ticket não é nem puramente estruturado nem puramente texto
Um ticket parece com uma linha de planilha à primeira vista, tem severidade, status, responsável, data. Mas a parte que mais importa pra priorização de verdade costuma estar na descrição em texto livre, onde a pessoa que abriu o ticket explica o que está acontecendo com as próprias palavras. Tratar o ticket só como dado estruturado ignora esse relato; tratar só como texto pra busca semântica ignora o campo de severidade que já vem pronto e é mais confiável do que qualquer inferência sobre o texto. O caminho certo é sempre os dois juntos: use o campo estruturado pra filtrar e ordenar (severidade alta, aberto há muito tempo, reaberto mais de uma vez), e use busca por significado dentro da descrição pra agrupar duplicata e entender o relato real por trás do número. Ignorar qualquer um dos dois lados é o erro que faz o ticket certo sumir no meio do board.
Ticket, então, pede os dois: o campo estruturado (severidade, status, tempo aberto) pra filtrar e ordenar, e busca por significado na descrição pra agrupar e entender o relato. Tratar o ticket só como texto perde o sinal confiável do campo; tratar só como planilha perde o relato que só existe em linguagem natural.
04Segurança: segredo e dado de cliente no log nunca saem sem checagem
Tudo até aqui foi sobre fazer a IA acertar o diagnóstico. Agora o ponto que, na área de tecnologia, pode custar muito mais caro que um diagnóstico errado: o que sai da empresa quando você conecta a IA ao seu repositório e ao seu log de produção.
No instante em que você dá acesso a essas fontes, existe uma pergunta que precisa vir antes de qualquer outra: o que ali é segredo, credencial ou dado de cliente, e isso pode ir pra um modelo externo sem mascarar? Repositório de código costuma ter chave de API, token, string de conexão de banco, tudo isso às vezes hardcoded num arquivo antigo que ninguém lembra que existe. Log de erro em produção costuma carregar dado de cliente sem querer: CPF, e-mail, número de cartão, tudo isso pode aparecer num stack trace que ninguém pensou em mascarar antes de logar.
Você já viu, na aula de conectar a IA aos números do módulo financeiro, o mesmo gateway que barra o que não pode passar e registra o que passou. Aqui o princípio é idêntico, só que aplicado à sua fonte específica: antes de o agente ler o repositório inteiro ou consultar o log de produção, o segredo precisa estar fora do caminho, seja porque o repositório já segue boas práticas de não versionar credencial, seja porque o log passa por uma camada de mascaramento antes de chegar num modelo externo. Não é burocracia. É a diferença entre "conectei a IA ao meu sistema" e "vazei uma credencial de produção sem perceber".
05Juntando tudo: do sistema opaco ao sistema que a IA de fato enxerga
Agora dá pra ver o quadro inteiro. Conectar a IA ao estado do sistema é o que tira ela de responder de cabeça, é o que faz ela parar de chutar causa raiz e começar a raciocinar em cima do seu repositório, do seu painel, do seu ticket de verdade. Mas conectar é faca de dois gumes: conectar no formato errado dá resposta errada com cara de certa, e conectar sem checagem de segurança vaza o que nunca deveria sair.
A sequência que protege o time é sempre a mesma. Primeiro, olhe o FORMATO da fonte e escolha o caminho: repositório vira raciocínio sobre estrutura e dependência, observabilidade vira leitura de série temporal, ticket vira campo estruturado combinado com busca por significado, documentação vira RAG. Segundo, antes de plugar qualquer coisa num modelo externo, passe pela checagem de segurança: tem segredo, credencial ou dado de cliente ali, precisa mascarar, roda local ou na nuvem, o gateway está no meio. Formato primeiro, segurança sempre.
Faça agora
Pegue uma pergunta real sobre o seu sistema que a IA respondeu de cabeça e errou, ou que você ainda nem tentou usar IA pra responder: a sua tarefa real.
- Liste 3 fontes que conteriam a resposta certa (repositório, painel de observabilidade, board de ticket, documentação de arquitetura, log de produção).
- Para cada fonte, classifique o FORMATO: estrutura e dependência (código), série temporal (métrica e log), semi-estruturado (ticket), ou texto corrido (documentação).
- Marque o caminho de cada uma: código leva a raciocínio sobre estrutura, observabilidade leva a leitura de série temporal, ticket leva a campo estruturado mais busca por significado, documentação leva a RAG.
- Faça a checagem de segurança de cada fonte em uma linha: tem segredo, credencial ou dado de cliente ali? Precisa mascarar? Roda na nuvem ou pede ambiente fechado?
- Aponte qual fonte é a mais sensível das três e escreva, em uma frase, o que o gateway deveria barrar nela.
Você acabou de desenhar a conexão do seu sistema com a IA pelo caminho certo, com o portão de segurança no lugar. Está à frente de quem só cola o log inteiro num chat e torce.
Pratique
1. Você quer saber o que quebra se mudar uma função do repositório. Qual é o caminho mais indicado?
2. Por que perguntar 'o log de erro de ontem tem relação com o deploy das 21h' não deve ser tratado como busca por significado em texto?
3. Antes de conectar a IA ao seu repositório e aos logs de produção, qual é a postura correta?
Para o quadro
Sobre o diagnósticoela fala com segurança e erra feio porque nunca abriu o seu repositório, o seu painel, o seu board.
Sobre o formatocada fonte tem natureza própria. Log, ticket e código não se conectam do mesmo jeito.
Sobre o segredoconectar não é abrir tudo. O que é credencial nunca entra no contexto, por conveniência nenhuma.
Valeu pelo feedback. Isso ajuda a afiar a próxima aula.