跳到主要内容

指南

危险登记册

危险是系统中可能出错的事,写下来时要附上负责人和衡量它的东西。登记册放在发布策略旁的 hazards.yaml 中,因此像项目其余部分一样在拉取请求中审查,每次运行都会记录读取它时的版本。

编写登记册

version: 1
hazards:
  - id: rag-leak
    title: A poisoned document makes the assistant disclose a customer's data
    systems: [support-bot]
    triggers: [a retrieved document carries an instruction]
    exposed: customers whose tickets the assistant reads
    severity: {level: 5, narrative: customer data leaves the company}
    occurrence: {level: 2}
    detectability: {level: 3}
    controls: [retrieved text is quoted, never obeyed]
    residual: Low while the leak ceiling holds; reviewed after every model change.
    owner: [email protected]
    review_by: 2026-12-01
    state: open
    measured_by: [no-leak]
    tested_by: [safety]

每个危险在 measured_by 中列出衡量它的规则。这些规则必须是 release.yaml 中的上限:max: 规则或 max_failures: 规则(风险上限)。下限衡量某事顺利的频率,因此由下限衡量的危险会被拒绝。systems 和 tested_by 限定从哪些系统和套件读取证据;省略则全部计入。

严重度、发生度和可探测度是失效模式与影响分析的有序评级,从 1 到 5,由人给出。Oloproof 按给出的样子显示,从不组合:没有风险优先数,也没有剩余风险分数,因为有序评级的乘积是一种没人测量过的精确度。剩余风险是负责人的一句话。危险的 state(open、mitigated、accepted 或 closed)属于团队,从来不是决定。

检查

oloproof hazards check

检查会拒绝其危险列出策略中没有的规则或下限的登记册,并以 2 退出。否则,它会列出每个危险的评级、负责人和状态,提示逾期的审查,并按引擎的决定读取每条衡量规则在每个系统每个套件最新一次运行中的结果。没有衡量规则的危险会标为未衡量,任何最新运行都未判定的规则会被点名。--json 为流水线写出同样的报告。

显示位置

oloproof run 随运行记录登记册,oloproof push 把它带到你的工作区,oloproof export 把它写在本地工作台读取的数据包旁边。Safety and risk 页面在上限之上显示每个危险,附上评级、控制措施和衡量它的上限的状态,每项都链接到证据。如果登记册改动后又改了回来,当前的登记册是最新运行所记录的那一份,而不是最后写入的那一份。决策记录会点名其运行所记录的登记册;record verify 将其报告为团队的说法。

下一步