跳转到主内容
极星编程网:以代码为星,赴技术山海!

【专栏一:AI基础07】-【一张图讲清楚Tool Schema该怎么写】

文章目录 前言 Tool Schema 到底是什么?

一、Tool Schema 到底是什么?

二、为什么 Tool Schema 很重要?

三、Tool Schema 和 API 文档有什么区别?

API 文档更偏向开发者 Tool Schema 更偏向模型理解 四、一个简单但准确的定义 五、Tool Schema 一般长什么样?

六、几个更真实一点的案例 案例一:电商客服系统里的“订单查询工具” 业务场景 这个工具真正要做的事 可能的 Tool Schema 案例二:企业内部办公助手里的“请假余额查询工具” 业务场景 工具真正要做的事 可能的 Tool Schema 前言

Tool Schema 到底是什么?

很多人在学习 Function Call 或工具调用时,都会遇到一个绕不开的概念: Tool Schema 但只看这个名字,确实会有点抽象。

它到底是什么?

它和 API 文档有什么区别?

它为什么会直接影响大模型选工具、填参数,甚至影响整个调用效果?

这篇内容,我想把 Tool Schema 彻底讲清楚。

一、Tool Schema 到底是什么?

你可以先把它理解成: 系统写给大模型的一份“工具使用说明书” 这份说明书的目的,不是给人看,而是给模型看。

它主要解决两个问题: 这个工具是干什么的 调用这个工具时,要传什么参数,参数怎么填 所以,Tool Schema 本质上就是: 一份结构化的工具定义 它通常会包含这些内容: 工具名 工具功能描述 参数列表 参数类型 参数含义说明 必填字段 有时还会包括枚举值、格式约束、默认值等 二、为什么 Tool Schema 很重要?

因为大模型不会直接去看你的后端代码,也不会自动理解你的数据库字段。

它真正能“看到”的,通常就是系统提供给它的 Tool Schema。

也就是说: 模型怎么理解一个工具,主要靠的不是代码本身,而是 Tool Schema。

如果 Schema 写得清楚,模型更容易: 选对工具 理解工具边界 把参数填对 稳定生成调用意图 如果 Schema 写得很差,模型就容易: 选错工具 明明有工具却不用 参数乱填 工具调用不稳定 所以 Tool Schema 不只是程序接口定义,它还是: 模型理解工具能力的入口 三、Tool Schema 和 API 文档有什么区别?

很多人会把 Tool Schema 和 API 文档混在一起。

它们确实很像,但关注点并不完全一样。

API 文档更偏向开发者 API 文档通常重点描述: 接口地址 请求方式 状态码 返回字段 鉴权方式 错误码说明 它更偏工程实现。

Tool Schema 更偏向模型理解 Tool Schema 更关注: 这个工具适合解决什么问题 模型什么时候该用它 调用它需要哪些参数 参数应该怎么填 它和别的工具有什么区别 所以可以这样理解: API 文档偏工程实现,Tool Schema 偏模型理解。

四、一个简单但准确的定义 如果让我用一句最简洁的话解释 Tool Schema,我会这样说: Tool Schema,就是系统提供给大模型的结构化工具说明,用来告诉模型“这个工具能做什么,以及该怎么调用它”。

五、Tool Schema 一般长什么样?

最常见的 Tool Schema,大致会长这样:

{

"name": "get_weather", "description": "查询指定城市在指定日期的天气情况", "parameters": { "city": { "type": "string", "description": "要查询天气的城市名称,例如成都" }, "date": { "type": "string", "description": "要查询的日期,例如今天、明天或具体日期" } }, "required": ["city", "date"] }

六、几个更真实一点的案例 下面我不再只讲天气 demo,而是给你几个更接近真实业务的场景。

案例一:电商客服系统里的“订单查询工具” 业务场景 用户问: 我上周买的耳机现在到哪了?

如果系统只靠模型自己答,它根本不知道真实订单状态。

所以需要一个工具去查订单系统。

这个工具真正要做的事 不是“查所有订单数据”,而是: 根据订单号查询订单当前状态、物流节点和预计送达时间。

可能的 Tool Schema

{

"name": "query_order_status", "description": "查询指定订单的当前状态、物流进度和预计送达时间", "parameters": { "order_id": { "type": "string", "description": "订单编号,例如 A202503180001" } }, "required": ["order_id"] }

案例二:企业内部办公助手里的“请假余额查询工具” 业务场景 用户问: 我今年还有多少年假?

这个问题表面很简单,但模型自己并不知道员工的真实人事数据。

所以必须调用 HR 系统。

工具真正要做的事 去 HR 系统查询: 年假总额 已用天数 剩余天数 可能的 Tool Schema

{

"name": "get_leave_balance", "description": "查询员工当前可用的年假、调休和病假余额", "parameters": { "employee_id": { "type": "string", "description": "员工唯一标识,例如工号 E10234" }, "leave_type": { "type": "string", "description": "请假类型,可选值包括 annual_leave、compensatory_leave、sick_leave" } }, "required": ["employee_id", "leave_type"] }

相关文章