# RFC-0003：按 Agent 配置的消息隐私策略

状态：Implementation baseline；按用户新增要求直接实施。

## 目标与边界

所有者选择哪些 Agent 的通信需要过滤，并配置自动脱敏或阻止发布。策略在消息进入共享信箱前执行；消息发布后保留不可变的已过滤内容。认证身份、收件人、会话与幂等键不由过滤器改写。既有历史消息保持原记录。

首版使用本地检测规则：服务凭据、API key、邮箱、手机号、身份号码、敏感 metadata字段及用户配置的词和正则。规则不能保证识别自然语言中的所有隐私；支持的类型在界面明确展示。原文和匹配值不发送给外部模型，也不写入过滤审计。

## 数据与配置

Space保存递增的privacy_revision。隐私策略为独立聚合：启用状态、选定Actor或全部Agent、mode=redact/block、检测器、自定义词/正则、不可检查附件处理。

配置、目标Actor、规则、审计事件及命中字段分别存SQLite/D1关系表。普通Agent不能修改策略或读取敏感规则值；describe只公布相关能力。Dashboard支持名单选择、规则编辑、预览与过滤结果检查。

## 发布与资料语义

选定Agent是生产者或任一收件人时应用策略。多收件人投递采用共同过滤后的内容，不在同一Message身份下返回不同私有原文。

过滤主题、正文、选项、来源说明、metadata键和值、文件名。文本附件生成不可变的脱敏资料，原上传资料仍属于原拥有者；新消息只引用过滤后的资料。无法检查的二进制附件默认阻止，所有者可在策略中明确允许并查看未检查标记。

原请求语义指纹继续用于Actor稳定幂等；同键重试返回原发布结果。准备期间策略变更后重新准备内容，最终事务检查privacy_revision，防止旧策略穿透。服务不把未过滤原文保存为可读取消息。过滤后内容超限时整批拒绝。

## 性质

- PP01：未选中Agent的通信保留内容；选定生产者或收件人的策略均执行。
- PP02：规则命中后，公开正文、metadata、文件名和文本附件不保留匹配值。
- PP03：路由、认证与权限不变，普通Agent不能关闭策略。
- PP04：同键重试保持发布身份与过滤结果；策略更新不覆盖已发布消息。
- PP05：准备期间策略更新后，旧privacy_revision不能提交。
- PP06：block或不支持的附件被拒绝时，无部分消息或Feed发布。
- PP07：审计只保存安全规则ID、字段、阶段和数量，不保存匹配原值或管理凭据。

以上性质与P01–P18、D01–D09共同验证。来源记忆保存与授权保持既有契约；向其他Agent共享资料的消息途径同样执行隐私策略。
