#Agente de IA para concessionárias e oficinas

Um agente de IA para uma concessionária atende compradores e donos de carro no WhatsApp, no Instagram e no seu site: busca os carros que você tem em estoque, agenda test drives e revisões, e conta ao dono como está o carro na oficina a partir do número da ordem de serviço e da placa. Ele nunca passa um preço final nem condições de financiamento, e encaminha a avaliação do usado e o financiamento a um vendedor. Com a Vatio você descreve esse agente em um arquivo vatio.yml e ele responde pelo seu próprio número de WhatsApp.

Este guia monta um de ponta a ponta para uma concessionária com showroom e oficina: as instruções, as tools que chegam ao seu sistema de gestão, o conhecimento que ele lê e as regras que o impedem de fazer uma oferta.

#O que o agente resolve

O chat de uma concessionária junta dois negócios, vendas e pós-venda, e em cada um se repetem as mesmas conversas:

Uma conversa típica, com o que o agente fez por dentro:

Cliente: oi tem algum suv automático até 130 mil?

Agente: Temos três. Um Hyundai Creta 2022 com 38.000 km a R$ 109.900, um Jeep Compass 2021 com 45.000 km a R$ 124.900 e um VW T-Cross 2023 com 21.000 km a R$ 127.900. Quer ver algum ou agendar um test drive?

Cliente: o compass. quanto fica a parcela?

Agente: Não consigo passar valores de financiamento, mas um vendedor pode simular com você. Quer que eu passe para ele? Enquanto isso, posso agendar um test drive do Compass.

Por trás da primeira resposta houve uma chamada a buscar_estoque, que devolveu os três carros com o preço de tabela. A segunda não chamou nada: parcela é uma regra do que ele nunca diz, e financiamento está na lista de handoff.

#Antes de escrever qualquer coisa: cinco perguntas para a concessionária

  1. Quem escreve e sobre o quê? Normalmente compradores olhando o estoque, donos agendando revisão e donos perguntando pelo carro.
  2. O que ele nunca pode dizer? Preço final, desconto, avaliação do usado, parcela, prazo de entrega, qual é o defeito de um carro.
  3. Quando uma pessoa assume a conversa? Usado na troca, financiamento, negociação, reclamações, aprovação de serviços adicionais.
  4. De quais sistemas ele lê? A API do sistema de gestão (DMS) para o estoque, as agendas de test drive e de oficina, e as ordens de serviço.
  5. O que conta como urgência na estrada? Uma luz vermelha, fumaça, problema de freio. O agente precisa das palavras da própria concessionária e do número da assistência 24 horas.

As respostas viram as instruções, as condições de handoff, as tools e o conhecimento, nessa ordem.

#O vatio.yml

workspace: concessionaria-rota
agent:
  name: Concessionária Rota
  personality: Simpático, direto e breve. Entende de carro e nunca pressiona.
  instructions: |
    Você ajuda os clientes da Concessionária Rota a encontrar um carro em
    estoque, agendar um test drive, agendar uma revisão e saber como está
    um carro que está na oficina.

    Achar um carro: pergunte o que a pessoa precisa (categoria, orçamento,
    novo ou seminovo, câmbio). Chame buscar_estoque e mostre no máximo três
    carros com o preço de tabela como a tool devolveu, e envie o
    link_anuncio do carro quando ela quiser fotos ou detalhes.

    Test drive: peça um dia e horário, o nome e, exceto no WhatsApp, um
    telefone, e chame agendar_test_drive. Oficina: peça a placa, a
    quilometragem, o motivo e um dia, e chame agendar_revisao. Só diga que
    está agendado quando a tool tiver devolvido o agendamento.

    Um carro na oficina: peça o número da ordem de serviço e a placa, e
    chame status_servico. Se não voltar nada, diga que os dois não batem.
    Nunca chute uma data de entrega que a tool não devolveu.

    Lojas, horários e o que inclui uma revisão: busque primeiro em
    knowledge_lookup.

    Regras que você nunca quebra:
    - O preço de tabela de buscar_estoque é o único preço que você passa.
      Nunca informe preço final, desconto, avaliação do usado, parcela,
      taxa de juros ou qualquer condição de financiamento.
    - Nunca diga qual é o defeito de um carro nem que é seguro dirigir.
    - Se alguém relatar uma luz vermelha no painel, fumaça ou problema de
      freio, diga para parar num lugar seguro e ligar para a assistência
      24 horas (o número está no conhecimento), e depois ofereça um
      horário na oficina. Se alguém se feriu num acidente, diga para ligar
      primeiro para o SAMU, no 192.
    - Nunca prometa prazo de entrega nem que um carro ficará reservado.
  tools: [buscar_estoque, agendar_test_drive, agendar_revisao, status_servico, knowledge_lookup, identify_contact]
  knowledge: [concessionaria]
  handoff:
    after_turns: 12
    when:
      - o cliente quer avaliar o carro dele na troca
      - o cliente pergunta sobre financiamento, crédito ou parcelas
      - o cliente quer negociar o preço ou reservar um carro
      - aprovar ou questionar serviços adicionais que a oficina orçou
      - uma reclamação sobre um conserto, uma cobrança ou uma entrega

