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 是一个循环。

  1. Model 决定调用 calculator(a=1, b=0, op='/')
  2. 代码执行报错 ZeroDivisionError
  3. 关键点: 不要直接挂掉!捕获这个 Error,把它作为 Observation 反馈给 Model。
    • System: "工具执行失败,错误信息:除数不能为零。"
  4. Model 看到错误后,会自我修正:"对不起,我算错了..."

最后更新:2025-12

AI导航助手

Powered by DeepSeek

你好!我是AI导航助手,由DeepSeek驱动。

我可以帮你: • 推荐适合你的AI模型 • 解答AI相关问题 • 直接带你跳转到相关页面

试试点击下方问题,或直接输入你的问题!

快捷提问:

哪个AI模型最好?有免费的AI吗?写代码用哪个?API怎么接入?

点击按钮可直接跳转到相关页面