第一次工具调用
ch00 已经能让模型回答问题,但有些答案需要从外部取得。例如“现在几点了”,就需要读取当前时钟。
如果想获取全套课程资料,请关注微信公众号 「AI面包君」,回复 「课程资料」 即可领取。
1. 用工具查到当前时间
ch00 已经能让模型回答问题,但有些答案需要从外部取得。例如“现在几点了”,就需要读取当前时钟。
模型仅凭已有训练知识,不能知道这台电脑此刻的时间。我们可以提供一个读取系统时间的函数,让程序在需要时执行。
这个过程叫工具调用,也常写作 tool calling 或 function calling:模型提出要调用哪个工具,程序执行后把结果交回给它。
这一章就用查询时间的例子,走完一次“提出调用 → 执行函数 → 根据结果回答”的过程。
整个流程长这样(看不懂没关系,跑完代码再回来看就懂了):
你:"现在几点?"
│
▼
+----------------------------------+
| 第 1 次请求 LLM(带工具清单) |
+----------------------------------+
│ LLM 决定:"我要调 get_current_time"
▼
+----------------------------------+
| 我们的 Python 真的去执行那个函数 |
| → 返回 "2026-05-16 14:32" |
+----------------------------------+
│
▼
+----------------------------------+
| 第 2 次请求 LLM(带工具结果) |
+----------------------------------+
│
▼
你:(看到)"现在是 2026 年 5 月 16 日 14:32。"
本章只处理一次工具调用,再请求一次最终回答。先看清这两次模型请求分别做什么,ch02 再把它扩展成能反复调用工具的循环。
<!-- bread-visual:start -->
<!-- bread-visual:end -->图解: 例子:回答“现在几点了?”需要两次模型请求。 工具清单是说明书,函数是执行者;tool_call_id 让结果与请求配对。
2. 跑起来,观察工具调用记录
跑命令
cd ch01_one_tool
python main.py
用 Anaconda 环境的同学:把
python换成D:\anaconda3\envs\xxxxx\python.exe。
预期输出
[工具调用] get_current_time({})
[工具返回] 2026-05-16 14:32:08
[最终回答] 现在是 2026 年 5 月 16 日 14:32。
重点是中间那两行 [工具调用] 和 [工具返回]——它们证明了 AI 真的让我们的 Python 去查了系统时间,不是脑补的。
如果没有这两行,说明本次模型直接作答了,不能据此确认它读取了系统时间。可以检查工具描述,并使用更明确的提问;文末也安排了修改描述的对照练习。

<!-- bread-practice:start -->
实操画面对照

实操运行记录: 实际执行课程副本的
main.py;展示原始输出第 2–3 行。工具请求与系统返回的真实时间。这是实测日志的排版图,并非 Windows 原生终端截图;模型回复可能随运行变化。
试读到这里 · 后续内容已封存
关注公众号,继续把这章学完
在「AI面包君」发送关键词「学习AI」拿到口令。验证一次,这个浏览器就能继续阅读全部课程。