Tool Use (工具调用) 最佳实践
不要一股脑把 100 个 API 全扔给 LLM。
5分钟
2025-12-26
API开发集成Tool
Tool Use (工具调用) 最佳实践
Tool Use (或 Function Calling) 是 Agent 的核心。本文不讲 API 语法(请参考 Function Calling 教程),而是讲设计模式:如何设计好用的工具?如何让模型更聪明地使用工具?
1. 原则:少即是多
不要一股脑把 100 个 API 全扔给 LLM。
- Context 限制: 工具定义也要占 Token。
- 干扰: 工具越多,模型越容易选错,或者产生幻觉。
- 建议: 如果工具很多,请使用路由 Agent。先判断用户意图是“订票”还是“点外卖”,然后只加载对应的工具集。
2. 设计优秀的 Tool Definition
LLM 只能通过你写的 JSON Schema 和 Description 来理解工具。
- Name: 必须清晰。
get_weather优于func_1。 - Description: 这是最重要的!
- Bad: "Get data."
- Good: "获取指定城市的实时天气数据。如果用户没有指定城市,请先询问用户。返回结果包含温度、湿度和风向。"
- Parameters: 尽量用 Enum 限制参数范围,减少模型瞎填的可能性。
3. 错误处理与反馈循环
Agent 是一个循环。
- Model 决定调用
calculator(a=1, b=0, op='/')。 - 代码执行报错
ZeroDivisionError。 - 关键点: 不要直接挂掉!捕获这个 Error,把它作为 Observation 反馈给 Model。
- System: "工具执行失败,错误信息:除数不能为零。"
- Model 看到错误后,会自我修正:"对不起,我算错了..."
最后更新:2025-12