LLMVerify について
LLMVerifyは、LLMを使うアプリ向けのローカル優先の検証レイヤーです。ルールベースで入出力のリスクを調べ、MCP対応クライアント向けのMCPサーバーも内蔵しています。
主な機能
- 01幻覚と安全性のリスク検査
- 02プロンプトインジェクションと脱獄の検出
- 03PIIの検出とマスキング
- 04不正なJSONの修復
- 05LLMの遅延と挙動の監視
- 06ローカル監査ログ
活用シーン
- 01ユーザーに表示する前の応答検査
- 02LLMに送る前の入力検査
- 03生成テキスト内の個人情報のマスキング
- 04モデルの回帰テスト
MCP 対応
内蔵MCPサーバーは、コンテンツ検証、幻覚リスク評価、プロンプトインジェクション検査、PIIの検査とマスキング、機能確認の6つのツールを公開します。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 機能をリリースしました。その同じ日に、LLM が存在しない引用を捏造し、顧客のメールアドレスを漏えいさせ、ユーザー入力に埋め込まれたプロンプトインジェクションに従ってしまいました。llmverify は、LLM とユーザーの間に配置する安全レイヤーです。
あらゆる LLM に対応した、ローカル優先の検証、PII のマスキング、プロンプトインジェクション対策、ランタイム監視を提供します。必要なのは npm install だけです。テレメトリはゼロです。無料プランでは API キーも不要です。
最終更新日: August 21, 2026 バージョン: 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、または任意の LLM を使って開発していると、モデルは次のような動作をします。
- 事実や引用を捏造します。実際には存在しないものです。
- PII を漏えいさせます。メールアドレス、電話番号、SSN、API キーが応答に含まれます。
- プロンプトインジェクションに従います。ユーザーが指示を無視するようモデルをだまします。
- 壊れた JSON を返し、パーサーをクラッシュさせます。
- 時間とともに品質が劣化しますが、ユーザーから苦情が来るまで誰も気づきません。
モデルとユーザーの間にガードレールが必要です。それが llmverify です。
インストール
npm install llmverify
すべてローカルで実行されます。無料プランではネットワークリクエストが一切発生せず、API キーも不要です。無料プランの上限は、1 日あたり 500 回の検証呼び出しです(ローカルで追跡され、外部に送信されることはありません)。
提供機能
| 機能 | 1 行での使用例 | 動作 |
|---|---|---|
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) | 任意の LLM クライアントをラップし、レイテンシ、トークンの変動、動作の変化を追跡します |
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);
LLM とユーザーの間に、わずか 3 行で安全性を追加できます。設定ファイルも 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 リクエスト/60 秒)。デフォルトでインストールされるオプションの依存関係 express が必要です。
MCP サーバー
llmverify には、組み込みの Model Context Protocol サーバーが含まれています。同じエンジンを、MCP 互換のエージェントや IDE に stdio 経由で公開します。
npx llmverify mcp
// MCP client config
{
"mcpServers": {
"llmverify": {
"command": "npx",
"args": ["-y", "llmverify", "mcp"]
}
}
}
6 つのツール: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%で、形式のバリエーションではこれより低くなります。
- プロンプトインジェクションの検出はパターンベースです。 新しい手法や難読化されたインジェクションは検出を回避する可能性があります。
- 無料プランは 100%ローカルで動作します。 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。