#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
- Agendar. “Tem horário no sábado para as vacinas da minha gata?” O agente pergunta pelo pet e pelo motivo, busca horários livres e agenda um.
- Remarcar e cancelar. O tutor informa o código do agendamento, e o agente oferece outros horários ou cancela.
- Vacinas. Quando um filhote precisa das primeiras vacinas, quando vencem os reforços, o que levar.
- Horários, serviços e preços. Horário de funcionamento, banho e tosa, castração, o valor de uma consulta.
- Estoque de ração e farmácia. Se tem um produto e quanto custa.
- Emergências e tudo o que é clínico vão para uma pessoa. Sintomas, medicamentos, resultados, perguntas sobre o fim da vida.
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
- Quem escreve, e para quê? Normalmente agendamento, vacinas e horários.
- 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ã.
- 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.
- De quais sistemas ele lê? A API do sistema da clínica para a agenda, o estoque da loja, a tabela de preços.
- 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:
- As emergências são a primeira instrução, não a última. Colocar no topo o caso que não pode dar errado, com “não faça perguntas antes”, é o que impede o agente de perguntar a idade do pet enquanto um cachorro está engasgado.
- A resposta leva a ajuda; a transferência vem depois. A Vatio ainda não avisa ninguém de uma transferência: o chat aparece no inbox como pendente. Por isso a própria mensagem do agente diz o que fazer e envia a página com o telefone. A partir daí uma pessoa assume.
- O horário de atendimento decide o que acontece depois de uma transferência. Ele não vai no
vatio.yml: a clínica o define na página Negócio do inbox, por exemplo segunda a sexta das 8:00 às 20:00 e sábado das 9:00 às 14:00. Dentro do horário o agente fica em silêncio para a recepção responder. Fora dele continua ajudando, e a página de emergência aponta para o hospital 24 horas. - “Nunca diga se algo pode esperar.” Dizer a um tutor que dá para esperar até amanhã parece inofensivo. É um diagnóstico, feito sem ver o animal.
#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: