LangChain 从入门到实战(06):模型只会动嘴?给它一双手——工具调用前面 5 篇的模型都「只会嘴上说说」:你问 1+1,它背话术;你问杭州天气,它答非所问,因为它根本拿不到真实数据。这一篇讲 LangChain 最出圈的能力——工具调用(Tool Calling):让模型「伸手调用一个真实函数」,后天装上一个「手」。一、先理解:模型怎么「决定」调用工具?模型本身不会执行代码,它只会「生成文本」。工具调用的本质是:模型在输出里声明「我想调用 get_weather(city=杭州)」这个意图,由你的代码去真正执行并拿到结果。模型不负责跑,只负责「选工具、给参数」。所以流程永远是:你把一批工具(函数+参数说明)告诉模型(bind_tools);模型判断该用哪个工具、填好参数,返回一个「工具调用请求」;你的代码执行工具、拿到结果,把结果再喂回模型;模型结合结果生成最终回答。(第 4 步通常由 Agent 循环自动完成,第 09 篇展开。)二、用@tool定义一个工具LangChain 里定义「工具」最简单的方式,是一个@tool装饰器 + 一个带类型注解的函数: