【免费下载链接】tokentest.io
tokentest.io — site + MCP scaffold
TokenTest(tokentest.io)是一款面向 AI 路由(AI Router)与中转服务的黑盒模型验证工具:它从外部探测你的模型端点,对比"请求的模型"与"实际返回的模型",审计 Token 用量、协议形态与安全边界,并给出可用于生产准入决策的证据报告。对于采购团队、平台负责人和 CI 工程师来说,它是上线前揪出静默降级(silent model downgrade)与可疑 Token 计量的免费、完整方案。
为什么 AI 路由的"静默降级"很危险?
很多模型中转网关在高峰期会悄悄把claude-sonnet换成更便宜的模型,或者返回格式残缺的响应,而账单上却照常计费。这类问题不会报错,只会在你的业务里表现为:
- 💡 回答质量时好时坏,难以复现;
- 💸 输入 Token 计费与真实请求不一致,成本对不上;
- 🕳️ 流式输出中途截断、
finish_reason缺失、协议字段与官方格式不符。
TokenTest 的核心思路是把"信任"变成"证据":每次运行都生成可导出的 JSON / CSV / HTML / JUnit 报告,把"这是不是我要的模型"、"这个端点能否用于生产"、"下一步该做什么"三个问题分开回答。
TokenTest 如何检测静默降级与协议不匹配
评测核心 lib/evaluator.js 采用 6 个生产参考维度加权评分,其中与"偷梁换柱"最直接相关的有两项:
D1 · 身份与协议完整性(权重 30%)
- 请求模型 vs 实际模型:比对响应中的
model字段、响应形态与模型注册信息,不匹配即触发critical门槛; - Nonce 重放探测:每轮注入唯一 nonce(如
MODEL_TRUTH_OK),检测缓存重放或"复读机"式伪造响应; - 头部溯源与认证兼容性:验证请求头来源、鉴权方式是否符合预期协议(OpenAI 兼容或 Anthropic 风格)。
D4 · Token 用量完整性(权重 15%)
- Usage 字段是否存在、
input + output + cache合计是否与total一致; - 输入单调性:相同前缀请求的输入 Token 不应异常波动;
- 输出合理性:输出 Token 数与实际返回长度、截断/停止信号是否对应;
- 流式 usage 与缓存证据:SSE 流式响应是否携带真实 usage,而非估算值。
除此之外,D2 用确定性任务(严格 JSON、多约束遵循、算术、代码、表格)验证输出纪律,D5 覆盖提示注入抵抗与密钥保护,D6 采样 P50/P95/P99 延迟与短程成功率。评分规则详见 docs/remote-mcp.md。
新手快速上手:三种验证方式
方式一:Web 控制台一键验证
打开评估控制台,填入三项即可:
- Endpoint:你的路由 Base URL(如
https://api.example-router.com/v1); - Model:要验证的模型 ID(路由暴露
/models时可直接发现模型列表); - API Key:仅用于本次运行的测试用上游密钥。
点击 Run 后,页面会展示信任分数(trust score)与四项关键状态:模型身份、用量字段、Nonce 重放、真实计费。浏览器历史保存在本地,且已剔除 API Key 与原始鉴权证据。
方式二:CI 准入检查(npx tokentest evaluate)
在流水线中,一条命令即可完成生产准入门禁:
TOKENTEST_BASE_URL="https://api.example.com/v1" \ TOKENTEST_API_KEY="$MODEL_API_KEY" \ TOKENTEST_MODELS="model-a,model-b" \ npx tokentest evaluate --min-score 80 --format junit --output tokentest.junit.xmlCLI 的严格准入策略(见 lib/admission.js)要求每个模型同时满足:分数 ≥ 阈值、production_verdict为production_reference_pass、无评估错误、无 critical 门槛失败。退出码专为发布门禁设计:
| 退出码 | 含义 |
|---|---|
0 | 所有模型通过严格准入 |
1 | 评估完成,但存在未通过模型 |
2 | 配置或参数错误 |
3 | 评估无法完成或模型返回评估器错误 |
关键设计:超时、鉴权失败、网络错误不会被静默记为 0 分能力分,而是明确标记为"未评分",避免把端点故障误判为模型能力差。
方式三:MCP 接入 Claude Desktop / Cursor
TokenTest 通过本地 stdio(mcp-server.js,npm run mcp)和远程 Streamable HTTP 两种入口暴露三个工具:
discover_models:列出 OpenAI 兼容路由声明的模型 ID;evaluate_model:返回单模型的 D1-D6 维度、风险门槛、覆盖审计与脱敏探针证据;evaluate_batch:批量评估并返回逐模型结果与批次汇总。
远程端点的完整策略、限流参数与工具 Schema 见 docs/remote-mcp.md。
报告导出与隐私保护
- JSON:机器可读,供下游分析与制品归档;
- CSV:展开的维度 / 类别 / 用例 / 评分标准行,适合表格比对;
- HTML:可移植报告,适合采购评审会议;
- JUnit:每个模型一个 testcase,直接对接 CI 测试报告 UI。
报告在输出前统一脱敏:API Key、Authorization 头、原始请求/响应负载、验证码 Token 均不会出现在任何格式中。报告生成脚本可参考 scripts/generate_eval_report.mjs。
本地运行与测试
克隆仓库后即可本地启动(Node.js ≥ 20):
git clone https://gitcode.com/gh_mirrors/to/tokentest.io cd tokentest.io npm install npm start # 控制台 + HTTP API,监听 :8080 npm run mcp # 本地 stdio MCP 服务项目内置了覆盖评估器、服务端、MCP、CLI 与 UI 的完整测试套件(如 scripts/cli_e2e_test.mjs、scripts/server_ssrf_test.mjs),修改评分逻辑前建议先跑通确定性夹具。
总结
TokenTest 不代理你的应用流量、不托管 Provider 密钥,它只做一件事:在你把路由交给网关之前,用可复现的探针证据证明这条路线值得信任。如果你正在选型、采购或维护 AI 模型路由,把npx tokentest evaluate加进 CI,就是成本最低的一道防"偷梁换柱"保险。
【免费下载链接】tokentest.io
tokentest.io — site + MCP scaffold
相关推荐
Token 账单有水分?TokenTest Token 计量审计指南:揪出不实的 usage 上报
Token 账单有水分?TokenTest Token 计量审计指南:揪出不实的 usage 上报 ! TokenTest Token 计量审计评测控制台 ht
Rust 安全审计实战:error-handling 集群如何揪出被吞掉的错误与静默数据丢失
Rust 安全审计实战:error handling 集群如何揪出被吞掉的错误与静默数据丢失 本文以 Trail of Bits rust review 插件的
AI 技能AI 插件应用安全网络安全AI 评测Operit 模型配置默认启用 Tool Call:从默认值统一到协议转换的完整实现解析
Operit 模型配置默认启用 Tool Call:从默认值统一到协议转换的完整实现解析 导读 本文基于 Operit 仓库中 docs/TODO/model_
人工智能AI Agent大模型工具调用本地部署Agent 工作流Agent 记忆GUI 自动化MCP Clients
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考