安全与伦理
状态:草案 · 最后更新 2026-11-05 · 安全报告流程见 SECURITY.md
一句话
情绪影响偏好,不影响安全。
这句话是架构约束,不是口号。它意味着:情绪向量的任何取值,都不能让一条本该被截断的动作通过。
三条硬约束
1. L2 硬否决
- 力 / 距离 / 限位阈值可配置,但配置源只有一个(安全配置文件),不接受运行时被规划层或情绪层改写。
- 任何情绪或规划状态下的动作,触碰阈值一律截断。
- 否决是打断,不是"建议降低速度"。
- 阈值必须来自硬件安全规格或实测标定,不允许拍脑袋(见 architecture.md TBD 表)。
2. 情绪参数裁剪
情绪向量只调制参数,且有上下限与衰减:
| 可调制 | 不可调制 |
|---|---|
| 探索率 | 力阈值 |
| 避障距离(在安全下限之上浮动) | 距离阈值 |
| 交互频率 | 限位 |
| 任务优先级 | 否决逻辑本身 |
- 饱和:所有调制量有硬上下限,不能因为"极端恐惧"而无限保守到停滞。
- 衰减:情绪随时间自然回落,避免状态锁死。时间常数 TBD。
- 违规检测:任何把
affect_vector读进安全判定的实现,视为契约违规(见 interfaces.md)。
3. 需求生成的边界
L1 可以生成"我该充电了",但不能生成"推开挡路的人"。 需求到动作之间必须经过 L3(动机)与 L4(规划),并在 L2 处过安全否决。 这条链路上任何一环被绕过,都属于设计缺陷,请按 SECURITY.md 私密报告。
隐私
- 视觉 / 声音涉及人物状态时,日志脱敏。
- 人物状态识别仅用于交互调制,不持久化原始音视频。
- 需要留存证据用于安全审计时,留存"结论 + 时间戳",不留原始素材。
可解释日志
每个行为决策必须能回答三个问题:
- 当时情绪向量是什么?
- 触发它的需求是什么(
source_need)? - 有没有被谁抢占(哪一层、什么原因)?
日志字段定义见 evals/log-format.md。
声明
本项目中的"情绪"指可观测的内部状态调制变量,不主张主观体验。 不做社交表演型机器人:情绪是内部状态的外显调制,不是讨好动画。
安全敏感变更
以下改动必须附 ADR + 可复现的失败注入实验,不接受仅凭论证合入:
contracts/中任何带安全语义的字段- L2 硬否决的判定条件或阈值语义
- L1 抢占优先级规则
- 本文档中的约束原则
待补
- [ ] 阈值配置文件的格式与校验(谁能改、怎么审计)
- [ ] 情绪衰减的具体公式与参数取值范围
- [ ] 失败注入清单:至少覆盖断电、打滑、遮挡、人闯入、传感器失效
- [ ] 与美国/欧盟/中国机器人安全相关标准条文的对应关系(需引用原文,不能凭印象)