跳转到主要内容
你绑定了一个防护栏,现在你想看它捕获了什么Matches 信息流 是 OrcaRouter 的防护栏匹配日志——每次一条规则触发(block、mask、 flag、annotate 或 spotlight)时,网关都会记录一条你可以在控制台中 审查或通过 API 拉取的匹配。这就是你回答”PII 规则昨天脱敏了什么?”、 “哪个密钥触发了密钥拦截器?“和”这条规则是在真实流量上触发还是 只是噪声?“的方式。 本页是读取和分诊匹配的专注指南。关于规则如何编写以及每个动作 做什么,参见防护栏参考

1. 防护栏匹配日志记录什么

每条触发的规则都会向一个工作区级别的信息流写入一条匹配 (GET /api/guardrail/match,对任何 Member 开放)。该信息流 与你的请求日志分离——它只存储防护栏做了什么,而不是完整的请求 主体。每条匹配记录:
rule_typekeywordregexpiimax_charsexternalllm_judgegrounding)、生效的 actionblock / mask / flag / annotate / spotlight),以及 stageinputoutput)——因此你可以立刻分辨什么触发了以及它做了什么
guardrail_name、触发的 rule_label,外加请求上下文: model_name、它所搭载的 token、调用方 ip,以及把它连回 你的请求日志的 request_id
detail——引擎对该违规的简短人类可读注释(例如哪个实体或 模式触发的),总是被记录。
matched 在防护栏的 Log raw content 开关开启时才填充。 它默认关闭,因此默认情况下信息流告诉你一条规则触发了以及 为什么,但永不存储敏感字符串本身。
原始内容是选择性开启且不可追溯的。Log raw content 关闭时(默认),matched 字段保持为空——信息流记录判定和 detail,永不记录触发规则的 email 地址、密钥或 PII。只有在你需要 子串进行分诊时才按防护栏开启它;它适用于你启用它之后记录的 匹配。参见日志与隐私

2. 列出并过滤匹配日志

默认列表视图是游标分页的、最新优先的,并限定于你的工作区。用 查询参数收窄它——控制台把这些暴露为过滤芯片:
参数按什么过滤
guardrail_idrule_typeactionstage判定
token_idmodel_namerequest_id请求上下文
days / start_at + end_athide_fp时间窗口和误报状态
一个典型的”给我看本周密钥防护栏拦截的所有东西”的读取,使用你的 控制台会话令牌:
curl "https://api.orcarouter.ai/api/guardrail/match?guardrail_id=42&action=block&days=7" \
  -H "Authorization: Bearer <your-session-token>" \
  -H "X-Workspace-Id: <workspace-id>"
/api/guardrail/* 这样的管理路由用你的控制台会话 / 访问 令牌鉴权,而不是中继密钥。sk-orca-... 密钥只用于 /v1/* 模型 调用。在日常使用中,你会直接从 Guardrails 页面上的 Matches 标签页读取信息流。

3. 按请求分组

单个请求可以一次触发多条规则——比如一个输入 PII 脱敏一个 最大长度上限。分组视图(GET /api/guardrail/match/grouped, Member)按 request_id 折叠匹配,因此你看到的是每个违规请求一行, 其匹配内联折叠,而不是为同一个调用滚过五行。用 inline_limit (默认 5)调整每组内联显示多少条匹配。

4. 统计与趋势条

统计端点(GET /api/guardrail/match/stats,Member)驱动 Matches 标签页上的计数条和图表——一个 days 窗口上的总计,可选地用 group_by 拆分:
group_by拆分
(省略)仅总计
rule_type哪些规则类型触发最多
guardrail_id哪个防护栏占了这些活动
request_id 以得到一个请求的常数时间匹配计数(被请求日志 交叉链接使用)。这里是按防护栏的用量、动作组合和误报率所在的 地方——切分它,而不是翻原始列表。

5. 为审计追踪导出

当你需要控制台之外的匹配时——一份证据包、一张电子表格、一个 下游 SIEM——GET /api/guardrail/match/export(Member)会把你的 当前过滤集以 CSV 或 JSON 流式传输:
curl "https://api.orcarouter.ai/api/guardrail/match/export?format=csv&guardrail_id=42&days=30" \
  -H "Authorization: Bearer <your-session-token>" \
  -H "X-Workspace-Id: <workspace-id>" \
  -o guardrail-matches.csv
导出携带信息流记录的相同列——时间、防护栏、规则类型和标签、 阶段、动作、模型、token、详情、匹配的子串(仅当记录时开启了 原始内容捕获)、请求 id、ip,以及误报时间戳。
CSV 是公式注入安全的:任何本会被读作电子表格公式的单元格都会被 中和,因此在 Excel 或 Sheets 中打开一份导出不会执行通过匹配子串 夹带的负载。

6. 分诊误报

不是每条匹配都是真命中。当一条规则在良性流量上触发时,工作区 Admin 可以把该匹配标记为误报 (POST /api/guardrail/match/:id/mark-fp);反向的 DELETE /api/guardrail/match/:id/mark-fp 取消标记它。即使信息流的 其余部分对 Member 可读,标记也是仅 Admin 的——分诊是一个 特权操作。 标记一个误报做两件事:它给匹配打标签(这样 hide_fp=true 会把它 过滤出信息流)并记住该发现,因此未来请求上对相同内容的相同规则 会被跳过。取消标记以恢复执行。关于调优一条嘈杂规则的更广工作流, 参见调优误报
一条匹配是诊断数据,而不是一个执行决策。 一个请求是被拦截、 脱敏还是仅被 flag,在请求时已经由动作 确定——信息流是事后的记录。标记一个误报改变的是未来行为, 永不改变已经发生的那个调用。

7. 匹配从何而来

匹配由防护栏引擎在中继路径上产生,因此信息流确切地反映你绑定的 策略做了什么:
  • 输入阶段匹配记录网关在模型看到之前筛查了什么——参见 输入阶段
  • 输出阶段匹配记录它在响应上筛查了什么——参见 输出阶段
  • 一个被拦截的请求也会作为一个 HTTP 400 guardrail_blocked 呈现给调用方;匹配是它的服务端记录。
如果一个请求上没有解析出防护栏,则什么都不筛查,什么都不落入 信息流——行为与从未启用该功能的工作区完全相同。一个策略最初如何 出现在流量之前,参见 绑定到密钥账户默认值

8. 相关

防护栏参考

完整引擎:规则类型、阶段、动作、预设、eval 工具。

日志与隐私

Log raw content 开关,以及信息流存储——和不存储——什么。

调优误报

用信息流找出并安抚嘈杂规则,而不削弱策略。

版本管理

当信息流显示一次变更误触发时,diff 和回退一个防护栏。
关于网关如何检查流量的更大图景,参见 OrcaRouter 如何检查防护栏 vs 防火墙