前置知识: AI Agent

先提议后提交模式

4 minIntermediate

先提议后提交是自主 Agent 中人机交互的基本模式。Agent 提议一个动作;人类审查并批准或修改;Agent 执行批准的版本。这是 plan 权限模式 (Lesson 10) 的泛化。它适用于文件编辑、Shell 命令、网络请求和任何有副作用的操作。关键设计选择:提议和提交之间的边界在哪里...

先提议后提交 — HITL 模式

先提议后提交是自主 Agent 中人机交互的基本模式。Agent 提议一个动作;人审查并批准或修改;Agent 执行批准的版本。这是 plan 权限模式 (Lesson 10) 的泛化。它适用于文件编辑、Shell 命令、网络请求和任何有副作用的操作。关键设计选择:提议和提交之间的边界在哪里,以及什么触发人工审查?

类型: 学习 语言: Python (stdlib, 提议-提交门控) 前置条件: Phase 15 · 10 (权限模式), Phase 15 · 13 (成本治理器) 时间: ~30 分钟

问题

完全自主的 Agent 快速但危险。每个动作都需要人工批准的 Agent 安全但慢。先提议后提交找到中间地带:Agent 提议动作,人只审查有后果性的动作。

概念

提议-提交循环

Agent 提议动作 → 门控检查 → 自动批准(安全)或 人工审查(有风险)→ 执行

门控检查是关键组件。它决定哪些动作自动批准,哪些需要人工审查。

门控标准

什么触发人工审查?

  • 写操作 vs 读操作。 读取永远安全。写入需要审查。
  • 范围。 编辑测试文件 vs 编辑生产配置。
  • 可逆性。 创建新文件(可逆)vs 删除文件(不可逆)。
  • 外部影响。 本地操作 vs 网络请求。
  • 凭证使用。 不使用凭证 vs 使用生产 API 密钥。

批量提议

不是逐个审查每个动作,Agent 可以提议一批动作,人审查整个批次。这减少了审查疲劳但增加了单个审查的复杂性。

提议格式

好的提议格式包含:

  1. 意图:Agent 想做什么。
  2. 动作:具体操作。
  3. 影响:如果执行会发生什么。
  4. 替代方案:Agent 考虑但拒绝的其他选项。
  5. 回滚计划:如果出问题如何撤销。

何时跳过人工审查

  • 纯读取操作(文件读取、搜索)。
  • 沙箱内操作(临时容器中的测试运行)。
  • 幂等操作(重复执行产生相同结果)。
  • 低风险编辑(格式化、注释)。

何时强制人工审查

  • 生产环境写入。
  • 不可逆操作(删除、覆盖)。
  • 网络请求到外部服务。
  • 凭证使用。
  • 超出预定义范围的操作。

构建它

code/main.py 实现提议-提交门控。Agent 提议动作;门控根据风险级别自动批准或升级到人工审查。

运行:

python3 code/main.py

练习

  1. 运行 code/main.py。哪些动作自动批准?哪些需要人工审查?
  2. 修改门控标准,使所有网络请求都需要人工审查,即使是在沙箱内。这如何改变批准率?
  3. 实现批量提议模式:Agent 提议 5 个动作,人一次性审查。与逐个审查比较效率。
  4. 设计一个提议格式,使非技术用户也能理解 Agent 想做什么。

关键术语

术语含义
先提议后提交Agent 提议,人批准,然后执行
门控检查决定自动批准还是人工审查
批量提议一次审查多个动作
可逆性操作是否可以撤销
审查疲劳太多审查请求导致人不认真审查
幂等操作重复执行产生相同结果