这个项目能做什么
Iris 是一个开源 MCP(模型上下文协议)服务器,旨在评估 AI 智能体输出的质量、安全性和成本。它完全在本地机器上运行,将跟踪记录存储在本地 SQLite 数据库中,无需账户、无需 SDK、无需遥测。该项目采用 MIT 许可证,需要 Node.js 20 或更高版本。
核心能力包括具有分层 span 树的跟踪日志、每次工具调用的延迟、令牌使用量和以美元计的成本跟踪。输出评估使用 20 条内置确定性规则,涵盖四个类别:完整性、相关性、安全性和成本。安全规则可检测 PII(19 种模式,包括社会安全号码、信用卡、电话、电子邮件、IBAN、出生日期、病历号、IP、API 密钥、护照和云提供商令牌)、提示注入(37 种模式)、幻觉标记(25 种基于上下文的捏造信号)以及轨迹违规,例如未确认的失败工具调用、重复调用、被 schema 拒绝的参数以及智能体从未阅读过的引用来源。可选的 LLM 作为评估器功能通过 Anthropic 或 OpenAI 提供语义评分,并设有每次评估的硬性成本上限(默认 0.25 美元)。
Iris 注册了十二个 MCP 工具,任何兼容 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 命令从标准输入或文件读取 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)默认硬性失败。
每条内置规则都有已发布的精确率、召回率和 F1 分数,以及 95% 置信区间,这些是在仓库中的标记语料库上测量的。CI 在每个拉取请求上重新运行测量,如果提交的数字与代码产生的数字不同,则失败。
Iris 是本地优先的:一切都存在于磁盘上的 SQLite 中。出站 HTTP 只在你选择加入的地方发生——你自己的 LLM 评估器密钥、引用获取或你配置的 OpenTelemetry 导出器。该项目支持 Docker 部署,有两个端口(3000 用于 MCP HTTP 传输,6920 用于仪表盘和摄取),并与 Claude Desktop、Claude Code、Cursor、Windsurf、Continue、VS Code、Cline、Zed、Codex CLI、Gemini CLI 以及任何其他兼容 MCP 的智能体集成。
评论
0 评分人数达到10人后显示
登录后参与讨论。