Workflow có trạng thái, không lo timeout.
LangGraph Platform gọi endpoint của bạn khi một node chạy tiếp. Node đó có thể bắn thêm hai lệnh gọi mô hình ngôn ngữ lớn (LLM) trước khi xong. AnyHook cho bạn khoảng dư thời gian đó.
Bài toán thời gian
Webhook callback của LangGraph Platform báo rằng một workflow đang tạm dừng đã sẵn sàng chạy tiếp. Node chạy tiếp thường kích hoạt thêm các lệnh gọi mô hình, và đó chính là ý nghĩa của workflow có trạng thái.
Nếu bạn nối LangGraph vào một sự kiện Stripe hay GitHub, bạn bị kẹt: bên gửi upstream cho bạn 10 tới 20 giây, còn LangGraph và các lệnh gọi downstream cần 60 tới 120 giây. AnyHook tách rời hai dòng thời gian đó.
Chuyển tiếp callback LangGraph qua AnyHook
Cấu hình LangGraph gọi URL nhận (inbound URL) của AnyHook khi workflow cần chạy tiếp với handler (đoạn code xử lý webhook trên server của bạn). AnyHook xác nhận (ack) rồi chuyển tiếp, còn bạn xử lý theo nhịp của mình.
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 });
}Câu hỏi các team thường đặt ra
- AnyHook có xử lý ngữ nghĩa trạng thái chạy tiếp của LangGraph không?
- AnyHook là hạ tầng ở tầng HTTP, nó không mô hình hóa checkpoint của LangGraph. Handler của bạn vẫn nắm trạng thái workflow. AnyHook chỉ lưu tín hiệu chạy tiếp và thử lại (retry) tới handler của bạn theo lịch của gói, kèm phát lại (replay) cho mọi thứ vẫn thất bại.
- Tôi có thể fan-out một callback LangGraph tới nhiều service downstream không?
- Có. Cấu hình nhiều đích trên App (một URL nhận cho một nguồn webhook, ví dụ “Stripe production”) của AnyHook, và mỗi lượt gửi là độc lập: một đích có thể thành công trong khi đích khác đang thử lại.
- Một lần gửi được chạy tối đa bao lâu?
- 60 giây trên gói Free, 120 giây trên gói Pro, 300 giây (5 phút) trên gói Scale. Phần lớn callback chạy tiếp của LangGraph nằm gọn trong giới hạn của gói Pro.
Đổi một URL. Giữ nguyên handler LangGraph của bạn.
Gói Free gồm 10.000 sự kiện / tháng. Không cần SDK: trỏ LangGraph về URL nhận webhook của bạn trên AnyHook.