CHAO AI LEARNING PATH

AI 知识库

从基础认知到真实项目,把零散知识整理成可以持续学习的路径。 继续学习 一次工具调用背后的消息链
22学习模块 119已上线课程 13%当前章节
LEARNING MODULES

选择学习方向

让 AI 会调用工具一次工具调用背后的消息链

让 AI 会调用工具

一次工具调用背后的消息链

上一节我们讲了:Agent 不只是会聊天,还可以调用搜索、数据库、邮箱、日历等工具完成任务。但一次工具调用不是 AI 自己打开工具,而是 AI、程序和工具之间的接力。

一句话回答

工具调用不是 AI 自己偷偷去操作系统,而是用户、AI、程序和工具之间的一串消息接力。

01 先看完整接力 message relay
01

用户

帮我查一下订单 A10086 有没有发货。

02

AI

判断:这个问题需要查询订单系统。

03

工具调用

调用 get_order_details,传入订单号。

04

程序

检查参数和权限,真正访问订单 API。

05

工具结果

订单状态:已支付,已发货。

06

AI

把原始结果组织成用户能读懂的回答。

用户提需求 → AI 决定调用工具 → 程序执行工具 → 结果返回 AI → AI 继续回答。

02 用订单 A10086 拆开看 order lookup

用户说

帮我查一下订单 A10086 有没有发货。

这句话不是让 AI 解释“发货”是什么意思,而是要它拿到一条真实订单状态。

AI 发起工具请求

toolget_order_details order_idA10086 purpose查询订单发货状态

程序返回结果

order_idA10086 payment_statuspaid shipping_statusshipped
03 背后其实有 5 类消息 five messages
user message 01 用户任务

用户先提出目标:查订单 A10086 有没有发货。

model decision 02 AI 判断

AI 发现自己没有实时订单状态,需要使用外部工具。

runtime action 03 程序执行

程序收到工具调用请求,校验参数和权限后访问订单系统。

tool result 04 结果返回

订单系统返回真实数据,结果重新进入 AI 当前上下文。

final answer 05 继续回答

AI 根据工具结果,告诉用户订单已经发货。

04 为什么结果还要返回给 AI? data to answer

原始数据

shipping_status = shipped

用户答案

订单 A10086 已经发货,可以继续等待物流更新。

工具负责拿到结果,AI 负责理解结果,再把结果讲成用户能看懂的话。

05 一次任务可能调用多个工具 multi tool loop
查订单 发现物流异常 查物流 创建工单 告知用户

Agent 不一定一开始就知道所有步骤

它常常是根据上一步工具结果继续判断:任务完成了吗?如果没有,下一步需要查什么、调什么工具、是否要创建工单。

06 调试 Agent,要顺着消息链查 debug checklist
用户输入

目标说清楚了吗?订单号、用户身份、限制条件有没有缺?

模型判断

AI 是应该直接回答,还是需要先调用工具?

工具选择

工具说明是否清楚?多个工具是否功能太像?

参数

订单号、时间范围、用户 ID 这些参数是否正确?

工具执行

程序有没有报错?权限检查有没有通过?

返回结果

工具返回的是空、冲突、错误,还是可用结果?

继续判断

AI 是否理解了工具结果,并判断任务是否完成?

最终输出

回答有没有把真实结果讲成人能听懂的话?

不要只问“AI 为什么又错了”,而是定位到底是哪一段消息链出了问题。

07 AI 请求调用,不等于系统一定执行 permission gate
AI 请求退款 检查用户身份 检查退款金额 检查工具权限 需要人工确认 真正执行

最终权限应该在系统手里

AI 可以提出“我需要调用 refund_order”,但程序要检查身份、金额、权限和人工确认,再决定是否真正执行。

08 三个角色分清楚 who does what

AI

负责理解、判断、决定下一步。

程序

负责调度工具、检查权限、处理执行过程。

工具

负责查询真实信息,或者完成真实操作。

本节练习

把一次订单查询写成消息链

用订单 A10086 练习:AI 调哪个工具、传什么参数、程序返回什么、AI 最后怎么回答。

任务用户要查询订单是否发货。 工具get_order_details。 参数order_id = A10086。 回答根据 shipping_status 组织成自然语言。

本节小结

  • 一次工具调用是用户、AI、程序和工具之间的消息接力。
  • AI 发起工具调用,不等于工具一定会执行,程序仍然要检查权限和参数。
  • 工具结果需要回到 AI 上下文,AI 才能继续理解和回答。
  • 复杂 Agent 往往会根据上一步工具结果继续调用下一个工具。