Agentes LangChain que rodam dentro de webhooks.
A Stripe para de esperar em cerca de 20 segundos (valor não publicado). Seu agente LangChain precisa de 60 para encadear três chamadas de ferramenta. O AnyHook responde em cerca de um segundo e dá ao agente até o timeout do seu plano para terminar.
O problema do tempo
Um agente LangChain com duas ou três chamadas de ferramenta (busca vetorial, uma consulta ao banco, uma chamada ao modelo) leva rotineiramente de 30 a 90 segundos. A maioria dos remetentes de webhook dá de 5 a 30. A conta não fecha.
A saída de sempre é jogar o trabalho numa fila que você mesmo mantém: Redis, SQS, Inngest, Trigger.dev, Vercel cron, BullMQ. Cada uma delas significa uma nova dependência, um novo painel, uma nova política de dead-letter. O AnyHook é a fila que você não precisa operar.
Rode o agente. O AnyHook segura as pontas.
Sua rota atual em Next.js ou Fastify continua igual. Basta verificar o AnyHook-Signature em vez da assinatura do remetente e rodar o agente sem a pressão do timeout.
import { verifyWebhook } from "anyhook-verify";
import { AgentExecutor } from "langchain/agents";
export async function POST(req: Request) {
const ok = await verifyWebhook(req, process.env.ANYHOOK_SIGNING_SECRET!);
if (!ok) return new Response("invalid", { status: 401 });
const event = await req.json();
// Stripe / GitHub / Shopify already saw a 200 from AnyHook.
// You have up to 5 minutes (Scale plan) to finish.
const result = await agentExecutor.invoke({
input: `Process this event: ${JSON.stringify(event)}`,
});
await persistToDb(result);
await maybeNotify(result);
return new Response("ok", { status: 200 });
}Perguntas que as equipes fazem
- O AnyHook também funciona com LangGraph?
- Sim, veja /for/langgraph-webhooks. Os workflows com estado do LangGraph têm o mesmo formato: um callback de webhook que precisa disparar mais chamadas ao modelo.
- E se meu agente falhar no meio do caminho?
- Responda um 5xx no seu handler. O AnyHook trata isso como erro temporário e aplica o cronograma de backoff configurado. O evento original fica guardado com criptografia em repouso, então você pode fazer o replay dele pelo painel depois de corrigir o bug.
- Como isso se compara ao Inngest ou ao Trigger.dev?
- Essas são plataformas de execução durável: você escreve seu workflow na DSL delas e elas o executam. O AnyHook fica um passo antes: ele só transforma webhooks síncronos em entregas assíncronas confiáveis. Você ainda pode usar o Inngest para o workflow se quiser; o AnyHook só garante que o evento que dispara o workflow chegue ao Inngest de forma confiável.
Troque uma URL. Mantenha seu handler de LangChain.
O plano Free cobre 10 mil eventos / mês. Sem SDK: aponte os webhooks de LangChain para sua URL de entrada do AnyHook.