关于 Snapback
Snapback 是面向 OpenClaw Agent 的托管式 MCP 服务和自愈拦截器。它诊断基础设施错误,并且只会重试通过安全门控的修复;其他情况则升级给人工处理。
主要功能
- 01诊断基础设施错误
- 02检测重复的工具调用循环
- 03监控 Token、步骤、上下文和成本预算
- 04应用通过门控的修复并重试一次
- 05将不安全或不确定的情况升级处理
- 06提供无需 Token 的免费工具
适用场景
- 01判断 Agent 遇到的基础设施错误类别
- 02自动重试可逆的修复
- 03在 Agent 达到步骤限制前发现循环
- 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 格式的 Agent 跟踪记录 |
详细介绍
OpenClaw 的 Snapback 自愈拦截器
mcp-name: io.github.ra1labsworkx-wq/snapback
让 Snapback 自动运行。 不必再记得调用诊断工具,只需为 Agent 的工具调用添加一次封装——每次错误都会自动诊断,并在通过安全门控时应用修复,然后自动重试,无需人工介入。
“强大的工具可有可无,基础设施不可或缺。” 这让 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 个工具),并使用 {"error": "dns nxdomain servfail"} 尝试
diagnose_infra_error → 返回 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,命中时不使用大模型)。支持 46 种错误类别。
- detect_loop — 在达到步骤上限前,于运行过程中捕获重复的工具调用循环。
- budget_guard — 在运行过程中捕获令牌数、步骤数、上下文或成本超限。
- what_others_did — 查看其他 Agent 针对某类故障的匿名处理结果。
- diagnose_trace — 对多步骤完整追踪记录进行诊断(按量计费)。
功能说明
出现任何工具调用错误时,拦截器会:
- 调用
diagnose_infra_error(免费、无需令牌、不使用大模型,耗时 <150ms)。 - 应用三重条件门控——仅当以下条件全部满足时,才自动应用修复:
confidence >= 0.85source == "library"(来自经过整理和验证的修复方案,而非大模型猜测)auto_safe == true(修复操作为retry/refetch/config——可逆且无副作用)
- 若通过门控 → 应用修复并重试一次。若未通过 → 转交人工处理(记录判定结果)。绝不会自动应用
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 的取值如下:
| 类别 | 含义 | 是否自动安全? |
|---|---|---|
retry | 使用退避策略重新运行(幂等) | ✅ |
refetch | 重新获取/重新定价/重新同步后,再次应用 | ✅ |
config | 更改客户端参数(提高 max_tokens、提供中间证书) | ✅(可建议) |
mutate | 创建或更改外部状态、资金或授权 | ❌ 转交人工处理 |
destructive | 删除/回退/执行不可逆操作 | ❌ 绝不 |
纵深防御(1.8.3): 即使修复属于可逆类别,只要其文本中包含破坏性命令(删除 pod、清空密钥、删除表),也会降级为转交人工处理。门控会返回 gate.contains_destructive_step,因此无论其 action_class 如何,修复都绝不会自动执行破坏状态的步骤。
gate.auto_apply_ok 会直接给出是否可自动应用的判定结果;拦截器也会在本地重新判定,避免过度信任过期的客户端。
隐私与安全
- 100% 在客户端运行。仅调用免费的公开
diagnose_infra_error端点。 - 诊断时绝不会发送你的 Snapback 令牌(诊断免费)。
- Snapback 会在服务端清理追踪记录内容;此处只会发送你传入的错误字符串。
- 可与
bridge.py(事后分析转发)配合使用——这是实时自愈层。
路线图
- 在重试结果中调用
submit_feedback(修复是否奏效?)→ 纳入共享库(网络效应)。 - Hermes + LangChain 适配器(相同的门控,不同的框架钩子)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。