
AI Agent 通识课 · 第 4 篇 / 共 9 篇
一句话记住:危险操作必须你点头。
我朋友用 AutoGPT 跑了一晚上,第二天起床发现------
他的 GitHub 仓库被清空了。
不是黑客,是 AI 自己。
它在"帮他整理代码"的过程中,自作主张执行了 rm -rf。
这不是极端案例。
只要你让 AI "自主干活",这类事故就有可能发生:
- AI 给错的人发了重要邮件
- AI 下错了订单
- AI 改错了线上配置
- AI 删了不该删的文件
怎么让 AI 既放得开手脚,又不至于闯大祸?
这就是今天要聊的------Agent 的安全机制。
01 · 矛盾的核心
Agent 产品的设计有个根本矛盾:
一边:让 AI 自动干,才有价值(你不想每步都点 Accept)
另一边:让 AI 自动干,才会闯祸(你不想它乱来)
怎么平衡?
答案其实就一个------
不是所有操作都一样危险。
查一下天气和删一个数据库,风险完全两个量级。
不该用同一套策略处理。
02 · 生活中最好的参照:机场安检
你想想机场安检是怎么设计的?
普通行李:直接过 X 光机
- 衣服、书、电子产品
- 上机器自动扫描
- 不需要人工干预
疑似违禁品:开箱查
- 液体、刀具、电池
- 安检员开箱人工确认
- 必须得到旅客点头
明确危险品:直接扣
- 枪支、爆炸物
- 不管你同不同意
- 直接拦住,不让上机
三级分类:自动放行 / 人工确认 / 绝对禁止。
这就是现代 Agent 产品的安全模型------操作按风险分级,不同级走不同路。
03 · 如果让你来做,你会怎么设计?
假设你要做一个"个人助理 Agent"。
它有 4 个工具:
- 📅 查日程
- 📧 发消息
- 🛒 下单
- 🗑️ 删邮件
你怎么控制它闯祸的风险?
方案 A:全自动(AutoGPT 风格)
AI 想做什么就做什么,不问你
结果:AI 以"整理邮箱"的名义删光了你所有邮件。
我朋友的 GitHub 就是这么没的。
方案 B:每步都问(老派 Cursor 风格)
AI 每次想调工具前:
→ 弹窗:"要不要执行 X?"
→ 等你点 Yes
结果 :AI 想查个日程都要问你,你一天点 50 次 Yes,烦到卸载。
方案 C:只拦危险操作(聪明做法)
查日程 → 安全,直接跑
发消息 → 危险,问你
下单 → 危险,问你
删邮件 → 危险,问你(可能还要二次确认)
结果:体验丝滑 + 关键处有闸。
这就是"双车道"模型。
04 · 四种主流安全策略
策略 A:全自动(AutoGPT 路线)
做法:AI 想干啥干啥,没有任何拦截。
谁在用:早期 AutoGPT、BabyAGI、部分实验性项目
优点:
- ✅ 真·自主,最接近"AI 员工"
- ✅ 不打断用户,体验流畅
缺点:
- ❌ 事故风险极高
- ❌ 用户无法预测 AI 下一步做什么
- ❌ 出了事没地方兜底
适合:沙箱环境、研究、完全不怕出错的场景
真实故事:AutoGPT 2023 年爆红时,Reddit 上有人帖子标题叫"AutoGPT 花了我 $50 让我 GPU 过热"。
策略 B:每步都问(老派 IDE 路线)
做法:AI 每次想调工具,都弹窗问用户。
谁在用:老版本 Cursor、早期 Copilot、多数企业级工具
优点:
- ✅ 绝对安全,每一步都经过人类
- ✅ 用户有完全控制权
缺点:
- ❌ 体验极差,AI 的"自主性"基本丧失
- ❌ 用户点到手软
- ❌ 违背 Agent 的核心价值
适合:极高危险场景(金融交易、线上生产环境)
策略 C:Allowlist 白名单(Claude Code 路线)
做法:用户提前声明"哪些工具 / 哪些目录 / 哪些命令"可以自动执行,其他都要问。
# Claude Code 的 settings
auto_approve:
- read_file: always
- write_file:
allowed_paths: ["src/", "tests/"]
- shell:
allowed_commands: ["npm test", "git status"]
谁在用:Claude Code、部分企业级 Agent
优点:
- ✅ 用户自己定风险边界
- ✅ 配好后体验顺畅
- ✅ 符合"principle of least privilege"
缺点:
- ❌ 需要用户前置配置(学习曲线)
- ❌ 新工具上线要重新配
- ❌ 白名单太宽等于没有
适合 :成熟用户、开发者、愿意花时间配置的人
策略 D:风险标签(Warp 路线)
做法:给每个工具打"是否只读"+"是否危险"两个标签,AI 框架自动决策。
rust
// Warp 的工具定义
ReadFiles → is_read_only: true, is_risky: false → 自动跑
SearchCode → is_read_only: true, is_risky: false → 自动跑
WriteFiles → is_read_only: false, is_risky: true → 要确认
ShellCommand → is_read_only: false, is_risky: true → 要确认
DeleteFiles → is_read_only: false, is_risky: true → 要确认(可能二次)
谁在用:Warp、部分新生代 Agent
优点:
- ✅ 不需要用户配置,开箱即用
- ✅ 安全操作并行跑,快
- ✅ 危险操作自动拦截
缺点:
- ❌ 标签是开发者定的,用户没法调
- ❌ 粒度粗(如"所有 shell 命令都危险",但
ls其实没事)
适合 :大多数普通用户(不想配置的人)
速查表
| 策略 | 生活类比 | 代表产品 | 安全性 | 流畅度 | 用户配置成本 |
|---|---|---|---|---|---|
| 全自动 | 小偷进家门没锁 | AutoGPT | 🔴 低 | 🟢 高 | 🟢 无 |
| 每步都问 | 每出门一次问门卫一次 | 老版 Cursor | 🟢 高 | 🔴 低 | 🟢 无 |
| Allowlist | 小区门禁 + 访客登记 | Claude Code | 🟢 高 | 🟡 中 | 🔴 高 |
| 风险标签 | 机场安检分级 | Warp | 🟢 高 | 🟢 高 | 🟢 无 |
05 · 两级风险标签的精妙之处
Warp 的"双车道"模型为什么体验好?
关键在两个标签的组合使用:
| is_read_only | is_risky | 含义 | 执行策略 |
|---|---|---|---|
| true | false | 纯读取 | ✅ 自动跑,可以并行 |
| false | false | 写入但不危险 | ✅ 自动跑,串行 |
| false | true | 有副作用的危险操作 | 🛑 弹窗确认 |
| true | true | 读取但有隐私风险 | 🛑 弹窗确认 |
关键洞察:
is_read_only = true→ AI 可以并发做多件事(同时读 5 个文件,秒出结果)is_risky = true→ AI 必须停下来等你点头
这样既有自动化的流畅感,又有危险动作的安全闸。
06 · 手把手:一次混合任务的执行流程
场景:你对助理说"帮我整理下周三的会议,把过期的删掉,给参会人发提醒邮件"。
这个任务混合了读 、写 、删 、发送多种操作。
看看安全机制怎么编排:
┌──────────────────────────────────────────────────────┐
│ 用户:整理下周三会议,过期的删掉,给参会人发提醒 │
└────────────────┬─────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────┐
│ AI 规划:拆分成 6 个动作 │
└────────────────┬─────────────────────────────────────┘
│
▼
╔══════════════════════════════════════════════════════╗
║ 第一阶段:并行执行(安全操作) ║
╠══════════════════════════════════════════════════════╣
║ ✓ 查日程(下周三) │ is_read_only ✓ 并行跑 ║
║ ✓ 查参会人联系方式 │ is_read_only ✓ 并行跑 ║
║ ✓ 查每场会议状态 │ is_read_only ✓ 并行跑 ║
╚══════════════════════════════════════════════════════╝
│
▼
┌──────────────────────────────────────────────────────┐
│ AI 分析结果: │
│ - 3 场会议(2 场有效,1 场已过期) │
│ - 参会人:张总、李总、王总 │
│ - 需要:删除 1 场过期、发 2 场提醒 │
└────────────────┬─────────────────────────────────────┘
│
▼
╔══════════════════════════════════════════════════════╗
║ 第二阶段:串行确认(危险操作) ║
╠══════════════════════════════════════════════════════╣
║ 🛑 删除会议(过期会议) │ is_risky ✓ 弹窗确认 ║
║ 用户:确认 → 执行 ║
║ ║
║ 🛑 发邮件(张总, "提醒")│ is_risky ✓ 弹窗确认 ║
║ 用户:确认 → 执行 ║
║ ║
║ 🛑 发邮件(李总, "提醒")│ is_risky ✓ 弹窗确认 ║
║ 用户:确认 → 执行 ║
╚══════════════════════════════════════════════════════╝
│
▼
┌──────────────────────────────────────────────────────┐
│ 完成:删除 1 场、发送 2 封邮件 │
└──────────────────────────────────────────────────────┘
看三个细节:
- 查询类操作并行:3 个查询同时跑,总耗时 = 最慢那个的时间
- 删除和发送都要确认:每个都弹窗
- 批量确认可合并:体验好的产品会让你"一键同意这 3 个操作"
这就是双车道 的威力------快的地方快,慢的地方慢。
07 · 你的场景该怎么选?
没有绝对的"最佳策略",看你的场景:
场景 1:给开发者用的编程 Agent
推荐:Allowlist(Claude Code 风格)或 风险标签(Warp 风格)
理由:开发者愿意配置,但也不想被频繁打断。给他们控制权。
场景 2:给普通用户的日常助理
推荐:风险标签(自动分级)
理由:普通用户不会去配 allowlist,但他们需要安全兜底。
场景 3:企业内部流程自动化
推荐:每步都问 + 记录审计
理由:合规第一,体验第二。每个操作都要可审计。
场景 4:沙箱 / 实验 / Demo
推荐:全自动
理由:本来就是玩,出错不怕。
08 · 我踩过的坑
坑 1:早期我相信"聪明的 AI 不会闯祸"
刚接触 AutoGPT 时,我以为 GPT-4 足够聪明不会做蠢事。
结果它花了我 $30 反复调用无效 API,凌晨把我账单刷爆。
教训 :AI 不知道"$30 很贵"这件事------上下文里没有"预算"这个概念。
必须有外部限制(额度、次数、确认),不能指望 AI 自己判断。
坑 2:Allowlist 配太宽等于没配
我用 Claude Code 时图省事,把 shell 工具设成 always 自动允许。
结果有次它跑了一个长循环脚本,把笔记本风扇拉到起飞。
教训 :Allowlist 一定要精确到命令粒度,不要给整个工具放行。
我现在的配置:
yaml
shell:
allowed_commands:
- "npm test" # 跑测试,安全
- "git status" # 查状态,安全
- "ls" # 列目录,安全
# 其他 shell 命令都要问
坑 3:二次确认很重要
发邮件、转账、删数据这类不可逆操作,光弹一次窗不够。
我见过有用户在 Confirm 弹窗上"手滑点了 Yes",然后给客户发了一封错误邮件。
好的设计 :不可逆操作要二次确认(如输入 "DELETE" 才能真删)。
Warp / Claude Code 对 rm -rf 这类都有额外拦截。
09 · 你能带走什么
读完这篇,你应该能回答的 3 个问题
✅ AI 安全的核心不是"全自动"或"全手动",是"分级"
✅ 四种主流策略:
- 全自动 → 沙箱/实验
- 每步问 → 高危场景
- Allowlist → 开发者/高级用户
- 风险标签 → 大众用户
✅ 双车道模型:安全操作自动跑,危险操作必须你点头
下次评估 Agent 产品时,问 5 个问题
- 它用什么安全策略?(全自动 / 每步问 / Allowlist / 风险标签)
- 危险操作有没有拦截?
- 有没有二次确认机制?
- 出错能不能回滚?
- 有没有操作日志可审计?
产品经理设计 AI 功能时
- 先分级:别把所有操作当一样危险
- 给用户控制权:让他们决定哪些自动、哪些问
- 不可逆操作要二次确认:发邮件、删数据、转账
- 记录一切:至少有日志能追溯
- 留"急刹车":用户能随时 Ctrl+C
开发者自己搭 Agent 时
- 起步用风险标签(两个 bool:is_read_only / is_risky)
- 添加 Allowlist 让高级用户自定义
- 不可逆操作加二次确认
- 接 日志系统 记录所有动作
- 设 成本/次数限制 防止失控
10 · 下一篇预告
05 · AI 的红绿灯 --- 长任务怎么管
AI 跑半小时的任务,谁来掌方向盘?
跑到一半你想看日志 / 想插话,怎么办?
代驾开到一半你想自己开------方向盘怎么交还?
对比 ChatGPT 同步 / LangChain 回调 / Claude Code Hook / Warp 状态机,告诉你长任务怎么设计。
一句话记忆锚点
🎯 危险操作必须你点头。像机场安检------普通行李直接过,危险品单独开箱。
路易乔布斯 © 2026 | AI Agent 通识课 · 第 4 篇 / 共 9 篇