LLM API 端点真伪检测 · 协议合规验证 · 注入抗性评估 · 多维信任评分
功能 · 快速开始 · Web 控制台 · 测试套件 · 信任评分 · Roadmap
LLM Probe 是一个开源的 LLM API 端点检测框架。当你使用第三方 API 代理、镜像站或自建网关时,你如何确认背后跑的真的是你付费的那个模型?
LLM Probe 通过协议指纹、行为探针、推理能力评估、注入抗性测试等多维度检测,生成一个量化的信任评分,帮你识别:
- 🎭 模型替换 — 用便宜模型冒充贵模型
- 🔀 协议篡改 — 修改/丢弃 API 参数、缓存、工具调用
- 💉 注入风险 — 中间层注入系统提示、泄露内部信息
- 📉 能力降级 — 推理能力、一致性低于官方基线
| 维度 | 检测内容 |
|---|---|
| 协议合规 | Messages API 参数覆盖、缓存读写、工具调用链路、SSE 流式事件序列 |
| 真伪识别 | 协议指纹防伪、模型 ID 校验、隐藏工具注入探针、一致性漂移检测 |
| 注入抗性 | 直接覆盖攻击、间接 tool-result 注入、allowlist 逃逸、信息泄漏探针 |
| 推理评估 | 多领域题库(医学/法律/金融/安全/架构/SRE)、语义等价判分、外部 benchmark 导入 |
| 边界探测 | 长文本 needle-in-haystack、payload 体积二分逼近 |
| 趋势分析 | 跨时间 baseline 回归漂移告警、P95/slope/change-point 趋势 |
| 信任评分 | 加权多维度评分 + Hard-Gate 安全门控,一票否决机制 |
# 构建
go build ./cmd/claude-probe
# 运行(当前支持 Anthropic Messages API 兼容端点)
export CLAUDE_BASE_URL="https://your-api-endpoint.com"
export CLAUDE_API_KEY="your_key"
export CLAUDE_MODEL="claude-sonnet-4-5-20250929"
go run ./cmd/claude-probe -suite all指定套件:
go run ./cmd/claude-probe -suite stream,error,authenticity,injection输出 JSON 报告:
go run ./cmd/claude-probe -suite all -format json -out report.json# 1. 启动 API 服务
cp ./configs/server.example.yaml ./configs/server.local.yaml
# 编辑 server.local.yaml:填入 key 池配置
go run ./cmd/probe-api -config ./configs/server.local.yaml
# 2. 启动前端
cd web && npm install && npm run dev- 免登录快检:
http://localhost:5173/user - 管理后台:
http://localhost:5173/admin(需 OIDC 登录)
┌─────────────────────────────────────────────────────┐
│ Web 控制台 │
│ ┌──────────────┐ ┌──────────────────────────────┐ │
│ │ 用户快检 UI │ │ 管理后台 (OIDC) │ │
│ └──────┬───────┘ └──────────────┬───────────────┘ │
│ │ │ │
│ └────────────┬────────────┘ │
│ ▼ │
│ API Server (Go) │
│ ┌─────────────────────────────────┐ │
│ │ Router · Auth · Budget · Store │ │
│ │ Run Queue · SSE · OTel Tracing │ │
│ └──────────────┬──────────────────┘ │
│ ▼ │
│ Probe Engine (Go) │
│ ┌─────────────────────────────────┐ │
│ │ Runner · Suites · Scoring │ │
│ │ Forensics · Regression │ │
│ └──────────────┬──────────────────┘ │
│ ▼ │
│ Target LLM API Endpoint │
└─────────────────────────────────────────────────────┘
| 套件 | 说明 | 成本 |
|---|---|---|
params |
Messages API 参数覆盖验证 | 低 |
cache |
Prompt Caching 读写 + 前缀变异 | 低 |
tools |
多工具多轮 tool_use/tool_result 链路 | 中 |
toolchoice |
tool_choice 语义一致性 | 低 |
stream |
SSE 事件序列与结构验证 | 低 |
error |
错误语义与 envelope 契约 | 低 |
authenticity |
协议指纹防伪 + 隐藏工具探针 | 中 |
reasoning |
多领域推理题库 + 语义等价判分 | 中 |
injection |
直接/间接注入 + allowlist 逃逸 | 中 |
needle |
长文本 needle-in-haystack | 高 |
block |
Payload 体积二分边界探测 | 高 |
regression |
跨时间 baseline 漂移告警 | — |
timeline |
P95/slope/change-point 趋势 | — |
LLM Probe 生成一个 0-100 的信任评分,由两层机制组成:
加权评分:各维度按权重汇总(authenticity 30%、injection 25%、tools 15%、toolchoice 10%、stream 10%、error 10%)
Hard-Gate 一票否决:以下信号命中任一项,直接判定 fail,无视加权分:
- Spoof risk score > 70
- Injection leak count > 0
- 隐藏工具信号检出
- 未知工具调用检出
- 一致性漂移超阈值
Trust Score: 87.3 / 100 ✓ PASS
Hard-Gate: 0 hits ✓ CLEAR
Decision: TRUSTED
cd deploy/otel && docker compose up -d
# Jaeger UI: http://localhost:16686所有 probe 执行自动上报 OpenTelemetry traces。
| 方法 | 路径 | 说明 | 认证 |
|---|---|---|---|
| POST | /api/v1/admin/runs |
创建测试任务 | OIDC |
| GET | /api/v1/admin/runs/{id} |
任务详情 | OIDC |
| GET | /api/v1/admin/runs/{id}/events |
SSE 事件流 | OIDC |
| GET | /api/v1/admin/metrics/overview |
概览指标 | OIDC |
| POST | /api/v1/user/quick-test |
免登录快检 | 限流 |
| GET | /api/v1/user/quick-test/{id} |
快检结果(脱敏) | 限流 |
- 前端零接触 API Key — 所有模型调用在服务端执行
- Key 池限额 — 支持 daily_limit_usd / RPM / TPM
- 审计日志 — 每次 run 记录 key_usage、风险快照
- Injection 探针使用随机 sentinel — 不会输出真实密钥
# 后端测试
go test ./...
# 前端开发
cd web && npm run dev
# 前端构建
cd web && npm run build
# 冒烟测试
./scripts/smoke_api.shMIT
Built for trust. Because you deserve to know what's behind the API.