返回Agent 开发
PATH 01/LESSON 05/25 分钟

工具接口与参数校验

为一个只读搜索工具写出输入、输出和错误类型,并测试越权、缺参、空结果与超时。

课程全目录 · 选择章节

本课学习目标

  • • 理解 — 工具是模型和业务系统之间的窄接口。每个工具只做一件事,明确参数、返回结果、超时与副作用。模型提出调用建议,程序验证权限与参数后才执行;工具描述必须解释何时使用以及何时不能使用。
  • • 应用 — 搜索订单工具只允许读取当前用户的订单。即使模型传入其他用户的 ID,服务端也应使用登录身份约束查询,而不是相信模型提供的 owner 字段。
  • • 验证 — 为一个只读搜索工具写出输入、输出和错误类型,并测试越权、缺参、空结果与超时。

完成路径

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

01 / 核心概念

工具是模型和业务系统之间的窄接口。每个工具只做一件事,明确参数、返回结果、超时与副作用。模型提出调用建议,程序验证权限与参数后才执行;工具描述必须解释何时使用以及何时不能使用。

搜索订单工具只允许读取当前用户的订单。即使模型传入其他用户的 ID,服务端也应使用登录身份约束查询,而不是相信模型提供的 owner 字段。

工具能被模型调用不代表模型拥有执行权限。不要把 API 密钥放进提示词,也不要向模型暴露不必要的敏感返回字段。

02 / 心智模型

01

理解

工具是模型和业务系统之间的窄接口。每个工具只做一件事,明确参数、返回结果、超时与副作用。模型提出调用建议,程序验证权限与参数后才执行;工具描述必须解释何时使用以及何时不能使用。

02

应用

搜索订单工具只允许读取当前用户的订单。即使模型传入其他用户的 ID,服务端也应使用登录身份约束查询,而不是相信模型提供的 owner 字段。

03

验证

为一个只读搜索工具写出输入、输出和错误类型,并测试越权、缺参、空结果与超时。

03 / 代码骨架

TYPESCRIPT / CONCEPT
type SearchInput = { query: string; limit: number };
const validLimit = (n: number) => Number.isInteger(n) && n > 0 && n <= 20;

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

04 / 贯穿案例

放进真实情境里看

搜索订单工具只允许读取当前用户的订单。即使模型传入其他用户的 ID,服务端也应使用登录身份约束查询,而不是相信模型提供的 owner 字段。

  1. 01

    分析边界

    工具是模型和业务系统之间的窄接口。每个工具只做一件事,明确参数、返回结果、超时与副作用。模型提出调用建议,程序验证权限与参数后才执行;工具描述必须解释何时使用以及何时不能使用。

  2. 02

    观察具体过程

    搜索订单工具只允许读取当前用户的订单。即使模型传入其他用户的 ID,服务端也应使用登录身份约束查询,而不是相信模型提供的 owner 字段。

  3. 03

    验证失败路径

    工具能被模型调用不代表模型拥有执行权限。不要把 API 密钥放进提示词,也不要向模型暴露不必要的敏感返回字段。

05 / 动手做

用自己的产物检验理解

为一个只读搜索工具写出输入、输出和错误类型,并测试越权、缺参、空结果与超时。

完成时检查

  • 提交可阅读的实现或流程图,并注明输入和输出。
  • 至少覆盖一个成功案例与一个失败案例。
  • 解释本课的边界,写出仍未解决的一项限制。

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

继续到代码练习

06 / 检查点

订单工具收到其他用户的 ownerId,哪个检查不可省略?

延伸阅读 · 原始资料