【专栏一:AI基础07】-【一张图讲清楚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"]
}
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)