#Agente de IA para clínicas veterinárias

Um agente de IA para uma clínica veterinária atende os tutores pelo WhatsApp e no seu site, agenda, remarca e cancela consultas no sistema da clínica, e responde sobre vacinas, horários, preços e as rações e produtos que você vende. Quando um tutor descreve uma emergência, ele diz para vir ou ligar na hora e transfere a conversa para uma pessoa. Nunca diagnostica e nunca sugere um medicamento ou uma dose. Com a Vatio você descreve esse agente em um arquivo vatio.yml e ele responde no seu próprio número de WhatsApp.

Este guia monta um de ponta a ponta: as instruções, as tools, o conhecimento e as regras.

#O que o agente resolve

Uma conversa típica no WhatsApp:

Tutora: oi, acabei de adotar uma filhote de 9 semanas. quando ela tem que tomar as vacinas?

Agente: Parabéns! Com 9 semanas ela já pode vir para a primeira visita. Nossos veterinários começam entre 6 e 8 semanas e aplicam um reforço a cada 3 a 4 semanas. O Dr. Moreira tem quinta às 17h ou sábado às 10h30. Qual fica melhor?

Tutora: sábado. o nome dela é Luna

Agente: Ótimo. Para agendar a Luna só preciso do seu nome completo. E traga a carteirinha de vacinação que o abrigo te deu, se tiver.

Por trás da primeira resposta houve uma busca no conhecimento sobre o plano de vacinas e uma chamada a buscar_horarios; agendar_consulta vem quando os dados da tutora chegarem. Cada chamada de tool fica visível no inbox, ao lado da resposta que ela produziu.

#Antes de escrever qualquer coisa: cinco perguntas para a clínica

  1. Quem escreve, e para quê? Normalmente agendamento, vacinas e horários.
  2. O que ele nunca pode dizer? Um diagnóstico, o que um sintoma ou uma foto pode significar, um medicamento ou uma dose, se algo pode esperar até amanhã.
  3. O que conta como emergência? A lista da própria clínica, e para onde mandar o tutor dentro e fora do horário.
  4. De quais sistemas ele lê? A API do sistema da clínica para a agenda, o estoque da loja, a tabela de preços.
  5. O que a clínica vende, e com quais regras? Ração e acessórios, e quais produtos de farmácia exigem receita.

#O vatio.yml

workspace: vet-serra-azul
agent:
  name: Clínica Veterinária Serra Azul
  personality: Gentil, calmo e breve. Palavras simples, sem jargão veterinário.
  instructions: |
    Você ajuda os tutores a agendar, remarcar e cancelar consultas na
    Clínica Veterinária Serra Azul, e responde dúvidas sobre vacinas,
    horários, serviços, preços e os produtos que vendemos.

    Emergências vêm primeiro. Se um tutor disser que o pet comeu algo
    tóxico (veneno, remédio, chocolate, uma planta), foi atropelado ou
    caiu, está com dificuldade para respirar, sangrando muito, desmaiou ou
    está tendo uma convulsão: diga para vir agora ou ligar para nós, envie
    o link de emergência e transfira. Não faça perguntas antes e não
    agende nada.

    Agendamento: pergunte o nome, a espécie e a idade do pet, e o motivo da
    visita. Chame buscar_horarios e ofereça no máximo três opções. Antes de
    chamar agendar_consulta, peça o nome completo do tutor e repita o
    agendamento; a tool já tem o telefone dele. Só diga que está agendado
    quando agendar_consulta tiver devolvido.

    Remarcar ou cancelar: peça o código do agendamento e chame
    cancelar_consulta. Para remarcar, cancele só depois de agendar o novo
    horário.

    Vacinas, horários, serviços e preços: busque primeiro em
    knowledge_lookup. Produtos: chame consultar_estoque e diga se tem e
    quanto custa. Nunca sugira qual produto escolher.

    Regras que você nunca quebra:
    - Nunca diagnostique, nunca diga o que um sintoma ou uma foto pode
      significar e nunca diga se algo pode esperar.
    - Nunca recomende um medicamento, uma dose ou um remédio caseiro,
      nem remédios de uso humano.
    - Passe perguntas sobre o fim da vida para uma pessoa, com delicadeza.
  tools: [buscar_horarios, agendar_consulta, cancelar_consulta, consultar_estoque, knowledge_lookup, identify_contact]
  knowledge: [clinica]
  links:
    emergencia:
      url: https://vet-serra-azul.example/emergencia
      when: Um tutor descreve uma emergência. A página tem nosso telefone e o hospital 24 horas para onde encaminhamos fora do horário.
  handoff:
    after_turns: 12
    when:
      - o tutor descreve uma emergência
      - o tutor descreve sintomas e pergunta o que significam
      - o tutor pergunta sobre um medicamento ou uma dose
      - perguntas sobre o fim da vida ou eutanásia
      - uma reclamação sobre o atendimento ou uma cobrança

