O estagiário que inventou uma API
O estagiário que inventou uma API#
Depois de alguns anos sem mexer no doContra, resolvi ressuscitar o projeto para registrar alguns experimentos com agentes de IA.
Estou construindo um pequeno agente de pós-venda usando Ollama e, por enquanto, estou tentando entender o funcionamento sem esconder as coisas atrás de frameworks.
A ideia era simples:
Se o usuário pedir algo que possa ser feito por uma ferramenta, use a ferramenta.
Até aí, tudo certo.
Então coloquei no system prompt:
…
Você é um agente de pós-venda. Você não possui acesso direto aos dados dos pedidos. Para obter informações sobre pedidos, use obrigatoriamente as ferramentas disponíveis. Quando o usuário solicitar uma ação que possa ser realizada por uma ferramenta, não explique como o usuário poderia fazê - la. Execute a ferramenta apropriada.
E pedi:
cancele o pedido 123
Eu esperava uma chamada para cancelOrder.
Não foi exatamente isso que aconteceu.
O estagiário respondeu:
…
Vou verificar o status do seu pedido 123 para você.#
Ferramenta: BuscaPedidoPorId Acesse os dados de pedidos com base no ID fornecido pelo usuário.
Posso cancelar o pedido?
Até aqui, parecia que ele havia entendido que deveria consultar uma ferramenta.
O problema é que ele não chamou ferramenta nenhuma.
Ele simplesmente escreveu texto dizendo qual ferramenta usaria.
Então tentei ser mais explícito.
Troquei a instrução do system prompt para:
…
Você é um agente de pós-venda. Você não possui acesso direto aos dados dos pedidos. Para efetuar ações sobre pedidos, use obrigatoriamente as ferramentas disponíveis. Quando o usuário solicitar uma ação que possa ser realizada por uma ferramenta, não explique como o usuário poderia fazê - la. Execute a ferramenta apropriada.
O resultado foi ainda melhor:
Vou verificar se o pedido 123 pode ser cancelado.
{
"action": "/cancel_pedido",
"value": "123"
}
Se você iniciou o pagamento, será necessário informar qual parte do valor deseja que eu cancele.
Por exemplo:
- “Quer deduzir a importância total?”
- “Aceita um desconto proporcional ao período de uso?”
Informe sua escolha para prosseguir com o cancelamento e obtenha o link da portabilidade ou reembolso.
No retorno da API do Ollama, não havia uma chamada de ferramenta, não havia tool_calls em nenhuma das duas respostas. O modelo apenas colocou a descrição dentro do texto da resposta.
E como aparentemente esse estagiário ainda vai me dar trabalho:
próximos posts… ou não, vá saber#
- O estagiário que chamou sua primeira ferramenta
- O estagiário que recebeu outro estagiário
- O estagiário que descobriu RAG
- O estagiário que recebeu permissões
- O estagiário que tentou fazer merda e o runtime não deixou