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.

20-90 s
Invocação típica de um agente LangChain
~20 s
Janela de resposta da Stripe (não publicada; o número com que a comunidade trabalha)
5 min
Timeout de entrega no plano Scale
1 linha
Diff para conectar o AnyHook

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.