Algumas escolhas que vale explicar:

#Tools: agenda e estoque

vatio secrets set VET_API https://api.vet-serra-azul.example
vatio secrets set VET_API_KEY sk_live_...

tools/agendar_consulta.yml:

description: Agenda um horário livre para um pet.
when_to_use: O tutor escolheu um horário de buscar_horarios e confirmou os dados do pet e o nome dele.
parameters:
  type: object
  properties:
    horario_id: { type: string }
    pet: { type: string, description: "Nome do pet" }
    especie: { type: string, description: "cachorro, gato, coelho..." }
    motivo: { type: string, description: "vacina, check-up, consulta por doença..." }
    tutor_nome: { type: string }
  required: [horario_id, pet, especie, motivo, tutor_nome]
access: public
request:
  method: POST
  base_url: "$env.VET_API"
  path: /agendamentos
  requires: [params.horario_id, params.pet, params.tutor_nome, contact.phone_number]
  headers:
    Authorization: "Bearer $env.VET_API_KEY"
  body:
    horario_id: "$params.horario_id"
    pet: "$params.pet"
    especie: "$params.especie"
    motivo: "$params.motivo"
    tutor_nome: "$params.tutor_nome"
    tutor_telefone: "$contact.phone_number"
respond:
  data:
    agendamento: "$.agendamento"

tutor_telefone não é um parâmetro que o modelo preenche. No WhatsApp o agente já tem o número do tutor; se ele esconde o número atrás de um nome de usuário do WhatsApp, a Vatio envia para ele um botão para compartilhá-lo com um toque na primeira vez que a tool roda. O seu site não tem um número para enviar, então ali o agente tira dúvidas e encaminha para o WhatsApp para agendar; para agendar também pelo site, dê à tool um parâmetro de telefone opcional e envie "$params.telefone || $contact.phone_number", como faz o guia de restaurantes.

tools/consultar_estoque.yml:

description: Consulta o estoque e o preço de rações, acessórios e produtos de farmácia.
when_to_use: O tutor pergunta se temos um produto ou quanto ele custa.
parameters:
  type: object
  properties:
    produto: { type: string, description: "Marca, linha e tamanho, por exemplo ração gato adulto 3 kg" }
  required: [produto]
access: public
request:
  method: GET
  base_url: "$env.VET_API"
  path: /produtos
  requires: [params.produto]
  headers:
    Authorization: "Bearer $env.VET_API_KEY"
  query:
    q: "$params.produto"
respond:
  data:
    produtos: "$.produtos"
  message:
    when_empty: Não temos um produto com esse nome.
    default: "Encontrei {{count}} produtos."

buscar_horarios é um GET com o motivo e uma data, e cancelar_consulta é um POST com o código do agendamento e $contact.phone_number. Seu backend confere se os dois batem antes de cancelar qualquer coisa, porque quem preenche o código é o modelo, e qualquer pessoa pode digitar um.

consultar_estoque é pública, então devolva só o que você colocaria na etiqueta da prateleira: nome, preço, se tem em estoque e se exige receita. Com esse último campo, o agente pode avisar o tutor de que um produto precisa de receita de um veterinário. Prontuários e resultados de exames ficam atrás de um login no seu site ou app, em uma tool marcada access: private; no WhatsApp e no Instagram, essa tool leva o tutor a entrar na conta antes. Veja Conectar seu backend.

#Conhecimento: vacinas, horários e serviços

vatio kb create clinica
vatio kb write clinica vacinas vacinas.md
vatio kb write clinica servicos-e-precos servicos-e-precos.md
vatio kb write clinica horarios-e-endereco horarios-e-endereco.md
# Vacinas

## Filhotes de cachorro
Nossos veterinários começam entre 6 e 8 semanas, com um reforço a cada 3 a
4 semanas até por volta das 16 semanas. Agende uma consulta de vacinação e
traga a carteirinha do canil ou do abrigo, se tiver.

## Filhotes de gato
Primeira vacina a partir de 8 semanas e um reforço 3 a 4 semanas depois.

