30 分钟
实战专项

Function Calling 工具调用

直接上干货:让大模型调用外部工具,突破它本身的知识边界。

  • 理解 Function Calling 的概念和价值
  • 掌握工具定义格式
  • 理解工具调用的完整流程
  • 实现一个多工具 Agent 原型

Function Calling:让 AI 使用工具

大模型有两个天然局限:知识有截止日期;不能执行操作(查天气、搜网页、算数学、读数据库)。Function Calling 就是给 AI 一双手,让它能调用外部工具。

ℹ️生活类比

你去餐厅:你(AI)看菜单(工具列表),决定点什么(选择工具+参数),服务员(你的程序)把订单传给厨房(执行工具),厨房做好菜端上来(返回结果),你再享用(生成回答)。AI 不做饭,它只点菜。

定义工具

直接用 JSON Schema 描述工具的名称、功能和参数。

示例代码(可运行)

实现工具函数

示例代码(可运行)
🐍资深工程师经验谈

Function Calling 是 Agent 开发的核心机制。工具描述要极其清晰——AI 根据 description 决定何时调用;参数必须用 JSON Schema 严格定义;工具执行必须有超时和错误处理;永远不要用 eval 执行 AI 生成的代码——用沙箱或白名单。安全第一。

工具调用完整流程

示例代码(可运行)
💡真实环境中的流程

上面的 should_use_tool 是手写规则。真实环境里,你把 tools 定义和用户消息发给大模型,大模型返回 tool_calls,你的代码执行后把结果发回,大模型再生成最终回答。

找 Bug工具名和描述必须清晰具体,让 AI 知道何时调用。
{"name": "do_something", "description": "处理数据", "parameters": {}}

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

模型参数里的知识是「冻结」的:会过时、会幻觉、不知道你的私有数据。RAG 先从知识库检索出相关片段,再让模型「只依据这些片段」作答,相当于把记忆外挂到可随时更新的向量库。它不用重新训练、答案可溯源、知识可实时更新,是当前让大模型回答专业/私有问题最务实的方案。

挑战任务

多工具 Agent

简单+50 XP

给 Agent 添加第三个工具并测试

多工具 Agent
2 个测试用例

课后作业

扩展 ToolAgent

中等+20 XP

添加 get_stock_price 工具并让 Agent 能回答股价问题。

扩展 ToolAgent
1 个测试用例