【AI Agent通识九课】 04 · AI 的双车道 — 安全怎么保

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 封邮件                        │
└──────────────────────────────────────────────────────┘

看三个细节

  1. 查询类操作并行:3 个查询同时跑,总耗时 = 最慢那个的时间
  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 个问题

  1. 它用什么安全策略?(全自动 / 每步问 / Allowlist / 风险标签)
  2. 危险操作有没有拦截
  3. 有没有二次确认机制?
  4. 出错能不能回滚
  5. 有没有操作日志可审计?

产品经理设计 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 篇

相关推荐
这张生成的图像能检测吗2 小时前
(论文速读)CPC-DG:基于分类器预测一致性和领域泛化的旋转机械跨域故障诊断方法
人工智能·机器学习·故障诊断
向日葵花籽儿2 小时前
斯坦福 CS146S - Wk01 编码入门 LLM 和人工智能开发
人工智能
lbb 小魔仙2 小时前
Ubuntu 22.04 + Windows 本地部署 AI 大模型完全指南:Ollama + Python 调用实战(附国内加速配置)
人工智能·windows·python·ubuntu
IT老兵20253 小时前
nvidia nemo-toolkit框架应用问题汇总
人工智能·python·机器学习·nemo
shamalee3 小时前
2026高效会议纪要:Gemini3.1Pro一键搞定
人工智能
qq_160144873 小时前
零基础两个月后,我拿到了AI应用方向的offer,低门槛转行真实路径
人工智能
alwaysrun3 小时前
Agentic AI与思维链和自我反思简介
人工智能·agent·思维链·思维树·自我反思
西洼工作室3 小时前
安全认证全解析:从Basic到OAuth
安全·全栈·认证授权
geneculture3 小时前
亚符号:人机互助中被忽视的根基——一种认知哲学分析
人工智能·融智学的重要应用·人机间性·符号与规则·亚符号与权重·融智时代杂志