Claude をもう一度呼んでも失敗しない Claude Webhook。
Anthropic はエージェントの結果を Webhook で届けます。その結果を別の Claude 呼び出しに渡して、整形、採点、振り分けをしたいところです。それだけでさらに 30 秒かかります。その時間差は AnyHook が引き受けます。
タイミングの問題
Claude Managed Agents の Webhook は最大 3 回の配信試行を行い、試行の間には 5〜120 秒のバックオフが入ります。最後の試行が失敗するとイベントは破棄され、失われたことを知らせるものは何もありません。
エージェントの結果は、別の Claude 呼び出しに渡すのが自然です。トレースを要約する、出力を分類する、エスカレーションするかを判断する、といった処理です。その呼び出しに、さらに 20〜40 秒かかります。役に立つことを何もしないうちに、SLA の外に出てしまいます。
3
Anthropic がイベントを破棄するまでの配信試行回数
30 秒以上
要約や分類のための追加の Claude 呼び出し
5〜120 秒
Anthropic の 3 回の配信試行のあいだのバックオフ
0
ハンドラーのコード変更
URL を 1 つ変えるだけ。Claude のパイプラインはそのまま
AnyHook は約 1 秒で Anthropic に応答し、イベントに元の Anthropic-Signature と再署名した AnyHook-Signature を付けて、エンドポイントに配信します。
// In your Anthropic dashboard, set the webhook URL to:
// https://in.anyhook.net/{user-slug}/{app-slug}
//
// Your handler is now free to run a follow-up Claude call.
import Anthropic from "@anthropic-ai/sdk";
import { verifyWebhook } from "anyhook-verify";
const anthropic = new Anthropic();
export async function POST(req: Request) {
if (!(await verifyWebhook(req, process.env.ANYHOOK_SIGNING_SECRET!))) {
return new Response("invalid", { status: 401 });
}
const { agent_result } = await req.json();
// Free to take 30+ seconds. Anthropic already saw 200.
const summary = await anthropic.messages.create({
model: "claude-opus-4-7",
max_tokens: 800,
messages: [{ role: "user", content: `Summarise: ${agent_result}` }],
});
await persistSummary(summary);
return new Response("ok", { status: 200 });
}よくある質問
- AnyHook は Anthropic の署名をどう検証しますか?
- エッジでは検証しません。Anthropic の方式は、AnyHook が検証する方式(ドキュメントに一覧があります)に含まれていないためです。元の署名ヘッダーはそのまま転送されるので、最初の配信ではサーバー側で従来どおり検証できます。また、すべての配信に付く AnyHook-Signature が、AnyHook を経由したことを証明します。
- Claude Managed Agents の Webhook は Anthropic の利用上限にカウントされますか?
- Anthropic は各イベントを AnyHook に 1 回配信します(AnyHook 自体が応答に失敗した場合は、Anthropic の通常のリトライポリシーが適用されます)。その後のエンドポイントへのリトライは、すべて AnyHook が担当します。ハンドラーが遅くても Anthropic に負担はかかりません。
- Claude の生のペイロードを後から確認できますか?
- はい。すべてのイベントは暗号化して保存され、プランに応じて 3 日、30 日、または 90 日間再送できます。その後も Pro と Scale では、読み取り専用のアーカイブが 1 年または 7 年間残ります。元のペイロードを確認したり、エンドポイントに再送したりできます。
変えるのは URL 1 つだけ。Anthropic のハンドラーはそのまま。
Free プランには月 10,000 件が含まれます。SDK は不要です。Anthropic の Webhook を AnyHook の受信 URL に向けるだけです。