このプロジェクトについて

Irisは、AIエージェントの出力を品質、安全性、コストの観点で評価するために設計されたオープンソースのMCP(Model Context Protocol)サーバーです。完全にローカルで動作し、トレースをローカルのSQLiteデータベースに保存します。アカウント、SDK、テレメトリは一切不要です。このプロジェクトはMITライセンスで、Node.js 20以降が必要です。 中核機能には、階層的なスパンツリーによるトレースログ、ツール呼び出しごとのレイテンシ、トークン使用量、米ドルでのコスト追跡が含まれます。出力評価では、完全性、関連性、安全性、コストの4カテゴリにわたる20の組み込み決定論的ルールを使用します。安全性ルールは、PII(SSN、クレジットカード、電話、メール、IBAN、生年月日、MRN、IP、APIキー、パスポート、クラウドプロバイダートークンなど19のパターン)、プロンプトインジェクション(37パターン)、幻覚マーカー(25の文脈に基づく捏造シグナル)、および未認識の失敗したツール呼び出し、繰り返し呼び出し、スキーマ拒否された引数、エージェントが実際には読んでいない引用ソースなどの軌道違反を検出します。オプションのLLM-as-judge機能は、AnthropicまたはOpenAIを介したセマンティックスコアリングを提供し、評価ごとのハードなコスト上限(デフォルト$0.25)があります。 Irisは、MCP互換のエージェントが呼び出せる12のMCPツールを登録しています:log_trace、evaluate_output、get_traces、list_rules、deploy_rule、delete_rule、delete_trace、evaluate_with_llm_judge、verify_citations、compare_runs、compare_traces、evaluate_runs。verify_citationsツールは、出力から引用を抽出し、SSRFガード付きリゾルバーの背後にあるソースを取得し、LLMジャッジを使用して各ソースが引用された主張を裏付けているかどうかを確認します。 Webダッシュボードはhttp://localhost:6920で提供され、失敗を最悪かつ最新のものから並べます。トレースの可視化、評価結果、コスト内訳、およびルール、トレース、評価を検索するためのコマンドパレット(Cmd+K)を提供します。ダッシュボードは、モデルを介さずにトレースをキャプチャするためのHTTPインジェストエンドポイント(POST /api/v1/traces)と、サーバーが判断できる内容を説明するケイパビリティエンドポイント(GET /api/v1/capabilities)も公開しています。 CI/CD統合のために、インジェストCLIコマンドはstdinまたはファイルからJSONまたはNDJSONトレースを読み取り、評価し、トレースごとに判定を含むJSON行を出力し、判定が--fail-onフィルターに一致する場合、コード1で終了します。これにより、評価結果に基づいてエージェントのデプロイをゲートできます。 カスタムルールは、インライン(evaluate_output呼び出しごとに最大10個)またはdeploy_ruleを介して永続的にデプロイできます。ルールタイプには、regex_match、regex_no_match、min_length、max_length、contains_keywords、excludes_keywords、json_schema、cost_thresholdが含まれます。デプロイされたルールは、Irisホームディレクトリのcustom-rules.jsonに永続化され、そのカテゴリの将来のすべてのevaluate_outputで発動します。重大度レベル(低、中、高、重大)は、ルールの失敗が評価をハードフェイルさせるか、スコアにのみ影響するかを決定します。 合格判定は、各ルールが行う主張の種類に基づいて読み取るコンポーザーによって決定されます:設定されたポリシーはゲートし、重大な検出器は拒否権を持ち、回答できなかった重大なチェックは不明な判定を生成し、残りの検出器は構成可能な損失率に対して重み付けされた確率に結合されます。実際の安全性違反(no_pii、no_injection_patterns、no_blocklist_words)はデフォルトでハードフェイルします。 すべての組み込みルールには、リポジトリ内のラベル付きコーパスで測定された、95%信頼区間付きの公開された適合率、再現率、F1スコアがあります。CIはすべてのプルリクエストで測定を再実行し、コミットされた数値がコードが生成するものと異なる場合に失敗します。 Irisはローカルファーストです:すべてがディスク上のSQLiteに存在します。アウトバウンドHTTPは、ユーザーがオプトインした場合のみ発生します—独自のLLMジャッジキー、引用取得、または設定したOpenTelemetryエクスポーターです。このプロジェクトは、2つのポート(MCP HTTPトランスポート用の3000、ダッシュボードとインジェスト用の6920)を持つDockerデプロイをサポートし、Claude Desktop、Claude Code、Cursor、Windsurf、Continue、VS Code、Cline、Zed、Codex CLI、Gemini CLI、およびその他のMCP互換エージェントと統合します。