Algumas decisões que valem explicação:

#Tools: chegar ao seu sistema de gestão

Uma tool é uma requisição HTTP ao seu backend, descrita em YAML. Guarde o endereço e a chave como secrets:

vatio secrets set DMS_API https://api.concessionaria-rota.example
vatio secrets set DMS_API_KEY sk_live_...

tools/buscar_estoque.yml:

description: Busca os carros em estoque.
when_to_use: O cliente procura um carro ou pergunta se um modelo está disponível.
parameters:
  type: object
  properties:
    categoria: { type: string, description: "por exemplo suv, sedã, hatch, picape" }
    preco_max: { type: number }
    condicao: { type: string, enum: [novo, seminovo] }
    cambio: { type: string, enum: [automatico, manual] }
    marca: { type: string }
access: public
request:
  method: GET
  base_url: "$env.DMS_API"
  path: /estoque
  headers:
    Authorization: "Bearer $env.DMS_API_KEY"
  query:
    categoria: "$params.categoria"
    preco_max: "$params.preco_max"
    condicao: "$params.condicao"
    cambio: "$params.cambio"
    marca: "$params.marca"
    limite: 3
respond:
  data:
    carros: "$.carros"
  message:
    when_empty: Nenhum carro em estoque bate com essa busca.
    default: "Encontrei {{count}} carros."

Cada carro traz ano, quilometragem, preço de tabela e um link_anuncio para a página dele no seu site. Como esse link veio de uma tool, o agente pode enviá-lo; uma URL que ele montasse por conta própria seria removida.

tools/status_servico.yml:

description: Status de um carro na oficina, pelo número da ordem de serviço e pela placa.
when_to_use: O cliente pergunta como está o carro dele ou se já está pronto.
parameters:
  type: object
  properties:
    ordem_servico: { type: string }
    placa: { type: string }
  required: [ordem_servico, placa]
access: public
request:
  method: POST
  base_url: "$env.DMS_API"
  path: /ordens-servico/status
  requires: [params.ordem_servico, params.placa]
  headers:
    Authorization: "Bearer $env.DMS_API_KEY"
  body:
    ordem_servico: "$params.ordem_servico"
    placa: "$params.placa"
respond:
  data:
    status: "$.status"
    pronto_em: "$.pronto_em"
    aguardando_aprovacao: "$.aguardando_aprovacao"

agendar_test_drive e agendar_revisao são POSTs com o mesmo formato: o carro ou a placa, um dia e horário, o nome do cliente e o telefone como "$params.telefone || $contact.phone_number", então no WhatsApp o agente nunca precisa pedir o número. O seu backend confere a agenda e, quando o horário está ocupado, devolve um 409 com uma mensagem que cita os horários livres mais próximos, para o agente oferecer esses em vez de confirmar. A Vatio transforma qualquer resposta fora de 2xx em um erro que o agente consegue explicar.

No WhatsApp e no Instagram um contato é anônimo enquanto não entrar na conta, então status_servico é uma tool pública e o seu backend confere se a ordem de serviço e a placa são do mesmo carro antes de devolver qualquer coisa, com o mesmo 404 para número errado e para placa errada. Devolva só o status, a data prevista e se há serviço aguardando aprovação. Nunca o nome, o telefone ou o endereço do dono: o modelo vê cada resultado de tool e pode repeti-lo. Histórico de revisões e notas fiscais ficam atrás de um login no seu site, com tools marcadas access: private; veja Conectar seu backend.

#Conhecimento: lojas, oficina e políticas

Tudo o que é longo e que o agente deve ler em vez de decorar vai para uma base de conhecimento: uma entrada em Markdown por assunto, com seções que respondam uma pergunta sozinhas.

vatio kb create concessionaria
vatio kb write concessionaria lojas lojas.md
vatio kb write concessionaria oficina oficina.md
vatio kb write concessionaria test-drive test-drive.md
vatio kb write concessionaria garantia garantia.md

Uma boa entrada é específica:

# Oficina

## Deixar o carro
Das 8h às 10h no dia agendado. Traga o documento do carro e a chave; o
consultor técnico faz a recepção do carro com você.

