Home Banco de dados Agentes por API Automações Guia do Harness Falar no WhatsApp
Agentes por API HTTP

O agente de IA do seu site, executado pelo seu sistema

O agente que já atende no site é cadastrado uma vez em Harness → 🤖 Agentes e passa a ser executado por HTTP — de dentro do ERP, do CRM, do app da sua empresa ou do seu gateway de WhatsApp. O seu servidor manda a mensagem com a chave no cabeçalho e recebe a resposta em JSON, com o status, o texto, as ações pedidas e o consumo.

Chave só no servidor, nunca no navegador Funções respondidas pelo seu código Mesmo agente do site, do WhatsApp e do painel
Como funciona

Três passos no painel, um no seu servidor

O agente é sempre o mesmo que já está cadastrado em 🤖 Agentes. A API HTTP não cria um agente novo: ela executa o agente existente e devolve o resultado em JSON.

1 · Seu sistemaO ERP, o CRM ou o app chama a API com a chave no cabeçalho
2 · API HTTPPOST …api.js?cmd=fp-agent-run
3 · O agente rodaUsa a IA e o limite mensal de tokens de quem liberou no painel
4 · Resposta em JSONstatus, texto, dados, acoes e consumo
  1. Liberar os agentes (uma vez por site). No Harness, clique em 🤖 Agentes e depois em ▶ Liberar. Pronto: os agentes deste site passam a usar a IA e o limite mensal de tokens de quem liberou. O botão ⏸ Desligar para todos os agentes na hora — as chaves e os agentes cadastrados ficam guardados.
  2. Cadastrar o agente. Em 🤖 Agentes → ➕ Novo agente: Nome (letras minúsculas, números e _), Descrição, Instruções, Modelo (vazio usa o da IA do site), Funções (JSON), Subagentes, Segundos e Guardar conversas. Teste com ▶ Testar antes de ligar qualquer sistema externo.
  3. Criar a chave da API HTTP. Ainda em 🤖 Agentes, em Chaves da API HTTP, crie uma chave com um nome — “app do celular”, “ERP”. Copie na hora: ela não aparece de novo.
  4. Guardar a chave só no servidor. Ela vai no cabeçalho Authorization: Bearer SUA_CHAVE, numa chamada feita pelo servidor do outro sistema — nunca numa página de navegador nem no aplicativo instalado no celular.
O mesmo agente em todos os canais

Você ajusta as instruções no painel e a mudança vale para os canais que usam aquele agente. A conversa de cada canal é separada: no site ela costuma ser cliente-…, no WhatsApp wa-… e no seu sistema você escolhe o identificador.

Os comandos

Sete comandos em um só endereço

Tudo é chamado em https://admin.flexpage.io/api.js, trocando o cmd na consulta. A autenticação é sempre o cabeçalho Authorization: Bearer <chave>.

ComandoMétodo e corpoPara quê
fp-agent-run POST · { agente, entrada, esperar?, espera_segundos? } Envia uma mensagem ao agente.
fp-agent-continue POST · { execucao, respostas: [{ id, resultado | erro }] } Devolve o resultado de uma função, quando a execução parou em requer_acao.
fp-agent-status GET · ?cmd=fp-agent-status&execucao=…&espera_segundos=20 Consulta uma execução demorada, que voltou executando.
fp-agent-cancel POST · { execucao } Cancela uma execução.
fp-agent-history GET · ?cmd=fp-agent-history&agente=…&conversa=… Lê o histórico de uma conversa.
fp-agent-forget POST · { agente, conversa } Apaga o histórico de uma conversa.
fp-agent-list Lista os agentes cadastrados.

O corpo de fp-agent-run aceita o nome de um agente cadastrado ("agente": "recepcionista") ou a definição completa do agente. Em entrada vão a mensagem e o identificador da conversa. Com esperar: false a resposta volta na hora com executando, para execuções longas.

terminal — executar o agente
curl -X POST 'https://admin.flexpage.io/api.js?cmd=fp-agent-run' \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H 'Content-Type: application/json' \
  -d '{"agente":"recepcionista","entrada":{"texto":"Vocês abrem domingo?","conversa":"app-123"}}'
resposta — a execução terminou
{
  "status": "concluido",
  "texto": "Domingo nós fechamos. No sábado atendemos das 9h às 15h.",
  "consumo": { "entrada": 812, "saida": 96, "chamadas": 1 }
}

Exemplo com valores fictícios. A resposta traz statusconcluido, requer_acao, executando, falhou ou cancelado —, texto, dados (quando o agente tem saída estruturada), acoes e consumo. Em falhou, o motivo vem em erro.

Funções e confirmação

O agente não fica solto: quem age é o seu código

O agente não escreve no seu banco nem no seu ERP. Ele pede: a execução pausa, o seu sistema decide o que fazer e devolve o resultado. É o mesmo mecanismo das funções do chat do site — só que agora quem responde é o outro sistema.

1 · O agente pede a funçãocancelar_agendamento com os argumentos
2 · A execução pausastatus: "requer_acao"
3 · Seu sistema decideConfere o cadastro e executa a ação
4 · A execução continuaResponde com fp-agent-continue

As funções são declaradas no cadastro do agente, em Funções (JSON). Cada uma tem nome, descrição (é por ela que o agente decide quando usar) e parametros"string", "number", "integer", "boolean", "array", "object", e um ? no fim torna o campo opcional. Uma função marcada com "confirmar": true sempre pede confirmação antes de acontecer.