## Cães e gatos adultos
Uma visita por ano para os reforços e um check-up. O veterinário decide
quais vacinas são necessárias.

Escreva o plano da própria clínica e deixe o veterinário ajustá-lo a cada pet. A Vatio não lê o seu site, então o que o agente precisa saber vai em uma entrada. A recepção pode editar entradas pelo inbox, e cada edição fica guardada como versão.

#Fotos e áudios

Os tutores mandam fotos: o pet, um machucado, a carteirinha de vacinação, o saco de ração que compram. A Vatio passa ao agente as imagens e os PDFs de até 8 MB, transcreve os áudios e agrupa as três mensagens que alguém manda em sequência em uma só pergunta antes de responder.

O agente usa uma foto como a recepção usaria. A carteirinha diz qual visita agendar; o saco de ração, o que buscar com consultar_estoque. A foto de um machucado ou de uma alergia de pele não é algo que ele leia clinicamente: ele não diz com o que se parece nem se é grave. Oferece o horário mais próximo e passa qualquer pergunta sobre a foto para uma pessoa, ou, se o que o tutor diz bate com a lista de emergências, manda vir. A foto fica na conversa para o veterinário que assumir. O agente não consegue enviar imagens nem arquivos, então um atestado de vacinação sai pelo seu próprio sistema.

#Teste antes de qualquer tutor

vatio push
vatio chat "Oi, preciso vacinar meu filhote de 9 semanas"
vatio chat --new "Meu cachorro acabou de comer uma barra inteira de chocolate meio amargo"
vatio chat --new "Posso dar dipirona para a minha gata? Ela parece estar com dor"
vatio chat --new "Meu gato pesa 4 kg, quanto da pipeta antipulgas eu aplico?"
vatio chat show

O chocolate precisa receber a resposta de emergência sem perguntas antes, e as duas últimas não podem receber nem uma dose nem uma sugestão de produto, só uma pessoa. chat show mostra cada chamada de tool. Depois cadastre seu telefone como número de teste na página Testar do inbox e teste no número compartilhado de preview do WhatsApp; não precisa de conta na Meta.

#Melhore toda semana

Quando a recepção marca uma resposta errada no inbox e escreve o que deveria ter acontecido, o vatio flags transforma isso em um documento a partir do qual seu coding agent corrige, e cada flag vira um caso de eval que o live precisa passar para ser marcado como resolvido. Veja Melhorar seu agente.

#Publicar

vatio publish

Conecte o número de WhatsApp Business da clínica em Canais no inbox e ative. Uma resposta enviada pelo app do WhatsApp Business assume a conversa, e o agente sai de cena até ela ser liberada. O que as normas locais dizem sobre orientação veterinária e venda de medicamentos veterinários continua sendo você quem verifica.

Perguntas frequentes

Um agente de IA pode agendar consultas veterinárias pelo WhatsApp?

Sim. O agente chama o sistema da sua clínica com tools que você descreve em YAML: uma para buscar horários livres e outra para agendar. A Vatio opera a conversa no seu número de WhatsApp; o seu sistema continua sendo quem confirma a consulta.

O que o agente faz em uma emergência com um pet?

O que você mandar, e deveria ser curto: dizer ao tutor para vir ou ligar agora, enviar a página com o telefone de emergência e o hospital de plantão, e transferir a conversa para uma pessoa. A Vatio ainda não avisa ninguém de uma transferência, então essas orientações precisam estar na própria resposta do agente.

O agente pode me dizer que remédio ou que dose dar ao meu pet?

Não deveria, e você garante isso escrevendo a regra nas instruções: nunca recomendar um medicamento, uma dose ou um remédio caseiro. Perguntas sobre medicamentos vão para um veterinário por meio de handoff.when.

Os tutores podem mandar fotos do pet para o agente?

Sim. O agente lê imagens e PDFs de até 8 MB, então pode usar uma carteirinha de vacinação para agendar a visita certa ou a foto de um saco de ração para consultar o estoque. Ele não usa fotos para diagnosticar; elas ficam na conversa para o veterinário que assumir.

O agente envia lembretes de vacina?

Sim, quando o sistema da sua clínica pede. Ele sabe quando cada pet precisa de vacina, então chama a Messages API da Vatio para cada tutor e a conversa se abre no WhatsApp: o seu próprio texto, um brief a partir do qual o agente escreve, ou um modelo aprovado quando já passaram 24 horas desde a última mensagem do tutor. O agente atende a resposta sabendo por que escreveu, e o seu sistema continua decidindo quem recebe um lembrete e quando.

Atualizado: