Skip to content

4.2 松开缰绳还是拉紧——自主性与人类控制

小李的 Agent 越来越能干了。但有一次,他让 Agent "优化一下数据库查询",Agent 直接删了一张他认为「没用」的表。

数据没了。

从那以后,小李开始认真思考一个问题:什么时候该让 Agent 自己干,什么时候必须管住它?


自主性不是越强越好

还记得 1.3 节 的自主性光谱吗?Level 5 听起来很酷,但现实中——

自主性越高 → 能力越强 → 风险越大

关键不是「最大化自主性」,而是在合适的时间给合适的自主性


HITL——人类在环

HITL(Human-In-The-Loop) 是控制 Agent 自主性的核心策略。它的核心思想:人类不是 Agent 的障碍,而是 Agent 的安全带。

五种 HITL 模式

模式怎么做适合场景
审批工作流Agent 执行前需人类批准修改代码、提交 PR
中断-恢复随时暂停,审核后继续长时间运行的任务
检查点审查关键节点自动暂停汇报多步骤流程
反馈循环人类纠正后 Agent 继续创意性任务
最终审核Agent 完成后人类验收所有任务

小李的「删表事件」,如果有审批工作流就不会发生——Agent 在删除表之前需要小李确认。


权限金字塔

把 Agent 的操作分成四个层级,越往上越严格:

🔴 禁止层 —— 删除数据、发送外部、操作生产
🟠 审批层 —— 部署、提交、大规模重构
🔵 确认层 —— 修改代码、安装依赖、创建文件
🟢 自主层 —— 搜索、分析、生成建议

具体到小李的场景:

操作层级原因
搜索代码中的 Bug🟢 自主只读,无风险
修改源代码🔵 确认需要人工审核改动
运行测试🟢 自主不影响代码
安装新依赖🔵 确认可能引入安全问题
删除文件🟠 审批不可逆操作
提交到 Git🟠 审批影响团队代码库
操作生产数据库🔴 禁止数据安全

动态自主性——根据场景调整

自主性不是固定不变的。同一个 Agent,在不同场景下应该有不同的自主级别

场景推荐自主性原因
简单查询Level 4低风险,高效率
代码修改Level 2-3需要人工审核改动
生产部署Level 1必须人工审批
数据删除Level 0禁止自主操作

小李总结了经验:对 Agent 的信任,要像对新人一样——先观察,再放权,关键操作永远不放。


信任建立机制

Agent 的自主性应该随着信任增长而提升:

信任级别自主性条件
新用户Level 1首次使用,不信任
初次使用Level 2Agent 建议需确认
逐渐熟悉Level 3常规任务可自主
深度信任Level 4复杂任务可自主,异常汇报
团队信任Level 5关键操作仍需审批

信任怎么建立? 五个机制:

  1. 透明执行:Agent 的每一步都可见可追溯
  2. 可预测性:Agent 的行为符合预期,没有惊喜
  3. 可控性:随时可以暂停或终止
  4. 可问责:出问题能定位到具体步骤
  5. 可回滚:错误操作可以撤销

防灾措施

即使有了权限体系,也要有灾后恢复机制

措施说明
权限沙箱Agent 只能访问被授权的资源
操作日志每一步操作都有记录,可回溯
回滚机制Git 版本控制让代码改动可撤销
审计追踪定期审查 Agent 的操作日志
熔断器连续失败 N 次后自动停止

小李的教训

那个「删表事件」之后,小李做了三件事:1) 把数据库操作设为禁止层;2) 给 Agent 配了只读数据库连接;3) 每次 Agent 执行前都跑一遍 Git 提交,出问题直接回滚。


各工具的自主性控制

工具控制方式特点
Claude Code配置文件设置权限(auto/ask/forbid)精细控制,可按操作类型设定
CursorChat/Agent/Yolo 三模式切换简单直观,模式切换
WindsurfCascade Write/Chat/Turbo 模式场景化控制
CopilotPlan 自主 / 执行需确认保守策略,安全性高

本节核心要点

  • 自主性不是越强越好,关键是在合适的时间给合适的自主性
  • HITL 五种模式:审批、中断、检查点、反馈、最终审核
  • 权限金字塔四层:禁止→审批→确认→自主
  • 动态自主性:根据场景和信任级别调整
  • 灾后恢复不可或缺:沙箱、日志、回滚、审计、熔断

思考题:你目前使用的 AI 编程工具,它的自主性控制做得怎么样?有没有哪个操作你觉得应该更严格或更宽松?


下一节预告:Agent 干完了活,但它做得对不对?好不好?评估与测试——判断 Agent 质量的方法。

下一节:Agent 靠谱吗?→