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:
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_ORDEMX3_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 C5_NOTA 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ério | O que verificar |
|---|---|
| Estrutura | citou só objetos presentes no recorte? |
| Regra | separou fato informado de suposição? |
| Recorte | considerou empresa, filial e período pedidos? |
| Incerteza | pediu o dado que faltava em vez de inventar? |
| Resultado | o 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
Outromodelcontextprotocol.io
Model Context Protocol — especificaçãoOutrolearn.microsoft.com
Microsoft — Database-level roles
Continue por aqui
- Vídeo
IAGuia de processo
Acesso somente leitura ao banco para uma IA: duas camadas independentes
Acesso somente leitura ao banco para uma IA: login limitado no SQL Server, validação no servidor de ferramentas e roteiro para conferir as duas.