转录清洁
Transcript Hygiene(转录清洁)是对 OpenClaw 对话历史记录进行清理、脱敏和维护的实践。良好的转录清洁习惯有助于保障数据安全、节省存储空间并满足合规要求。
为什么需要转录清洁
对话转录中可能包含:
| 风险类型 | 示例 |
|---|---|
| 个人身份信息(PII) | 姓名、手机号、身份证号 |
| 支付信息 | 银行卡号、CVV |
| 认证凭据 | 密码、API Key、Token |
| 商业机密 | 内部数据、合同信息 |
| 医疗信息 | 病历、诊断结果 |
合规风险
未经清洁的转录数据可能违反《个人信息保护法》(PIPL)、GDPR 等法规,带来法律风险。
敏感数据处理
自动脱敏
OpenClaw 支持在转录写入时自动检测和脱敏敏感信息:
yaml
# openclaw.config.yaml
session:
transcript:
sanitization:
enabled: true
rules:
- type: 'phone'
pattern: '\b1[3-9]\d{9}\b'
replacement: '[手机号已脱敏]'
- type: 'id-card'
pattern: '\b\d{17}[\dXx]\b'
replacement: '[身份证号已脱敏]'
- type: 'bank-card'
pattern: '\b\d{16,19}\b'
replacement: '[银行卡号已脱敏]'
- type: 'email'
pattern: '\b[\w.-]+@[\w.-]+\.\w+\b'
replacement: '[邮箱已脱敏]'
- type: 'api-key'
pattern: '(sk-|ak-|key-)[a-zA-Z0-9]{20,}'
replacement: '[密钥已脱敏]'脱敏模式
| 模式 | 说明 | 示例 |
|---|---|---|
replace | 替换为固定文本 | 13812345678 → [手机号已脱敏] |
mask | 部分遮挡 | 13812345678 → 138****5678 |
hash | 不可逆哈希 | 13812345678 → a1b2c3d4... |
remove | 完全删除 | 13812345678 → (空) |
yaml
sanitization:
rules:
- type: 'phone'
mode: 'mask' # 使用部分遮挡模式
maskChar: '*'
keepFirst: 3
keepLast: 4选择合适的脱敏模式
日志审计场景推荐 mask 模式(可辨识但不完整),安全要求高的场景推荐 hash 或 remove。
转录轮转
配置轮转策略
yaml
session:
transcript:
rotation:
enabled: true
maxFileSize: '10MB' # 单文件大小上限
maxAge: '90d' # 最大保留天数
maxFiles: 100 # 最大文件数
compress: true # 归档时使用 gzip 压缩
archivePath: './archive/transcripts'轮转流程
当前转录文件
│
├─ 达到大小上限 → 轮转
├─ 达到时间上限 → 轮转
│
▼
归档文件(gzip 压缩)
│
├─ 超过保留期限 → 删除
└─ 保留期内 → 保持存储优化
压缩策略
bash
# 手动压缩历史转录
openclaw transcript compress --older-than 7d
# 查看存储使用情况
openclaw transcript stats
# 示例输出
# Total transcripts: 1,234
# Active size: 256 MB
# Archived size: 89 MB (compressed)
# Total size: 345 MB存储后端
| 后端 | 适用场景 | 特点 |
|---|---|---|
| 本地文件系统 | 单机部署 | 简单直接 |
| S3 / OSS | 生产环境 | 可扩展、低成本 |
| 数据库 | 需要复杂查询 | 结构化存储 |
yaml
session:
transcript:
storage:
type: 's3'
bucket: 'my-transcripts'
region: 'cn-hangzhou' # 阿里云 OSS 示例
prefix: 'openclaw/'合规考量
数据保留政策
yaml
compliance:
dataRetention:
default: '180d' # 默认保留 180 天
rules:
- channel: 'wechat'
retention: '365d' # 微信渠道保留 1 年
- channel: 'internal'
retention: '90d' # 内部渠道保留 90 天
onExpiry: 'delete' # 到期后删除用户数据删除请求
bash
# 响应用户数据删除请求
openclaw transcript delete --user user-123 --confirm
# 生成删除报告
openclaw transcript delete-report --user user-123法律合规
部署前请咨询法务团队,确认数据保留策略符合当地法规要求。中国用户需遵守《个人信息保护法》和《数据安全法》。
