关于 LLMVerify
LLMVerify 是面向 LLM 应用的本地优先验证层,供需要检查模型输入与输出风险的开发者使用。它以本地模式执行基于规则的安全检查,并内置 MCP 服务供兼容客户端调用。
主要功能
- 01幻觉与安全风险检查
- 02提示注入与越狱检测
- 03PII 检测与脱敏
- 04修复格式错误的 JSON
- 05监控 LLM 延迟与行为
- 06本地审计日志
适用场景
- 01向用户展示前检查模型回复
- 02发送给 LLM 前检查用户输入
- 03遮蔽生成文本中的个人信息
- 04运行模型回归检查
MCP 相关
内置 MCP 服务提供六种工具,用于内容验证、幻觉风险评估、提示注入检查、PII 检查与脱敏,以及能力查询。服务通过 stdio 通信,不发起出站网络请求。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y llmverifyLLMVERIFY_MCP_MAX_INPUT_CHARSMax characters accepted in a content/input argumentLLMVERIFY_MCP_TIMEOUT_MSPer-tool wall-clock timeout in millisecondsLLMVERIFY_MCP_MAX_OUTPUT_ITEMSCap on any single output arrayLLMVERIFY_MCP_MAX_TEXT_FIELD_CHARSCap on any single text field in outputLLMVERIFY_HOMEBase directory for engine local stateLLMVERIFY_AUDIT_DIRAudit JSONL directoryLLMVERIFY_LOG_DIROperational log directoryLLMVERIFY_BASELINE_DIRDrift baseline directoryLLMVERIFY_USAGE_FILEUsage counter fileLLMVERIFY_AUDIT_HASH_KEY密钥Enables keyed hmac-sha256 content hashes in audit recordsLLMVERIFY_AUDIT_NO_CONTENT_HASHSet to 1 to disable content hashes in audit records本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
6收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| isJSON | boolean | 否 | 声明内容预期为 JSON。会对非 JSON 输入启用 JSON 验证器,并影响运行哪些引擎。 |
| content | string | 是 | 要评估的 AI 生成文本。绝不会执行。 |
| profile | enum | 否 | 应用于此调用的 CSM6 评估配置(config.csm6.profile)。baseline | high_risk | finance | health | research |
| skipEngines | array | 否 | 此调用中要跳过的引擎标识符。适配器会将公开 ID jsonValidator 映射为引擎内部 ID "json"。跳过的引擎会以其引擎内部名称列在 notChecked 中,绝不会报告为成功。 |
| expectedSchema | object | 否 | 供 JSON 验证器检查 content 的 JSON Schema 对象。仅在 isJSON: true 时有意义。 |
| requireAuditPersistence | boolean | 否 | 必须提供证据的模式。为 true 时,除非审计记录确实已 PERSISTED,否则工具会失败(FAILED、DISABLED 和 NOT_ATTEMPTED 都会升级为类型化错误)。 |
详细介绍
llmverify
你发布了一项 AI 功能。就在同一天,你的大模型编造了引用内容、泄露了客户的电子邮箱,还听从了埋藏在用户输入中的提示词注入攻击。llmverify 是一层安全防护,位于你的大模型与用户之间。
为任何大模型提供本地优先的验证、PII 脱敏、提示词注入防御和运行时监控。只需执行一次 npm install。零遥测。免费套餐无需 API 密钥。
最后更新: 2026 年 8 月 21 日 版本: 1.7.0 Node: >= 18.0.0 许可证: MIT
链接
- 产品页面: haiec.com/llmverify
- npm: npmjs.com/package/llmverify
- GitHub: github.com/subodhkc/llmverify-npm
- Python(占位项目): pypi.org/project/llmverify — 仅预留命名空间,并非此软件包的移植版本
- 作者: Subodh Kc
问题所在
你使用 GPT-4、Claude、Gemini 或任何大模型进行开发。模型会:
- 编造不存在的事实和引用。
- 泄露 PII——在回复中泄露电子邮箱、电话号码、SSN、API 密钥。
- 听从提示词注入——用户诱骗模型忽略你的指令。
- 返回有问题的 JSON,导致解析器崩溃。
- 质量随时间变化,却无人察觉,直到用户投诉。
你需要在模型与用户之间设置一道防护栏。这就是 llmverify。
安装
npm install llmverify
所有操作都在本地运行。免费套餐不会发出任何网络请求,也无需 API 密钥。免费套餐限额:每天 500 次验证调用(在本地跟踪,从不发送到任何地方)。
功能一览
| 功能 | 一行示例 | 功能说明 |
|---|---|---|
verify(content) | await verify(aiResponse) | 执行幻觉、一致性、安全性和 CSM6 检查;返回风险等级和发现项 |
isInputSafe(input) | isInputSafe(userMessage) | 在提示词注入、越狱和恶意输入到达模型之前将其拦截 |
redactPII(text) | redactPII(aiResponse) | 屏蔽电子邮箱、电话号码、SSN、信用卡号和 API 密钥 |
containsPII(text) | containsPII(text) | 如果存在 PII,则返回 true |
detectAndRepairJson(...) | detectAndRepairJson(prompt, response) | 检测并修复有问题的 JSON 输出 |
monitorLLM(client) | monitorLLM(openaiClient) | 包装任意大模型客户端;跟踪延迟、令牌漂移和行为变化 |
sentinel.quick(...) | await sentinel.quick(client, model) | 在用户看到更改之前,针对模型运行回归测试 |
classify(...) | classify(prompt, response) | 意图检测、幻觉信号和指令遵循情况 |
auditLog(event) | auditLog({ ... }) | 追加一条仅含哈希的本地审计记录,作为 SOC 2 / HIPAA / GDPR 证明材料 |
run、prodVerify、ciVerify | await prodVerify(content) | 为开发、生产、严格、快速和 CI 场景预设的流水线 |
快速开始(30 秒)
const { verify, isInputSafe, redactPII } = require('llmverify');
// 1. Block prompt injection before it reaches the model.
if (!isInputSafe(userMessage)) {
return { error: 'Invalid input detected' };
}
// 2. Verify the model's output.
const aiResponse = await yourLLM.generate(userMessage);
const result = await verify(aiResponse);
if (result.risk.level === 'critical') {
return { error: 'Response failed safety check' };
}
// 3. Strip PII before the response reaches a user or a log.
const { redacted } = redactPII(aiResponse);
console.log(redacted);
只需三行,就能在你的大模型与用户之间加入安全防护。无需配置文件,也无需 API 密钥。
工作原理
llmverify 在本地运行确定性的模式匹配引擎——不会调用模型,免费套餐也不会访问网络。相同输入加相同规则,结果始终相同。每项结果都包含明确的 limitations 数组,说明检查了哪些内容、未检查哪些内容,确保你不会把良好评分误认为保证。
框架对齐(仅基线映射,不代表认证):
- OWASP LLM Top 10
- NIST AI RMF
- EU AI Act
- ISO 42001
- CSM6(HAIEC 的 38 条规则控制集)
CLI
# Verify a string from the terminal.
npx llmverify verify "The capital of France is London."
# Start a local HTTP API for IDE / tool integration (localhost only by default).
npx llmverify-serve --port=9009
# Expose to the network only on a trusted network. There is no auth on the API.
npx llmverify-serve --host=0.0.0.0 --port=9009
服务默认绑定到 127.0.0.1,将 CORS 限制为 localhost 来源,并对客户端进行速率限制(100 次请求 / 60s)。它需要 express(默认安装的可选依赖)。
MCP 服务
llmverify 内置了 Model Context Protocol 服务——同一引擎通过 stdio 向兼容 MCP 的 Agent 和 IDE 开放:
npx llmverify mcp
// MCP client config
{
"mcpServers": {
"llmverify": {
"command": "npx",
"args": ["-y", "llmverify", "mcp"]
}
}
}
六种工具:verify_llm_content、assess_hallucination_risk、check_prompt_injection、check_pii、redact_pii、get_llmverify_capabilities。仅使用 stdio,不进行任何出站网络通信,输入和输出均有界,响应经过 PII 过滤,并采用诚实的 notChecked/审计语义。
需要 Node.js ≥ 20(这是 MCP SDK 的最低版本要求;其余软件包支持 ≥ 18)。MCP SDK 和 zod 是常规依赖项——mcp 命令会延迟加载它们,因此其他命令不会产生任何启动开销。
完整的工具参考和安全模型请参阅 docs/MCP.md。
限制
llmverify 是一个分流工具,不是真相判定器。请如实看待它能做什么、不能做什么:
- 它无法确凿证明内容存在幻觉。 幻觉信号基于模式。「法国的首都是伦敦」得分较低,因为这段文字看起来前后一致。验证事实真伪需要你提供源文档。
- 它不能替代人工审查。 用它进行分流,而不是审批。
- PII 检测基于正则表达式。 它能识别标准格式(电子邮件、美国电话号码、SSN、信用卡和常见 API 密钥),但无法识别经过混淆、嵌入图像或编码的 PII。对于标准格式,准确率约为 90%;对于变体,准确率较低。
- 提示词注入检测基于模式。 新型或经过混淆的注入可能绕过检测。
- 免费层完全在本地运行。 ML 增强功能需要付费层和显式 API 密钥;免费层绝不发起网络请求,也绝不向任何地方发送数据。
如果某项声明很重要,请自行核实。llmverify 可以缩小风险范围,但无法消除风险。
文档
HAIEC 的一部分
llmverify 是 HAIEC(Human AI Evidence Company)AI 治理平台的一部分。可将它与 AI Security Scanner、CI/CD pipeline integration 和 Runtime Injection Testing 配合使用。
支持
- 问题反馈: GitHub Issues
- 文档: 完整文档
许可证
MIT — 请参阅 LICENSE。
建议(不构成法律建议): 对每个传递给用户的模型输出运行 verify(),对每个传递给模型的用户输入运行 isInputSafe()。将风险级别视为分流信号,而非审批结论。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。