## Revisão programada
A maioria das revisões leva meio período. Você pode esperar na sala de
espera ou pedir um carro reserva ao agendar, sujeito a disponibilidade.

## Assistência 24 horas
Pelo 0800 000 0000, para todo carro com revisões na nossa oficina.

A Vatio não lê o seu site. Se a resposta está numa página, coloque numa entrada o que o agente precisa. Supervisores podem editar entradas pelo inbox quando os horários mudam, e cada edição fica guardada como versão.

#Fotos de luzes no painel, placas e carros na troca

Os clientes mandam fotos: uma luz no painel, a placa, o comprovante da OS, o carro que querem dar na troca. A Vatio passa ao agente imagens e PDFs compatíveis de até 8 MB e transcreve os áudios, e agrupa várias mensagens seguidas em uma só pergunta antes de responder. Assim, uma foto do comprovante basta para consultar o status, e uma foto do painel basta para agendar um horário por causa da “luz da injeção”.

O que o agente faz com uma foto continua sujeito às regras. Ele pode dizer que uma luz parece a da injeção e agendar um horário; não diz qual é o defeito nem se o carro é seguro, e uma luz vermelha recebe a instrução da assistência 24 horas. As fotos de um carro na troca vão para um vendedor junto com a conversa, que já está no inbox quando ele assume.

#Teste antes de qualquer cliente

vatio push
vatio chat "Tem algum SUV automático até 130 mil?"
vatio chat "Quanto fica a parcela em 48 vezes?"
vatio chat --new "Acendeu a luz vermelha do óleo, posso continuar rodando?"
vatio chat --new "Meu carro está pronto? OS 58120, placa BRA2E19"
vatio chat show

As três últimas são as importantes: uma pergunta de financiamento que ele precisa transferir, uma luz urgente que ele não pode diagnosticar e uma OS com uma placa que não bate, então ele não pode dizer nada sobre o carro. O chat show mostra cada chamada de tool que ele fez. Depois adicione o seu telefone como número de teste na página Testar do inbox e converse com o agente no número compartilhado de preview do WhatsApp. Para isso você não precisa de conta na Meta.

#Melhore toda semana

Quando vendedores e consultores técnicos usam o inbox, eles marcam qualquer resposta errada e escrevem o que deveria ter acontecido. vatio flags transforma essas notas em um documento a partir do qual o seu coding agent corrige, cada flag vira um caso de eval, e a flag é marcada como resolvida quando o live passa no caso dela. Veja Melhorar seu agente.

#Publicar

vatio publish

Depois conecte o número de WhatsApp Business e a conta do Instagram da concessionária na página Canais do inbox (o WhatsApp também precisa da chave Em produção ativada), e coloque o widget nas páginas do seu estoque com uma única tag script. Dá para continuar usando o app WhatsApp Business no celular de um vendedor: uma resposta enviada por ele assume a conversa, e o agente sai de cena até ela ser liberada.

O agente nunca decide por conta própria escrever primeiro. Lembretes de revisão e avisos de “seu carro está pronto” saem pelo WhatsApp quando o seu sistema pede, pela Messages API, e o agente cuida das respostas sabendo o que foi enviado.

Perguntas frequentes

Um agente de IA pode agendar test drive pelo WhatsApp?

Pode. O agente busca no seu estoque e agenda o test drive com tools que você descreve em YAML, cada uma uma requisição HTTP ao seu sistema de gestão (DMS) ou ao seu próprio backend. O seu sistema continua sendo quem confirma o horário.

O agente passa preços ou condições de financiamento?

Ele passa o preço de tabela que a sua tool de estoque devolve, e nada além disso. Preço final, desconto, avaliação do usado, parcela e condições de financiamento são regras explícitas do que ele nunca diz, e essas perguntas vão para um vendedor.

O cliente consegue saber se o carro está pronto na oficina?

Consegue. O cliente informa o número da ordem de serviço e a placa, uma tool envia os dois para o seu backend, e o seu backend devolve o status só se eles batem. O agente nunca chuta uma data de entrega que a tool não devolveu.

O agente envia lembretes de revisão?

Sim, quando o seu sistema pede. Ele sabe quando cada carro precisa de revisão, então chama a Messages API da Vatio para cada cliente e a conversa se abre no WhatsApp: o seu próprio texto, uma mensagem que o agente escreve a partir de um brief, ou um modelo aprovado quando já se passaram 24 horas desde a última mensagem do cliente. O agente cuida da resposta sabendo por que escreveu, e agenda a revisão.

O agente consegue avaliar um carro na troca por fotos?

Não, e nem deveria tentar. Ele consegue ler as fotos que o cliente manda, mas a avaliação do usado está na lista de transferência, então um vendedor assume a conversa com as fotos já no inbox.

Atualizado: