3.1 什么是工具
介绍工具使用的核心思想、简单工具执行流程、实际应用示例以及多工具协作。
3.1 什么是工具
核心思想:工具即函数,模型自主决策 关键在于,模型拥有自主决策权。它不再是被动地根据内部知识库生成答案,而是能主动判断:在当前情境下,是否需要、以及应该调用哪个工具来完成任务。 就像人类借助锤子、扳手等工具能完成徒手无法做到的事情一样,语言模型通过调用“函数工具”,也能突破自身训练数据和能力的限制,变得无比强大。
一、简单工具执行流程 (Simple Tool Execution)
例子:工具使用的运作流程 以“现在几点?”为例,清晰展示了工具使用的完整闭环:
- 输入提示 (Input Prompt): 用户提问 “What time is it?”。
- 模型决策 (Model Decision): LLM 意识到自己无法提供实时时间,于是决定调用名为 get_current_time() 的工具。
- 工具执行 (Tool Execution): 系统执行该函数,返回精确的时间值,例如 15:20:45。
- 结果反馈 (Result Feedback): 这个时间值被作为新的上下文(对话历史)回传给 LLM。
- 最终输出 (Final Output): LLM 结合这个新信息,生成自然语言回复:“It's 3:20pm.”
整个过程的关键点:
- 工具是函数:get_current_time() 是一段 Python 代码,它负责与系统时钟交互并返回字符串。
- 模型自主选择:模型自行决定何时、何地调用哪个工具。
- 动态上下文:工具返回的结果会融入对话历史,供模型后续推理使用。
何时调用,何时不调用?
工具使用的一个重要特性是条件性调用。 模型并非对所有问题都盲目调用工具,而是能智能判断。
- 调用工具的例子:当被问及“现在几点?”,模型知道需要实时数据,因此调用 get_current_time()。
- 不调用工具的例子:当被问及“绿茶含多少咖啡因?”,模型可以基于其内部知识库直接回答:“Green tea typically contains 25-50 mg of caffeine per cup.”,无需调用任何工具。 这体现了模型的“智能”——它能区分哪些信息是静态的(可内化),哪些是动态的(需外求)。
二、工具使用的实际应用示例
| Prompt (提示) | Tool (工具) | Output (输出) |
|---|---|---|
| “你能找到加州山景城附近的一些意大利餐厅吗?” | web_search(query="restaurants near Mountain View, CA") | “Spaghetti City 是一家位于山景城的意大利餐厅...” |
| “给我看看买了白色太阳镜的顾客。” | query_database(table="sales", product="sunglasses", color="white") | “28位顾客购买了白色太阳镜。他们是...” |
| “如果我存入500美元,年利率5%,10年后我会得到多少钱?” | interest_calc(principal=500, interest_rate=5, years=10) | “$814.45” |
三、多工具协作
对于更复杂的请求,模型可以串联调用多个工具,形成工作流。 案例:日历助理
- 用户请求: “请在周四我的日历中找一个空闲时段,并与Alice预约。”
- 提供的工具集:
- check_calendar(): 查询日历,返回空闲时段。
- make_appointment(): 创建预约。
- delete_appointment(): 取消预约。
- 模型执行流程:
- 首先调用 check_calendar(),获得结果:“Thursday, 3pm; Thursday, 4pm; Thursday, 6pm”。
- 基于返回的信息,模型决定选择“3pm”这个时段。
- 接着调用 make_appointment(time="3pm", with="Alice")。
- 工具返回确认信息:“Meeting created successfully!”。
- 最终,模型整合信息,回复用户:“Your appointment is set up with Alice at 3 PM Thursday.”
总结 工具使用是构建下一代 AI 应用的关键技术。它让语言模型从“只会聊天”的伙伴,进化为能够“动手做事”的智能助手。 核心价值:
- 超越知识边界:通过调用工具,模型可以获取实时数据、访问数据库、执行计算。
- 实现复杂逻辑:支持多步推理和工具链协作,处理现实世界的复杂需求。
- 提升应用价值:无论是餐厅推荐、零售分析还是个人日程管理,都能因工具而变得更实用、更强大。