有狀態的工作流程,不必擔心逾時。

節點恢復執行時,LangGraph Platform 會通知你的端點。這個節點在完成之前,可能還要再發出兩次 LLM 呼叫。AnyHook 給你這段餘裕。

時限問題

LangGraph Platform 的 Webhook 通知,代表暫停的工作流程已經可以恢復執行。恢復後的節點常常會再觸發更多模型呼叫,這正是有狀態工作流程的意義所在。

如果你把 LangGraph 串在 Stripe 或 GitHub 事件後面,就會卡住:上游發送端給你 10 到 20 秒,LangGraph 和它的下游呼叫卻需要 60 到 120 秒。AnyHook 把兩條時間線拆開。

60–120 秒
LangGraph 恢復執行的典型延遲
10 秒
GitHub 公布的 Webhook 逾時
AES-256-GCM
payload 儲存時已加密
一鍵
重播任何在方案可重播期間內的事件

透過 AnyHook 轉送 LangGraph 的通知

設定 LangGraph 在工作流程需要對你的處理程式恢復執行時,呼叫 AnyHook 的接收網址(inbound URL)。AnyHook 先回應再轉送,你按自己的步調處理。

import { verifyWebhook } from "anyhook-verify";
import { Client } from "@langchain/langgraph-sdk";

const lg = new Client({ apiUrl: process.env.LANGGRAPH_API_URL });

export async function POST(req: Request) {
  if (!(await verifyWebhook(req, process.env.ANYHOOK_SIGNING_SECRET!))) {
    return new Response("invalid", { status: 401 });
  }

  const { thread_id, node_id, payload } = await req.json();

  // Resume the LangGraph thread. Two more model calls + a vector
  // search are common here. Total ~90s.
  const result = await lg.runs.create(thread_id, "agent", {
    input: payload,
    config: { configurable: { resume_from: node_id } },
  });

  await persistRun(result);
  return new Response("ok", { status: 200 });
}

團隊常問的問題

AnyHook 會處理 LangGraph 可恢復狀態的語意嗎?
AnyHook 是 HTTP 層的基礎設施,不處理 LangGraph 的 checkpoint。工作流程的狀態仍由你的處理程式掌握。AnyHook 只負責儲存恢復訊號,依方案的排程重試送到處理程式,仍然失敗的事件可以重播。
可以把一個 LangGraph 通知同時送往多個下游服務嗎?
可以。在 AnyHook App(一個接收網址,對應一個 Webhook 來源)上設定多個目的地,每個傳遞各自獨立,一個成功時,另一個可以仍在重試。
單次傳遞嘗試最長可以跑多久?
Free 方案 60 秒,Pro 方案 120 秒,Scale 方案 300 秒(5 分鐘)。大多數 LangGraph 恢復通知放進 Pro 方案的時限都綽綽有餘。

換一個網址。LangGraph 的處理程式不用改。

Free 方案每月涵蓋 10,000 個事件。不用 SDK:把 LangGraph 指向你的 AnyHook 接收網址。