返回Agent 开发
PATH 01/LESSON 09/18 分钟

工具调用与确认边界

区分读取、写入、外部副作用与不可逆操作。

课程全目录 · 选择章节

本课学习目标

  • • 读取 — 通常可以自动执行
  • • 草稿 — 可预览、未提交
  • • 写入 — 需要范围说明
  • • 不可逆 — 必须明确确认

完成路径

阅读概念与案例 → 完成动手任务 → 勾选实践检查 → 回答检查点 → 保存完成记录。练习由你自行检查,不会假装成自动代码评分。

01 / 核心概念

工具把语言模型的输出变成真实世界中的动作。风险不取决于工具名称,而取决于动作影响范围、可逆性和用户预期。

确认应该成为工作流中的显式状态,而不是一句临时追加的提示词。

02 / 心智模型

01

读取

通常可以自动执行

02

草稿

可预览、未提交

03

写入

需要范围说明

04

不可逆

必须明确确认

03 / 代码骨架

TYPESCRIPT / CONCEPT
if (tool.impact === "external" || !tool.reversible) {
  return { status: "awaiting_confirmation", preview: tool.args };
}
return execute(tool);

这是解释结构的代码骨架,外部函数与数据需要在实际项目中实现。

04 / 贯穿案例

放进真实情境里看

助手准备把整理好的故障摘要发到团队频道。生成摘要只是草稿;点击发送会通知真实的人,属于另一个风险等级。

  1. 01

    按影响给动作分级

    把读取、私有草稿、内部写入、对外发布分开。判断依据是实际副作用,而不是工具函数名。

  2. 02

    冻结待确认内容

    审批卡片展示目标频道、消息全文与预计影响;确认后执行的应是同一份内容,不应悄悄重新生成。

  3. 03

    处理拒绝和过期

    拒绝后回到可编辑草稿;审批等待过久应失效,避免旧确认在上下文变化后仍触发动作。

05 / 动手做

用自己的产物检验理解

设计一张“发送摘要”确认卡:列出必须展示的字段、确认按钮的效果,以及拒绝后回到哪个状态。

完成时检查

  • 用户能看见目标和最终内容
  • 拒绝不会调用发送工具
  • 重复确认不会发送两次

自动保存在当前浏览器,不会同步到账户。

继续到代码练习

06 / 检查点

发送一封尚未预览的客户邮件前,Agent 应该怎么做?

延伸阅读 · 原始资料