有狀態的工作流程,不必擔心逾時。
節點恢復執行時,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 接收網址。