resposta — o agente pediu uma ação
{
  "status": "requer_acao",
  "execucao": "exe_0001",
  "acoes": [
    {
      "id": "a1",
      "nome": "cancelar_agendamento",
      "confirmar": true,
      "argumentos": { "codigo": "ABC-123" }
    }
  ]
}

Cada item de acoes traz id, nome, argumentos e confirmar — e, quando a ação veio de um subagente, também agente. Exemplo com valores fictícios.

terminal — devolver o resultado da função
curl -X POST 'https://admin.flexpage.io/api.js?cmd=fp-agent-continue' \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H 'Content-Type: application/json' \
  -d '{"execucao":"exe_0001","respostas":[{"id":"a1","resultado":{"cancelado":true}}]}'

Quando a ação não foi aprovada — ou falhou no seu sistema —, use erro no lugar de resultado: {"id":"a1","erro":"O cliente não confirmou o cancelamento."}. Não esconda uma falha devolvendo sucesso: com o erro, o agente explica ao usuário em vez de inventar que deu certo.

A mesma regra de ouro do app

Quem é o cliente nunca vem do que o agente manda. O agente pode ser induzido a escrever “cancele o horário do cliente 42”: a identidade e a permissão saem do cadastro que o seu sistema já conhece, e os argumentos da ação são conferidos antes de executar. Ação com efeito — cancelar, estornar, alterar cadastro, enviar mensagem — é função com "confirmar": true.

terminal — acompanhar, cancelar e limpar
# execução demorada: consulta com espera de 20 segundos
curl 'https://admin.flexpage.io/api.js?cmd=fp-agent-status&execucao=exe_0001&espera_segundos=20' \
  -H "Authorization: Bearer SUA_CHAVE"

# cancelar uma execução que ninguém vai continuar
curl -X POST 'https://admin.flexpage.io/api.js?cmd=fp-agent-cancel' \
  -H "Authorization: Bearer SUA_CHAVE" -H 'Content-Type: application/json' \
  -d '{"execucao":"exe_0001"}'

# ler o histórico de uma conversa
curl 'https://admin.flexpage.io/api.js?cmd=fp-agent-history&agente=recepcionista&conversa=app-123' \
  -H "Authorization: Bearer SUA_CHAVE"

# apagar o histórico de uma conversa
curl -X POST 'https://admin.flexpage.io/api.js?cmd=fp-agent-forget' \
  -H "Authorization: Bearer SUA_CHAVE" -H 'Content-Type: application/json' \
  -d '{"agente":"recepcionista","conversa":"app-123"}'
Se ninguém continua, cancele

Uma execução parada em requer_acao ou executando que o seu sistema não vai continuar deve ser cancelada com fp-agent-cancel. Execução pendente ocupa a conversa por até 15 minutos, e nesse tempo todas as mensagens seguintes daquela conversa falham.

Limites e erros

O que acontece quando estoura

Execução tem prazo, e requisição tem código de erro. Tratar os dois evita que o seu sistema fique esperando uma resposta que não vem.

SituaçãoO que a API devolveO que fazer no seu sistema
Passou do tempo do script status: "executando" com execucao Consultar de novo com fp-agent-status, usando espera_segundos quando quiser segurar a conexão.
Falhou status: "falhou" com erro Registrar o motivo no log do seu lado e mostrar uma mensagem genérica ao usuário.
Cancelado status: "cancelado" Encerrar a conversa ou a fila daquele item.
Chave errada ou revogada HTTP 401 Conferir a chave no servidor (não no navegador).
Agentes desligados no site HTTP 403 Ligar em Harness → 🤖 Agentes com ▶ Liberar.
Execução não encontrada HTTP 404 O identificador de execucao expirou ou está errado: comece uma execução nova.
Limites atingidos HTTP 429 Segurar a chamada e tentar mais tarde.

Os limites do agente são definidos no cadastro: passos, tokens e segundos (padrão de 60 segundos, máximo de 600). Com subagentes, aumente o tempo. O consumo vem somado em consumo{ entrada, saida, chamadas }.

Uso por agente

Em 🤖 Agentes → 📊 Uso do mês e conversas, a tabela de uso mostra chamadas e tokens do mês por agente e por origem: script (site), api (outros sistemas) e painel (seus testes).

Conversas guardadas

Na mesma tela, escolha o agente e veja as conversas guardadas: 👁 Ver mostra as trocas e 🗑️ apaga — útil quando um cliente pede para remover a conversa dele.

Limite de quem liberou

Os agentes usam a IA e o limite mensal de tokens de quem liberou no painel. Quando o limite do mês acaba, a execução falha com a mensagem “limite mensal de tokens do dono do site atingido”.

Mensagens de erro que você pode encontrar
  • os agentes do Harness não foram liberados para este site — falta liberar em 🤖 Agentes.
  • agente não cadastrado neste site — nome errado no campo agente, ou o agente só existe no código de outro script.
  • esta conversa já tem uma execução em andamento — duas mensagens seguidas na mesma conversa; espere e acompanhe com fp-agent-status.
  • o conector "x" não está liberado para agentes de app — o administrador libera em 🔌 Conectores, com as ferramentas de leitura em Livre.
IA dentro do seu sistema

Diga qual sistema vai chamar o agente

Conte de onde vem a chamada (ERP, CRM, app próprio, WhatsApp) e o que o agente precisa fazer. A resposta vem com o cadastro do agente, o exemplo de requisição e a função que o seu código executa.

Continue lendo: banco de dados da empresa · automações e rotinas · home da FlexPage

Fale conosco