关于 Waveguardclient
Waveguardclient 是 WaveGuard 无状态异常检测 API 的 Python SDK,适用于需要检查多种数据、又不想管理训练流程的应用。它通过服务端波动方程计算返回异常分数、置信度和特征解释。
主要功能
- 01一次调用扫描多种数据
- 02返回异常分数和置信度
- 03提供特征级告警解释
- 04检查 API 状态和订阅层级
适用场景
- 01检测异常服务器指标
- 02标记异常金融交易
- 03检查日志中的偏差
MCP 相关
软件包包含 MCP 服务,提供通用异常扫描、时间序列扫描和 API 状态检查工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
WaveGuard Python SDK
基于波动物理的异常检测,而非机器学习。
一次 API 调用。完全无状态。适用于任何数据类型。
基准测试 • 快速开始 • 使用场景 • 示例 • MCP / Claude • API 参考
什么是 WaveGuard?
WaveGuard 是一个通用异常检测 API。向它发送任意数据——服务器指标、金融交易、日志文件、传感器读数、时间序列——即可获得异常分数、置信度,以及说明哪些特征触发了警报。
无需训练流水线。无需管理模型。无状态。只需一次 API 调用。
Your data → WaveGuard API (GPU) → Anomaly scores + explanations
在底层,它使用 GPU 加速的波动物理,而非机器学习。你不需要了解或关心其中的物理原理——所有计算都在服务端完成。
Modal 控制面板与 API 端点
查看 Modal 时,你会看到已部署的函数(例如 fastapi_app、gpu_scan、gpu_fingerprint)。
这些是计算/运行时单元,而非 HTTP 路由列表。
若要查看所有在线 API 端点,请使用:
- OpenAPI 文档:
https://gpartin--waveguard-api-fastapi-app.modal.run/docs - OpenAPI JSON:
https://gpartin--waveguard-api-fastapi-app.modal.run/openapi.json
它的实际工作原理是什么?
你的数据会被编码到一个 64³ 晶格上,并在 GPU 上通过耦合波动方程模拟进行处理。正常数据会产生稳定的波形;异常数据则会产生发散的波形。系统会比较训练数据与测试数据的 52 维统计指纹。每次调用后都会清理所有内容——不会存储任何数据。
与机器学习相比,其主要优势在于:无需大量训练数据(2 个以上样本即可),没有模型漂移,无需重新训练,也无需调节超参数。同一次 API 调用即可处理结构化数据、文本、数字和时间序列。
基准测试(v2.2)
在 6 种真实场景中,对比 WaveGuard v2.2 与 scikit-learn(每种场景均使用 10 个训练样本和 10 个测试样本)。
简而言之:WaveGuard v2.2 在 6 种场景中赢下 4 种,平均 F1 分数为 0.76;与 sklearn 方法相比具有竞争力,同时无需任何机器学习专业知识。
F1 分数(精确率与召回率的调和平均数)
| 场景 | WaveGuard | IsolationForest | LOF | OneClassSVM |
|---|---|---|---|---|
| 服务器指标(IT 运维) | 0.87 | 0.71 | 0.87 | 0.62 |
| 金融欺诈 | 0.83 | 0.74 | 0.77 | 0.77 |
| IoT 传感器(工业) | 0.87 | 0.69 | 0.69 | 0.65 |
| 网络流量(安全) | 0.82 | 0.61 | 0.77 | 0.61 |
| 时间序列(监控) | 0.46 | 0.77 | 0.80 | 0.67 |
| 稀疏特征(日志) | 0.72 | 0.90 | 0.82 | 0.78 |
| 平均值 | 0.76 | 0.74 | 0.79 | 0.68 |
v2.2 新增内容
多分辨率评分会跟踪每个特征的局部晶格能量,并计算全局指纹距离。这可以检测细微的单特征异常(例如 10 个 IoT 传感器中有 3 个出现漂移),而 v2.1 的全局平均方法会漏掉这类异常。IoT F1 分数从 0.30 提升至 0.87。
何时选择 WaveGuard 而非 sklearn
| 以下情况选择 WaveGuard…… | 以下情况选择 sklearn…… |
|---|---|
| 误报代价高(告警疲劳、SRE 页面通知) | 需要捕获所有可能的异常 |
| 团队没有机器学习专业知识 | 团队有数据科学家可以调优模型 |
| 需要零配置的 API 调用 | 可以管理模型生命周期(训练/保存/加载) |
| 数据架构频繁变化 | 特征工程稳定 |
| AI Agent 需要异常检测(MCP) | 所有内容都在本地运行,无需 API 调用 |
复现这些基准测试
pip install WaveGuardClient scikit-learn
python benchmarks/benchmark_vs_sklearn.py
结果已保存到 benchmarks/benchmark_results.json。基准测试使用确定性随机种子,以确保可复现。
扩展基准测试:WaveGuard 在全部 12 个公开基准数据集上的 F1 分数均排名第 #1。请在 HuggingFace 查看完整对比。
真实场景验证:检测加密货币崩盘
WaveGuard 为加密货币风险扫描器 CryptoGuard 提供支持。基于 7 次历史崩盘进行回测(LUNA、FTX、Celsius、3AC、UST、SOL/FTX、TITAN):
| 方法 | 召回率 | 平均提前时间 | 误报率 |
|---|---|---|---|
| WaveGuard | 100% (7/7) | 27.4 天 | 6.1% |
| Z 分数基线 | 100% (7/7) | 28.4 天 | 29.9% |
| 滚动波动率 | 86% (6/7) | 15.5 天 | 4.0% |
2022 年 10 月 16 日,WaveGuard 将 FTT(FTX 代币)标记为 CAUTION——比其暴跌 94% 提前了 23 天——而 Z 分数分析未发现任何异常。
在召回率相同的情况下,误报比统计基线减少 5 倍。完整结果: CryptoGuard 回测。
安装
pip install WaveGuardClient
就是这样。唯一的依赖项是 requests。所有物理计算均在服务器端通过 GPU 运行。
快速入门
同一个 scan() 调用适用于任何数据类型。以下是三个不同行业的示例——使用同一个 API:
检测服务器是否遭到入侵
from waveguard import WaveGuard
wg = WaveGuard(api_key="YOUR_KEY")
result = wg.scan(
training=[
{"cpu": 45, "memory": 62, "disk_io": 120, "errors": 0},
{"cpu": 48, "memory": 63, "disk_io": 115, "errors": 0},
{"cpu": 42, "memory": 61, "disk_io": 125, "errors": 1},
],
test=[
{"cpu": 46, "memory": 62, "disk_io": 119, "errors": 0}, # ✅ normal
{"cpu": 99, "memory": 95, "disk_io": 800, "errors": 150}, # 🚨 anomaly
],
)
for r in result.results:
print(f"{'🚨' if r.is_anomaly else '✅'} score={r.score:.1f} confidence={r.confidence:.0%}")
标记欺诈交易
result = wg.scan(
training=[
{"amount": 74.50, "items": 3, "session_sec": 340, "returning": 1},
{"amount": 52.00, "items": 2, "session_sec": 280, "returning": 1},
{"amount": 89.99, "items": 4, "session_sec": 410, "returning": 0},
],
test=[
{"amount": 68.00, "items": 2, "session_sec": 300, "returning": 1}, # ✅ normal
{"amount": 4200.00, "items": 25, "session_sec": 8, "returning": 0}, # 🚨 fraud
],
)
检测日志中的安全事件
result = wg.scan(
training=[
"2026-02-24 10:15:03 INFO Request processed in 45ms [200 OK]",
"2026-02-24 10:15:04 INFO Request processed in 52ms [200 OK]",
"2026-02-24 10:15:05 INFO Cache hit ratio=0.94 ttl=300s",
],
test=[
"2026-02-24 10:20:03 INFO Request processed in 48ms [200 OK]", # ✅ normal
"2026-02-24 10:20:04 CRIT xmrig consuming 98% CPU, port 45678 open", # 🚨 crypto miner
"2026-02-24 10:20:05 WARN GET /api/users?id=1;DROP TABLE users-- from 185.x.x", # 🚨 SQL injection
],
encoder_type="text",
)
同一个客户端。同一个 scan() 调用。适用于任何数据。
使用场景
WaveGuard 适用于任何结构化、数值或文本数据。只要你能描述什么是“正常”,它就能检测偏差。
| 行业 | 扫描内容 | 可检测内容 |
|---|---|---|
| DevOps | 服务器指标(CPU、内存、延迟) | 内存泄漏、DDoS 攻击、失控进程 |
| 金融科技 | 交易(金额、频率、地点) | 欺诈、洗钱、账户接管 |
| 安全 | 日志文件、访问事件 | SQL 注入、加密货币挖矿程序、权限提升 |
| IoT / 制造业 | 传感器读数(温度、压力、振动) | 设备故障、校准漂移 |
| 电子商务 | 用户行为(会话时长、购物车、点击) | 机器人流量、大额采购欺诈、数据抓取 |
| 医疗健康 | 化验结果、生命体征、生物标志物 | 异常读数、数据录入错误 |
| 时间序列 | 指标窗口(延迟、吞吐量) | 峰值、平线、季节性异常 |
**API 并不了解你的领域。**它只知道“正常”是什么样子(即你的训练数据),并标记任何偏离的情况。因此它具有通用性——由你提供上下文,由它负责检测。
支持的数据类型
根据数据形状自动检测,无需配置:
| 类型 | 示例 | 适用场景 |
|---|---|---|
| JSON 对象 | {"cpu": 45, "memory": 62} | 包含命名字段的结构化记录 |
| 数值数组 | [1.0, 1.2, 5.8, 1.1] | 特征向量、嵌入 |
| 文本字符串 | "ERROR segfault at 0x0" | 日志、消息、自由文本 |
| 时间序列 | [100, 102, 98, 105, 99] | 指标窗口、连续读数 |
示例
每个示例都是可运行的 Python 脚本,会调用在线 API:
| # | 示例 | 行业 | 展示内容 |
|---|---|---|---|
| 🏭 | IoT Predictive Maintenance | 制造业 | 根据传感器数据检测轴承故障、泄漏和过载 |
| 🔒 | Network Intrusion Detection | 网络安全 | 检测端口扫描、C2 信标、DDoS 和数据外泄 |
| 🤖 | MCP Agent Demo | AI/Agent | Claude 通过 MCP 调用 WaveGuard——无需任何机器学习知识 |
| 01 | Quickstart | 通用 | 用 10 行代码完成最简扫描 |
| 02 | Server Monitoring | DevOps | 检测内存泄漏和 DDoS |
| 03 | Log Analysis | 安全 | 检测 SQL 注入和加密货币挖矿程序 |
| 04 | Time Series | 监控 | 检测延迟尖峰和数据平线 |
| 06 | Batch Scanning | 电子商务 | 扫描 20 笔交易并标记欺诈行为 |
| 07 | Error Handling | 生产环境 | 重试逻辑和指数退避 |
pip install WaveGuardClient
python examples/iot_predictive_maintenance.py
MCP 服务(Claude Desktop)
首个可作为 MCP 工具使用的基于物理学的异常检测器。 让任何 AI Agent 都能检测异常——无需任何机器学习知识。
快速设置
{
"mcpServers": {
"waveguard": {
"command": "uvx",
"args": ["--from", "WaveGuardClient", "waveguard-mcp"]
}
}
}
然后询问 Claude:“这些传感器读数中有异常吗?”——它会自动调用 waveguard_scan。
可用的 MCP 工具
| 工具 | 描述 |
|---|---|
waveguard_scan | 检测任意结构化数据中的异常 |
waveguard_scan_timeseries | 自动对时间序列分窗,并检测异常片段 |
waveguard_health | 检查 API 状态和 GPU 可用性 |
请参阅 MCP Agent Demo 查看可运行示例,或参阅 MCP Integration Guide 了解完整设置流程。
Azure 迁移
Azure Anomaly Detector 将于 2026 年 10 月停用。 WaveGuard 可直接替代:
# Before (Azure) — 3+ API calls, stateful, time-series only
client = AnomalyDetectorClient(endpoint, credential)
model = client.train_multivariate_model(request) # minutes
result = client.detect_multivariate_batch_anomaly(model_id, data)
client.delete_multivariate_model(model_id)
# After (WaveGuard) — 1 API call, stateless, any data type
wg = WaveGuard(api_key="YOUR_KEY")
result = wg.scan(training=normal_data, test=new_data) # seconds
详情请参阅 Azure Migration Guide。
API 参考
wg.scan(training, test, encoder_type=None, sensitivity=None)
| 参数 | 类型 | 描述 |
|---|---|---|
training | list | 2 个或更多正常数据示例 |
test | list | 1 个或更多待检查样本 |
encoder_type | str | 指定类型:"json"、"numeric"、"text"、"timeseries"(默认:自动) |
sensitivity | float | 0.5–3.0,数值越低越敏感(默认:1.0) |
返回 ScanResult,包含 .results(逐样本结果)和 .summary(汇总结果)。
wg.health() / wg.tier()
健康检查(无需身份验证)和订阅套餐信息。
高级智能方法(v3.3.0)
wg.counterfactual(...)wg.trajectory_scan(...)wg.instability(...)wg.phase_coherence(...)wg.interaction_matrix(...)wg.cascade_risk(...)wg.mechanism_probe(...)wg.action_surface(...)wg.multi_horizon_outlook(...)
这些方法直接对应 /v1/* 智能端点,并返回原始 JSON 负载,以便最大限度地兼容快速演进的服务端响应架构。
错误处理
from waveguard import WaveGuard, AuthenticationError, RateLimitError
try:
result = wg.scan(training=data, test=new_data)
except AuthenticationError:
print("Bad API key")
except RateLimitError:
print("Too many requests — back off and retry")
完整 API 参考:docs/api-reference.md
项目结构
WaveGuardClient/
├── waveguard/ # Python SDK package
│ ├── __init__.py # Public API exports
│ ├── client.py # WaveGuard client class
│ └── exceptions.py # Exception hierarchy
├── mcp_server/ # MCP server for Claude Desktop
│ └── server.py # stdio + HTTP transport
├── benchmarks/ # Reproducible benchmarks vs sklearn
│ ├── benchmark_vs_sklearn.py
│ └── benchmark_results.json
├── examples/ # 9 runnable examples
├── docs/ # Documentation
│ ├── getting-started.md
│ ├── api-reference.md
│ ├── mcp-integration.md
│ └── azure-migration.md
├── tests/ # Test suite
├── pyproject.toml # Package config (pip install -e .)
└── CHANGELOG.md
开发
git clone https://github.com/gpartin/WaveGuardClient.git
cd WaveGuardClient
pip install -e ".[dev]"
pytest
链接
- RapidAPI(获取 API 密钥):https://rapidapi.com/gpartin/api/waveguard
- 在线 API:https://gpartin--waveguard-api-fastapi-app.modal.run
- 交互式文档(Swagger):https://gpartin--waveguard-api-fastapi-app.modal.run/docs
- PyPI:https://pypi.org/project/WaveGuardClient/
- Smithery:https://smithery.ai/servers/emergentphysicslab/waveguard
- Glama:https://glama.ai/mcp/connectors/com.emergentphysicslab/waveguard
许可证
MIT——请参阅 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。