/agents
Lê os agentes da organização: modelo, prompt, canal, eventos de conversão e o link público do chat.
Escopo necessário: agents:read. Limite: 120 requisições por minuto.
Endpoints
| Método | Rota | Devolve |
|---|---|---|
| GET | /agents |
Lista paginada |
| GET | /agents/{id} |
Um agente, por id ou pelo slug público |
| POST | /agents/{id}/chat |
Conversar com o agente |
| GET | /agents/{id}/knowledge/documents |
Documentos da base de conhecimento |
| POST | /agents/{id}/knowledge/documents |
Adiciona um documento |
| DELETE | /agents/{id}/knowledge/documents/{doc_id} |
Remove um documento |
Filtros
| Parâmetro | Exemplo | Descrição |
|---|---|---|
status |
active |
Situação do agente |
type |
flow |
Tipo do agente |
q |
vendas |
Busca por nome |
include_archived |
true |
Inclui arquivados (fora por padrão) |
Exemplo
curl "https://api.wevi.chat/functions/v1/agents?status=active" \
-H "Authorization: Bearer wevi_SUA_CHAVE"
const res = await fetch("https://api.wevi.chat/functions/v1/agents?status=active", {
headers: { Authorization: "Bearer wevi_SUA_CHAVE" },
});
const { data } = await res.json();
Objeto do agente
{
"id": "dddd0000-0000-4000-8000-000000000002",
"name": "Agente de vendas",
"description": "Qualifica lead e agenda avaliação",
"status": "active",
"type": "ai",
"public_slug": "vendas-clinica",
"public_url": "https://app.wevi.chat/chat/vendas-clinica",
"model": "claude-sonnet-4-6",
"temperature": 0.7,
"max_tokens": 4096,
"system_prompt": "Você é...",
"greeting_message": "Oi! Como posso ajudar?",
"conversion_events": [{ "name": "agendou", "description": "Cliente marcou horário" }],
"auto_tags": [],
"features": {
"sentiment": true,
"handoff": true,
"business_hours": false,
"business_hours_mode": null
},
"conversation_timeout_hours": 24,
"rag_top_k": 5,
"archived_at": null,
"created_at": "2026-06-12T11:47:26Z",
"updated_at": "2026-09-01T14:20:00Z"
}
Buscar pelo slug funciona igual a buscar pelo id, o que ajuda quando você tem só o link do chat em mãos:
curl "https://api.wevi.chat/functions/v1/agents/vendas-clinica" \
-H "Authorization: Bearer wevi_SUA_CHAVE"
Base de conhecimento
Mantém o que o agente sabe em dia a partir da sua fonte de verdade: CMS, Notion, repositório, planilha de preços. Mande o texto, a gente quebra em pedaços e indexa pelo mesmo caminho da tela de agentes.
curl -X POST "https://api.wevi.chat/functions/v1/agents/{id}/knowledge/documents" \
-H "Authorization: Bearer wevi_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"name": "tabela-de-precos.md",
"content": "# Tabela de preços\n\nClareamento: R$ 800\nLimpeza: R$ 150",
"source_url": "https://intranet.exemplo.com/precos"
}'
{
"id": "c027ce7f-...",
"name": "tabela-de-precos.md",
"type": "text/markdown",
"size_bytes": 154,
"processed": false,
"note": "Indexação começou. Consulte processed neste mesmo endpoint para saber quando terminou."
}
A indexação roda em segundo plano. Consulte GET /agents/{id}/knowledge/documents e olhe processed para saber quando o conteúdo já está valendo nas respostas.
Limite de 2 MB por documento. Documento grande demais também piora a busca: quebre por assunto, que a recuperação fica mais precisa.
Para trocar o conteúdo de um documento, apague e mande de novo:
curl -X DELETE "https://api.wevi.chat/functions/v1/agents/{id}/knowledge/documents/{doc_id}" \
-H "Authorization: Bearer wevi_SUA_CHAVE"
Arquivo binário (PDF, DOCX) continua sendo pela tela de agentes.
Próximo
Agente por API