Tool Description
Tool Description 是给 LLM 看的工具用途说明。它不是给人看的 API 文档,而是模型选择工具的依据。描述质量直接影响工具选择准确率。
#type / concept
#status / evergreen
#tech / ai
[!info] related notes
- 所属 MOC: Tool Calling Engineering MOC
- 相关: Function Schema, Tool Selection
Tool Description
一句话定义
Tool Description 是给 LLM 看的工具用途说明。Anthropic 建议”像给初级开发者写文档一样写工具描述”。描述越清晰,模型选择工具的准确率越高。
核心原理
好的描述 vs 差的描述
差: "查询数据"
好: "查询指定时间范围内的销售数据,返回每日销售额和订单数"
差: "搜索"
好: "在知识库中搜索与查询相关的文档片段,返回最相关的 top-k 结果"
差: "发送邮件"
好: "向指定收件人发送邮件。需要提供收件人、主题和正文。发送前请确认内容"
描述的组成
tool = {
"name": "query_sales_data",
"description": "查询指定时间范围内的销售数据。返回每日销售额和订单数。"
"用于回答关于销售趋势的问题。"
"参数 start_date 和 end_date 格式为 YYYY-MM-DD。",
"parameters": { ... }
}
描述中应该包含什么
| 要素 | 例子 | 重要性 |
|---|---|---|
| 用途 | ”查询销售数据” | 必须 |
| 返回值 | ”返回每日销售额” | 推荐 |
| 使用场景 | ”用于分析销售趋势” | 推荐 |
| 参数说明 | ”格式为 YYYY-MM-DD” | 推荐 |
| 限制 | ”最多返回 30 天数据” | 可选 |
常见坑
- 描述太短: “查询”两个字
- 描述太长: 500 字的描述占用太多 token
- 不说明返回值: LLM 不知道工具会返回什么
- 描述和实际不符: 描述说返回列表但实际返回字典