Pragiva — Tecnologia na prática

A IA inventou um campo do Protheus: como dar contexto para reduzir esse erro

IA que inventou um campo do Protheus: que contexto dar para reduzir esse erro, de onde tirá-lo e como medir se a consulta melhorou de verdade.

IA Guia de processo 4 min de leitura

Assista o vídeo

Resposta rápida

O erro
um campo com nome plausível que não existe no SX3.
A causa
falta o dicionário como contexto.
O que dar
o SX3 do ambiente, o significado dos status e o recorte.
De onde tirar
consulta ao SX3 ou um servidor MCP restrito a isso.
Como medir
um conjunto fixo de perguntas, sem e com o contexto.
Nesta página8 seções

Uma consulta pode parecer bem escrita e falhar porque um campo não existe. Outra pode executar e devolver um número errado porque interpretou mal a filial, o status ou a regra de negócio. A segunda é mais difícil de perceber.

Dar contexto do Protheus a uma IA reduz as suposições, mas não substitui a validação. O objetivo é que a resposta se apoie numa estrutura conhecida e mostre o que ainda precisa ser confirmado.

O nome provável não é evidência

Quando falta informação, o modelo produz um identificador que combina com os padrões que conhece: prefixo da tabela, sufixo que “faz sentido”. Isso não prova que o campo está no dicionário do ambiente. Release, customização e compartilhamento tornam essa distinção decisiva.

O dicionário é consultável. Antes de pedir a consulta, mostre o que existe:

Confira no seu ambienteSQL
SELECT X3_CAMPO, X3_TITULO, X3_TIPO, X3_TAMANHO, X3_DECIMAL, X3_CONTEXT
  FROM SX3010
 WHERE X3_ARQUIVO = 'SC5'
   AND D_E_L_E_T_ = ' '
 ORDER BY X3_ORDEM

X3_CONTEXT = V marca campo virtual, que não existe na tabela física. Um modelo que recebe essa lista e ainda assim cita um campo fora dela está inventando, e isso fica visível.

Uma resposta que diz “não encontrei campo para comprovar esse status” é mais útil que uma consulta elegante sobre uma coluna que não existe.

Quatro tipos de contexto

O estrutural: tabelas, campos, tipos e relações. O funcional: o que cada status e valor significa naquele processo. O recorte: empresa, filial, período e situações incluídas. A origem: quando e de onde a informação foi obtida.

Cada um responde uma pergunta diferente. Saber que existe não diz se o pedido foi faturado. Conhecer a regra não revela o nome físico da tabela naquele ambiente.

Um pacote pequeno, com essas quatro camadas explícitas, rende mais que centenas de páginas de documentação sem relação com a tarefa.

Comece por um recorte controlado

Escolha uma pergunta simples e um conjunto pequeno de metadados. “Quais informações são necessárias para listar pedidos pendentes numa filial e num período?” é um bom começo.

O material declara quais campos existem, quais definições foram verificadas e quais permanecem desconhecidas. Não inclua registros de clientes só para o exemplo parecer real.

O pacote pode ser um documento, um arquivo estruturado ou uma consulta a uma fonte autorizada. O formato importa menos que a rastreabilidade: se o material envelhece, a resposta envelhece com ele.

Onde o MCP entra

MCP é um protocolo para conectar um assistente a ferramentas e fontes de contexto. Com ele, a IA pede o metadado no momento da tarefa, em vez de recebê-lo inteiro numa mensagem inicial.

Isso não dá segurança de graça. O servidor, a credencial e as ferramentas expostas definem o que pode ser acessado. Uma ferramenta chamada “consulta” não prova que tem alcance limitado.

Um desenho inicial expõe só operações específicas: descrever uma tabela, listar os campos, buscar um parâmetro. É mais fácil verificar esse escopo do que oferecer um executor de SQL livre e esperar que a instrução em linguagem natural cubra todas as possibilidades.

Somente leitura ainda pode ler demais

Separar leitura de escrita é necessário, não suficiente. Uma credencial que lê todas as tabelas acessa muito mais do que a pergunta exige. Para conhecer estrutura, não comece pelos registros de produção.

A role db_datareader do SQL Server lê todas as tabelas e views de usuário do banco. Adotá-la é uma decisão de escopo, não um padrão. Como conferir o que uma conta de fato pode fazer está em Usuário somente leitura no SQL Server.

A verificação fica fora do modelo: no banco, no servidor de ferramentas e no controle do que é devolvido. Um filtro que só olha o começo do texto da consulta não prova que qualquer entrada será segura.

Um experimento que dá para comparar

Monte um conjunto fixo de perguntas. Uma que pode ser respondida, uma com campo ausente, uma cuja regra de negócio não foi informada. Rode o conjunto sem o pacote de contexto e depois com ele.

Critérios definidos antes de olhar as respostas:

CritérioO que verificar
Estruturacitou só objetos presentes no recorte?
Regraseparou fato informado de suposição?
Recorteconsiderou empresa, filial e período pedidos?
Incertezapediu o dado que faltava em vez de inventar?
Resultadoo revisor reproduziu e conferiu a conclusão?

Registre a versão do modelo e das ferramentas: uma troca muda o experimento. Sem esse conjunto, não há porcentagem de acerto a anunciar, e anunciar sem ele é o mesmo erro do campo inventado.

Consulta que executa ainda precisa ser conferida

Depois da revisão da estrutura, confronte o resultado com uma referência funcional conhecida, no mesmo recorte. Diferenças revelam regras ausentes, não só erros de sintaxe.

Numa pergunta sobre vendas, devoluções deveriam sair separadas. Se esse critério não está explícito, duas consultas válidas respondem perguntas diferentes. O contexto diz o que a métrica significa, não só onde estão os números.

Quando surgir divergência, registre a regra que faltou e acrescente um caso ao conjunto de avaliação. É assim que o processo melhora de forma verificável, em vez de depender de um prompt cada vez maior.

O resultado que vale buscar

Não é fazer a IA parecer mais confiante. É reduzir o espaço para suposição e facilitar a revisão do que ela produz. Uma resposta melhor aponta as fontes, limita a conclusão ao recorte e deixa visível o que não conseguiu confirmar.

Antes de ampliar o acesso, demonstre que o recorte pequeno entrega respostas úteis e que os casos de informação ausente são tratados corretamente.

Referências

  1. Outromodelcontextprotocol.io

    Model Context Protocol — especificação
  2. Outrolearn.microsoft.com

    Microsoft — Database-level roles

Continue por aqui