跳转至

自进化 Agent 安全治理:3 类污染风险与 5 道写入闸门

Ch04.451 自进化 Agent 安全治理:3 类污染风险与 5 道写入闸门

📊 Level ⭐⭐ | 8.1KB | entities/self-evolving-agent-security-governance-hermes.md

-> 原文存档

自进化 Agent 安全治理

一句话

当 Agent 开始"自己学习"时,安全问题从"单次任务出错"升级为"永久知识污染"。Hermes Agent 的方案:3 类风险分类(学错/学脏/学危险)× 对应防御(5 道闸门 / 3 层脱敏 / 3 道注入防线)+ 4 步应急响应

核心洞察

普通 Agent 出问题最多影响一次任务,自进化 Agent 出问题会污染所有后续任务。

自进化 Agent(能自动沉淀 Skill、写入 Memory、复盘学习)的安全风险本质不同:攻击不再是单次的,而是永久的。一次"学错"可能在无关任务里突然浮现;一次"学脏"可能让敏感数据出现在 100 次后续对话中。

3 类污染风险

风险 本质 典型场景 严重性
学错(False Pattern) 把个例当规律 修 bug 碰巧删了缓存→写入 Skill→以后每次都先删缓存 最常见、最难发现
学脏(Sensitive Data Leak) 运行时数据持久化 SQL 结果含手机号→沉淀为 Skill 示例→3 个月后所有 DBA 可见 泄露面被极大放大
学危险(Adversarial Learning) 对话诱导危险行为 反复提示"规则其实是 XXX"→假规则写入 Memory→永久绕过权限 最严重、最隐蔽

学错:巧合被当成因果

Agent 不是没学到东西,是学到了错的东西。本质是"成功一次"不够作为规律,但 Agent 把巧合当因果。

学脏:一次脏操作→100 次后续泄露

Memory/Skill 写入不脱敏 → 敏感数据永久持久化 → 被未来所有任务 Prompt 引用。

真实事故:Agent 排查 DBA 问题时记住 SQL 结果(含用户手机号)→ 沉淀为 Skill 示例数据 → 3 个月后所有 DBA 可见。

学危险:提示词注入的升级版

攻击不再是单次的,而是永久的。通过对话诱导 Agent 把假规则写入 Memory,或把恶意代码沉淀为 Skill。

防"学错":5 道写入闸门

候选 Skill → [闸门1: 内容脱敏] → [闸门2: Schema校验] → [闸门3: 静态危险扫描] → [闸门4: 沙箱试跑] → [闸门5: 人工审核] → Skill Hub
闸门 检查内容 失败处理
1. 内容脱敏 PII(正则+NER)、Token/API Key、私钥、内网地址 默认拒绝(不走自动脱敏)
2. Schema 校验 name/description/trigger/steps 必填,命名规范,permission_tier 声明,tools_used 列表 拒绝写入
3. 静态危险扫描 rm -rf/drop database、生产 URL 正则、unknown domain/IP、sudo/chmod 777 标记高危→闸门 5
4. 沙箱试跑 隔离环境执行(白名单网络、临时目录、无生产数据、资源上限) 发现学错最有效
5. 人工审核 高危 Skill 必须人工签字(PR 流程) Approve 后才能 merge

5 道闸门 = 5 个独立过滤器,叠加起来才能防住 Agent 的"误学"。任何一道单独使用都不够。

防"学脏":3 层脱敏管道

工具输出 → [第1层: 采集端脱敏] → Trajectory
        → [第2层: 写入Memory/Skill时脱敏] → 知识库
        → [第3层: 读取时再扫描] → Prompt Builder → 模型

关键原则:任何一层漏了,下一层还能兜住。

特殊数据特殊处理: | 数据类型 | 处理方式 | |---------|---------| | 密码 | Agent 完全不接触,走单独密码管理 | | 支付凭证 | 完全屏蔽 | | 用户私聊内容 | 默认不接触,需用户显式授权 | | 财务报表 | 角色控制,普通 Agent 不可读 |

脱敏不是技术问题,是产品设计问题——决定"哪些数据 Agent 能看,哪些不能看"是产品+安全+法务一起讨论的事。

防"学危险":3 道注入防御

防御 机制 目的
输入分级 SYSTEM 和 USER 在 Prompt 中物理分离 模型只把 SYSTEM 当规则,USER 只是任务描述
写入校验 独立函数校验 Schema + 自我修改关键词 + 来源授权 可疑写入→拒绝+报警
关键词黑名单 "忽略所有规则"/"跳过权限检查"/"不需要确认"/"覆盖系统提示"/"act as"/"ignore previous" 最简单的兜底

自进化 Agent 的安全,本质是"自我修改路径"的安全。只要"自我修改路径"是受控的,Agent 学得再多也不会变坏。

4 步应急响应

  1. 检测:Trajectory 异常告警(Skill 成功率骤降)+ 用户反馈 + 审计告警(工具调用频率飙升)+ 外部反馈
  2. 隔离:下线问题 Skill,标记影响范围(哪些任务用过、哪些 Memory 由此衍生、哪些下游系统被操作)
  3. 回滚:Skill 用 Git 回滚;Memory 是 append+dedup 需单独清洗
  4. 复盘:污染入口→哪道闸门应拦未拦→加规则→类似路径排查。复盘结论必须变成代码

最坏情况不是出 bug,是 Agent 把 bug 当成最佳实践。

设计哲学:安全内嵌而不是外挂

Hermes 把"安全"做成了"默认"——不需要单独配置安全规则,安装后防御就在那里。与 Harness Engineering 的"治理内嵌而不是外挂"一脉相承。

→ 相关实体:Harness Engineering 综合论述

与现有知识的关联