CHAO AI LEARNING PATH

AI 知识库

从基础认知到真实项目,把零散知识整理成可以持续学习的路径。 继续学习 工具说明写不好,AI 就会用错
22学习模块 119已上线课程 19%当前章节
LEARNING MODULES

选择学习方向

让 AI 会调用工具工具说明写不好,AI 就会用错

让 AI 会调用工具

工具说明写不好,AI 就会用错

前面我们讲了:Agent 的关键能力,是根据任务选择并调用工具。但给 AI 接上工具,并不代表它就一定会正确使用。很多时候问题不在模型,而在工具说明没有写清楚。

一句话回答

工具说明,就是写给 AI 看的使用说明书。它要让 AI 明白:这个工具做什么、什么时候使用、什么时候不要使用、需要什么参数、返回什么结果。

01 AI 并不是天生认识你的工具 tool awareness

用户问题

帮我看看张先生昨天买的设备发货没有。

我们一看就知道应该去查订单,但 AI 需要根据每个工具的名称和说明自己判断。

search_customer search_order search_product
用户提出任务 AI 理解用户想干什么 查看有哪些工具 阅读工具说明 选择最合适的工具 调用
02 最差的工具说明是什么样? bad vs good
坏说明

用于查询信息

AI 不知道查询订单、客户、产品、物流还是库存,基本等于没说。

好说明

查询已有订单详情

用于查询已经存在的客户订单,可以根据订单号查询商品、金额、付款状态和发货状态。该工具只负责查询,不会修改订单。

好说明会同时告诉 AI:它能干什么,也不能干什么。

03 好说明至少讲清楚三件事 three basics
01

这个工具是干什么的?

查询已有订单的详细信息。

02

什么时候使用?

用户询问某个订单的付款状态、金额或发货状态时使用。

03

什么时候不要使用?

用户只是询问某个产品的价格时,不要使用这个工具,应查询产品信息。

好的工具说明,本质上是在告诉 AI:什么时候用我,什么时候别用我。

04 参数也必须让 AI 看得懂 parameter clarity

id

太模糊:不知道是用户 ID、订单 ID、产品 ID 还是物流 ID。

order_id

清楚:需要查询的订单编号,例如 ORDER-20260813-001。

工具选对了,不代表一定调用正确;参数同样要定义清楚。

05 退款工具怎么写才不危险? refund example

create_refund_request

用于为已经付款的订单创建退款申请。当用户明确要求退款,并且已经获得订单号时使用。

该工具只提交退款申请,不会直接完成退款。如果没有订单号,应先向用户询问。

作用为已经付款的订单创建退款申请。 使用条件用户明确提出退款,并且已经获得订单编号。 边界只创建申请,不会直接完成退款。 资料不足缺少订单号时,先向用户询问。
06 查询和执行一定要分开 read and write
get_customer

查询客户资料

用户只是想看张先生的联系电话时,应该使用查询工具。

update_customer

修改客户资料

修改工具会产生真实操作,不能因为都和客户有关就随便调用。

Search / Get

查询

Create

创建

Update

修改

Delete

删除

Send

发送

修改、删除、付款、发送这一类工具,边界一定要比查询工具写得更清楚。

07 工具越多,越容易选错 more tools, more ambiguity
查询客户 查询订单 查询产品 查询物流 查询库存 查询退款 创建退款 修改订单 取消订单 创建工单 发送邮件

如果所有说明都是“用于查询相关信息”,AI 自然容易选错。工具越多,工具说明越重要。

08 不要设计一堆长得一样的工具 one clear job

容易困惑

search_order find_order query_order

如果三个工具实际上都在查询订单,AI 当然会困惑。

职责清楚

search_orders根据客户、时间等条件搜索多个订单。 get_order_details已知订单号,查询一个订单的完整详情。
09 工具返回的数据也要清楚 tool result
不清楚

status = 3

payment = 1,shipping = 2。如果没有解释,AI 仍然可能判断错误。

更清楚

订单状态:已发货

付款状态、订单状态、物流状态都用人和 AI 都能理解的字段表达。

选择正确工具 填写正确参数 工具执行 返回清晰结果 AI 理解结果 继续完成任务
10 工具失败,也要告诉 AI 为什么 recoverable error
调用状态

失败

原因

没有找到该订单。

建议

检查订单编号是否正确。

不要只返回 Error。告诉 AI 失败原因和建议,它才知道下一步该请用户补充信息,而不是自己猜。

11 工具说明不能代替权限控制 instruction vs control

工具说明帮助 AI 做判断,权限系统负责真正控制能不能执行

工具说明写“只有管理员才能删除订单”,只是告诉 AI 不要乱用。真正执行时,系统仍然要检查用户身份和删除权限。

12 一个简单的工具说明模板 tool spec template
工具名称get_order_details 作用查询已经存在的订单详情。 什么时候使用用户询问具体订单的商品、金额、付款状态或发货状态时使用。 什么时候不要使用用户只是询问产品价格时不要使用。 需要什么参数order_id:订单编号。 返回什么商品、金额、付款状态、发货状态。 限制只能查询,不能修改订单。
13 工具说明其实也是一种 Prompt agent quality
模型 工具设计 工具说明 参数设计 返回结果 权限控制

一个 Agent 好不好用,不完全取决于大模型有多聪明,而是由模型、工具设计、说明、参数、返回结果和权限控制共同决定。

本节练习

重写两个工具说明

把 search_order 和 create_refund_request 写成可执行的工具说明,尤其要写清楚什么时候不要使用。

作用这个工具到底做什么? 场景什么时候应该调用? 参数需要哪些明确字段? 边界不能做什么,缺资料怎么办?

本节小结

  • Agent 并不是天生认识你的工具,它要靠工具名称、说明、参数和当前任务做判断。
  • 好的工具说明至少要写清楚做什么、什么时候用、什么时候不用。
  • 参数名和返回结果也要清楚,否则选对工具以后仍然可能调用失败。
  • 工具说明帮助 AI 判断,权限系统负责真正控制能不能执行。