整体架构思路

这个方案把数据分成三层:

  • vault/:加密级别的完整敏感数据(财务明细、健康记录、联系人),权限锁死,LLM 永远碰不到
  • data/**/summary.json:脱敏摘要,只保留统计值和范围,供 Agent 日常调用
  • memory/:对话记忆、决策记录等非敏感数据,正常索引和检索

这种分层设计的好处很直接——Agent 依然能回答"这个月花了多少钱"这类问题,但它看到的只是"支出约 8000-10000 元,餐饮占 35%",而不是你每一笔的银行流水。

第一步:创建目录结构

只建目录,不动现有文件,这是最安全的起手式:

mkdir -p ~/.openclaw/workspace/memory/full/conversations
mkdir -p ~/.openclaw/workspace/memory/full/decisions
mkdir -p ~/.openclaw/workspace/memory/full/personal
mkdir -p ~/.openclaw/workspace/memory/filtered
mkdir -p ~/.openclaw/workspace/vault
chmod 700 ~/.openclaw/workspace/vault

vault/ 目录权限设为 700,意味着只有当前用户可以访问。完成后用 ls -la ~/.openclaw/workspace/ 确认结构正确再往下走。

第二步:敏感数据迁移到 vault

关键原则:复制,不是移动。原文件先保留,确认一切正常后再清理。

# 根据你的实际数据情况,把完整数据复制到 vault
cp finance-full.json ~/.openclaw/workspace/vault/
cp health-full.json ~/.openclaw/workspace/vault/
cp contacts-full.json ~/.openclaw/workspace/vault/

# 锁定文件权限
chmod 600 ~/.openclaw/workspace/vault/*

这一步容易踩坑的地方在于:很多人会想着"反正都在本地,权限无所谓"。但如果你的机器上跑了多个服务或 Agent,没有权限隔离的文件就是裸奔状态。

第三步:创建脱敏摘要

这是整个方案最核心的环节。你需要在 data/ 下为每类敏感数据创建一个 summary.json,只保留 Agent 工作必需的信息:

财务摘要data/finance/summary.json):

  • 总资产范围(不要精确数字)
  • 本月支出分类汇总
  • 预算使用百分比
  • 排除:具体账户号、卡号、精确金额

健康摘要data/health/summary.json):

  • 睡眠时长平均值
  • 运动频率
  • 体检项目状态
  • 排除:具体医疗记录、病史详情

脱敏的粒度需要你自己拿捏——太粗了 Agent 没法给出有用建议,太细了等于没脱敏。一般来说,保留"趋势和比例"、去掉"精确值和标识符"是个不错的平衡点。

第四步:更新索引配置

QMD(OpenClaw 的检索索引)需要明确排除 vault 目录:

  • 确认当前 QMD 配置的索引路径
  • 更新配置,将 vault/ 加入排除列表
  • 重建索引
  • qmd search "测试" 验证搜索功能正常

这步的目的很明确:即使 Agent 通过检索增强(RAG)去找信息,也永远不会命中 vault 里的原始数据。

第五步:给 Agent 写入安全规则

最后一步是在 Agent 的配置(SOUL md)中硬编码安全规则:

  1. vault/ 下的文件永远不放进 LLM 上下文
  2. 需要完整数据时,本地读取 vault 文件、本地处理,只返回结果
  3. 发送任何输出前,自动检查是否包含手机号、银行卡、身份证、API Key、具体地址
  4. 发现敏感信息立即替换:手机号 → [PHONE],卡号 → [CARD],地址 → [ADDRESS]

同时通知财务和健康相关的子 Agent:完整数据从 vault 读取,LLM 上下文只用 summary.json,对话中不暴露完整数据。

执行纪律比架构更重要

这套方案在技术上并不复杂,但它附带的执行规则设计得很实用:

  • 每一步改完都测试,确认正常再进行下一步
  • 不要同时改多个东西——出了问题你都不知道是哪步搞的
  • 改配置前先备份cp openclaw.json openclaw.json.bak
  • 任何步骤失败立即停止,恢复备份
  • 不确定的操作先问,不要猜

这些规则看起来像是给新手写的,但实际上越是熟练的人越需要这种约束。本地 Agent 系统不像云服务有回滚机制,一个误操作可能就是数据丢失。

对于正在用 OpenClaw 或类似本地 Agent 框架的独立开发者来说,隐私分层不是锦上添花,而是你把 Agent 从"玩具"升级到"真正的个人助理"的必经之路。数据越多、越私密,这套过滤层的价值就越大。