LangGraph · stateful workflow webhook
Stateful workflow 不再 timeout。
LangGraph Platform 在 node resume 時 ping 你的 endpoint。Node 可能在完成前再跑兩個 LLM 呼叫。AnyHook 給你緩衝。
時序問題
LangGraph Platform 的 webhook callback 通知你某個暫停的 workflow 可以繼續。Resume 的 node 通常會觸發更多 model 呼叫——這就是 stateful workflow 的意義。
如果 LangGraph 接在 Stripe 或 GitHub 事件下游:卡住了。上游 sender 只給 10 秒,LangGraph 跟它下游呼叫要 60 到 120 秒。AnyHook 把兩條時間線解耦。
60–120s
LangGraph resume 典型延遲
10s
上游 sender SLA
AES-256-GCM
Payload 加密儲存
One-click
任何舊事件都能 replay
把 LangGraph callback 透過 AnyHook forward
讓 LangGraph 把要 resume 給你 handler 的 callback 打到 AnyHook inbound URL。AnyHook ack 後 forward,你照自己的節奏處理。
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 LangGraph thread。常見要再跑兩個 model
// 呼叫加一次 vector search,合計約 90 秒。
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 的 resumable-state 語義嗎?
- AnyHook 是 HTTP 層基礎建設——不模擬 LangGraph 的 checkpoint。Workflow 狀態仍由你的 handler 擁有。AnyHook 只保證 resume 訊號可靠地到 handler,附帶 retry 跟 replay。
- 一個 LangGraph callback 可以 fan out 到多個下游服務嗎?
- 可以。在 AnyHook app 上設定多個 destination,每個 delivery 獨立——一個成功,另一個還在 retry。
- 單次 delivery 最久能跑多久?
- Free 60 秒、Pro 120 秒、Scale 300 秒(5 分鐘)。多數 LangGraph resume callback 在 Pro 視窗內舒服跑完。
改一個 URL,保留你的 LangGraph handler。
Free tier 每月含 3,000 events。沒有 SDK、沒有 code 變更——把 LangGraph 指到你的 AnyHook inbound URL 就好。