安全与护栏
一句话定义:Agent 能"动手",安全风险远大于单轮 LLM——需在工具、循环、数据三层设护栏。
1. Agent 特有风险
- 工具误用:Agent 可能调用危险工具(删数据、发邮件、转账)。
- Prompt Injection:恶意指令经工具返回/用户输入劫持 Agent。
- 数据泄露:Agent 读取敏感文件并外传。
- 失控循环:烧钱死循环或执行不可逆操作。
- "看似完成":绕过验收、改测试求通过。
2. 三层护栏
工具层
- 权限白名单:只暴露必要工具。
- 危险操作审批:删除/转账/发送类操作人工确认。
- 参数校验:执行前校验参数合法性与边界。
- 沙箱:代码执行在隔离环境,防破坏宿主。
- 限流:防 Agent 高频调用耗资源。
循环层
- 终止条件:最大步数/预算/超时硬上限。
- 目标保持:定期校验是否偏离原始目标。
- 反思防误导:反思本身可能错,加多样性约束。
- 人在环上:关键节点人工审批。
数据层
- 敏感信息过滤:防密钥/PII 进入上下文或外传。
- 工具返回隔离:工具输出可能含注入指令,做过滤。
- 记忆隐私:长期记忆需脱敏/过期/删除策略。
- 审计日志:记录所有工具调用与数据访问。
3. Prompt Injection 防御
- 系统提示与用户输入/工具返回分区,明确边界。
- 对外部内容做"不可信"标记,指令只信系统提示。
- 输入/输出过滤敏感模式。
- 最小权限:Agent 不持有超出任务所需的权限。
4. 设计原则
- 最小权限:只给完成任务所需的最小工具与数据访问。
- 默认拒绝:危险操作默认禁止,需显式授权。
- 可中断:人随时能叫停 Agent。
- 可审计:所有行动可追溯。
- 失败安全:异常时降级而非继续冒险。
5. 学习要点
- Agent 安全风险随"动手能力"放大,必须工程化护栏。
- 三层护栏(工具/循环/数据)缺一不可。
- Prompt Injection 是 Agent 时代核心攻击面。
6. 参考资料
- OWASP LLM Top 10
- NeMo Guardrails 文档
- "Not with a Bug, but with a Sticker"(AI 安全)
评论
评论加载中…