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 に向けるだけです。