Armor
OpenRouter 推出的工具调用安全分类器,位于模型和应用之间,用自然语言规则检查每次工具调用并决定是否拦截,支持 hard_deny、soft_deny、allow 三层规则和多种 output_mode。
时间轴 (近 90 天)
OpenRouter 于 10 月 15 日推出 beta 版 Armor,一个位于模型和应用之间的安全分类器,用自然语言规则检查每一次工具调用。
Armor 的判定机制是:对每次工具调用,将调用内容、规则和对话上下文一起发给决策模型,由其返回每条规则的匹配概率并汇总为 flagged 或 not_flagged。
Armor 背后的决策模型是 TypeSafe 的 Jev,当前版本为 typesafe/jev-1.14,是一个返回带概率的类型化答案的结构化决策模型。
OpenRouter 声称 Armor 在性能和成本上都优于 Claude Code 自带的 auto-mode 分类器,但未公开测试集和数字。
Armor 规则体系分为三层:hard_deny(绝不允许)、soft_deny(通常不该做但有时合理)、allow(仅作为 soft-deny 的例外,本身从不阻止)。
Armor 的 deny 规则默认阈值为 0.6,allow 规则默认阈值为 0.7;每条规则包含 id、可选 name、instructions 和可选 threshold。
Armor 的 audit 模式对每次调用打分但不阻止任何东西,且不能与 claude_code_compatibility 组合使用。
Armor 有三种 output_mode:text(Chat Completions 与 Responses 默认,用 <openrouter_armor_blocked> 标记)、custom_item(Responses,产出 openrouter:armor_blocked 输出项)、claude_code_compatibility(Messages,保留 tool_use 并在 safeguard_results 中标记 flagged)。
在 claude_code_compatibility 模式下,阻止调用的是客户端应用;忽略 safeguard_results 的 Messages 客户端会运行被标记的 tool_use。
当决策模型超时、报错或收到过大请求时结论为 unavailable,由 on_error 决定行为(block 为默认,可选 log),但该设置不适用于 Claude Code 模式,那里 unavailable 的调用总是被放行并附带可见判定。
还有 5 条时间轴事件
全部知识事实 (15)
on_error 的 block 与 log 对应分布式系统中的 fail-closed 与 fail-open 两种故障策略,两者都只是转移风险而非消除风险。
50%待验证Armor 的判定机制是:对每次工具调用,将调用内容、规则和对话上下文一起发给决策模型,由其返回每条规则的匹配概率并汇总为 flagged 或 not_flagged。
50%待验证Armor 背后的决策模型是 TypeSafe 的 Jev,当前版本为 typesafe/jev-1.14,是一个返回带概率的类型化答案的结构化决策模型。
50%待验证OpenRouter 声称 Armor 在性能和成本上都优于 Claude Code 自带的 auto-mode 分类器,但未公开测试集和数字。
50%待验证Armor 规则体系分为三层:hard_deny(绝不允许)、soft_deny(通常不该做但有时合理)、allow(仅作为 soft-deny 的例外,本身从不阻止)。
50%待验证Armor 的 deny 规则默认阈值为 0.6,allow 规则默认阈值为 0.7;每条规则包含 id、可选 name、instructions 和可选 threshold。
50%待验证Armor 的 audit 模式对每次调用打分但不阻止任何东西,且不能与 claude_code_compatibility 组合使用。
50%待验证Armor 有三种 output_mode:text(Chat Completions 与 Responses 默认,用 <openrouter_armor_blocked> 标记)、custom_item(Responses,产出 openrouter:armor_blocked 输出项)、claude_code_compatibility(Messages,保留 tool_use 并在 safeguard_results 中标记 flagged)。
50%待验证在 claude_code_compatibility 模式下,阻止调用的是客户端应用;忽略 safeguard_results 的 Messages 客户端会运行被标记的 tool_use。
50%待验证当决策模型超时、报错或收到过大请求时结论为 unavailable,由 on_error 决定行为(block 为默认,可选 log),但该设置不适用于 Claude Code 模式,那里 unavailable 的调用总是被放行并附带可见判定。
50%待验证Armor 尚不支持 HIPAA、零数据保留或数据区域限制下的请求:插件请求会返回 403,Claude Code 请求则被放行并标记 unavailable,回退到 Claude Code 本地 auto-mode 检查。
50%待验证加载 Claude Code 兼容规则集时,Armor 的中位延迟增加 279 ms,P90 增加 334 ms。
50%待验证对于自研 Messages 客户端,稳妥做法是仅当 Armor 评估过且结论为 not_flagged 时才执行,缺失判定或 unavailable 一律拒绝;拒绝缺失判定是作者选择而非文档强制要求。
50%待验证OpenRouter 于 10 月 15 日推出 beta 版 Armor,一个位于模型和应用之间的安全分类器,用自然语言规则检查每一次工具调用。
50%待验证Armor beta 期间评估不计费,但 OpenRouter 表示正式发布前会定价,且配置字段、safeguard_results 对象和 openrouter:armor_blocked 项类型都可能变动。
50%