Snapback について
Snapback は OpenClaw エージェント向けのホスト型 MCP サーバー兼セルフヒールインターセプターです。インフラエラーを診断し、安全ゲートを通過した修正だけを再試行し、それ以外は人に引き継ぎます。
主な機能
- 01インフラエラーの診断
- 02ツール呼び出しの反復ループ検出
- 03トークン、ステップ、コンテキスト、コストの予算管理
- 04ゲートを通過した修正を適用して一度再試行
- 05安全でないケースや不確かなケースのエスカレーション
- 06トークン不要の無料ツール
活用シーン
- 01エージェントのインフラエラーを分類
- 02可逆的な修正を自動で再試行
- 03ステップ上限に達する前にループを検出
- 04破壊的な修正を人の確認に回す
MCP 対応
Snapback は Streamable HTTP 経由で MCP クライアントにツールを提供するリモートサーバーです。診断、ループ検出、予算管理などのツールを公開し、インターセプターはツールエラー後に診断ツールを呼び出せます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.snapback.sh/mcpclaude mcp add --transport http ra1labsworkx-wq-snapback https://api.snapback.sh/mcp{"mcpServers":{"ra1labsworkx-wq-snapback":{"type":"http","url":"https://api.snapback.sh/mcp"}}}Cursor で開く{"servers":{"ra1labsworkx-wq-snapback":{"type":"http","url":"https://api.snapback.sh/mcp"}}}VS Code で開く{"mcpServers":{"ra1labsworkx-wq-snapback":{"type":"http","url":"https://api.snapback.sh/mcp"}}}{"mcpServers":{"ra1labsworkx-wq-snapback":{"serverUrl":"https://api.snapback.sh/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
23| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| trace | object | はい | OTel形式のエージェントトレース |
詳細
OpenClaw 用 Snapback 自動修復インターセプター
mcp-name: io.github.ra1labsworkx-wq/snapback
Snapback を自動化しましょう。 診断ツールを呼び出すことを覚えておく代わりに、エージェントのツール呼び出しを一度ラップするだけで、すべてのエラーが自動で診断され、安全性が確認された修正が適用され、人手を介さずに再試行されます。
「強力なツールは任意ですが、インフラは不可欠です。」これにより、Snapback は必要なときに使うツールから、あらゆる障害で動作するインフラへと変わります。
MCP サーバーに接続する
Snapback はホスト型のリモート MCP サーバーです。ローカルで実行するものはありません。任意の MCP クライアント(Claude Code、 Cursor、Cline、VS Code、Windsurf)に追加できます。ほとんどのツールは無料で、トークンも不要です。
{
"mcpServers": {
"snapback": {
"url": "https://api.snapback.sh/mcp"
}
}
}
エンドポイント:https://api.snapback.sh/mcp(Streamable HTTP、JSON-RPC 2.0)。次に tools/list(23 個のツール)を呼び出し、
diagnose_infra_error に {"error": "dns nxdomain servfail"} を渡して試してください。→ family: dns-tls と検証済みの修正が返されます。
ツール
無料(トークン不要):diagnose_infra_error、detect_loop、budget_guard、search_docs、what_others_did、
recommend_failover、cascade_root、suggest_budget_recovery、convert_trace、preflight、session_start、
session_step、session_end、discovery。
従量課金(無料のスタータートークンまたは x402):diagnose_trace、diagnose_batch、get_verdict、submit_feedback、
report_outcome、request_pattern、my_usage、my_impact、agent_memory。
- diagnose_infra_error — 不明瞭なインフラエラーから、その種類と検証済みの修正を特定します(ライブラリーを優先し、約 150ms、該当時は LLM を使用しません)。46 種類に対応。
- detect_loop — ステップ上限に達する前に、実行中のツール呼び出しの繰り返しループを検出します。
- budget_guard — 実行中のトークン数、ステップ数、コンテキスト、コストの超過を検出します。
- what_others_did — 障害の種類ごとに、複数のエージェント間で匿名化された対応結果を提示します。
- diagnose_trace — 複数ステップにわたるトレース全体を診断します(従量課金)。
機能
すべてのツール呼び出しエラーに対して、インターセプターは次の処理を行います。
diagnose_infra_errorを呼び出します(無料、トークン不要、LLM 不使用、150ms 未満)。- 3 要素ゲートを適用します。次のすべてを満たす場合に限り、修正を自動適用します。
confidence >= 0.85source == "library"(LLM の推測ではなく、厳選された検証済みの修正)auto_safe == true(修正がretry/refetch/configのいずれかで、元に戻せ、副作用がない)
- ゲートを通過した場合は、修正を適用して1 回だけ再試行します。通過しない場合は、判定結果をログに記録して人にエスカレーションします。
mutateやdestructiveの修正(状態、金銭、認可権限の作成や変更)が自動適用されることはありません。
安全性を確信できない場合は動作せず、エスカレーションするフェイルクローズ方式です。
インストール
# no install needed beyond the stdlib; drop the file in, or:
cp snapback_interceptor.py your_agent/
export SNAPBACK_MCP=https://api.snapback.sh/mcp # default; the free tools need no token
使用方法
from snapback_interceptor import SnapbackInterceptor
heal = SnapbackInterceptor(
auto_apply=True,
on_escalate=lambda v: my_ops_inbox.log(v), # human sees non-auto-safe verdicts
on_heal=lambda v: metrics.count("snapback.autoheal", family=v["family"]),
)
# wrap any call that might raise:
result = heal.run(call_solana_rpc, wallet, amount)
# or as a decorator:
@heal.guard
def call_solana_rpc(wallet, amount): ...
# or manually on a caught error:
verdict = heal.diagnose("BlockhashNotFound")
if verdict["gate"]["auto_apply_ok"]:
...apply verdict["fix"] and retry...
ゲートの契約(Snapback が返す内容)
diagnose_infra_error は {matched, family, fix, confidence, source, action_class, auto_safe, gate} を返します。
action_class は次のいずれかです。
| class | 意味 | 自動適用しても安全か |
|---|---|---|
retry | バックオフして再実行する(冪等) | ✅ |
refetch | 再取得/再価格設定/再同期してから再適用する | ✅ |
config | クライアント側のパラメーターを変更する(max_tokens を増やす、中間証明書を提供する) | ✅(提案する場合) |
mutate | 外部の状態、金銭、認可を作成または変更する | ❌ エスカレーション |
destructive | 削除/元に戻す/取り消し不能な操作 | ❌ 決して適用しない |
多層防御(1.8.3): 元に戻せる分類の修正であっても、その説明に破壊的なコマンド(Pod の削除、キーのフラッシュ、テーブルの削除)が含まれている場合は、エスカレーションに格下げされます。ゲートは gate.contains_destructive_step を返すため、action_class にかかわらず、状態を破壊する手順が自動実行されることはありません。
gate.auto_apply_ok はそのまま使える判定結果です。古いクライアントが過信しないよう、インターセプターもローカルで判定し直します。
プライバシーと安全性
- すべてクライアント側で処理します。無料の公開
diagnose_infra_errorエンドポイントとのみ通信します。 - 診断のために Snapback トークンを送信することはありません(診断は無料です)。
- Snapback はサーバー側でトレースの内容をスクラブします。この処理で送信されるのは、渡したエラー文字列だけです。
bridge.py(事後分析の転送)と組み合わせて使えます。これはリアルタイムの自動修復レイヤーです。
ロードマップ
- リトライ結果に対する
submit_feedback(修正は機能しましたか?)→ 共有ライブラリに反映されます(ネットワーク効果)。 - Hermes と LangChain のアダプター(同じゲートで、フレームワークのフックが異なります)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。