You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LangChain中自动工具选择机制的实现原理及相关模型疑问

LangChain工具调用决策机制解析

背景示例

LangChain中绑定工具后的模型会根据提问内容自动决定是否调用工具,以下是具体示例:

初始代码

from langchain_community.tools.tavily_search import TavilySearchResults
from langchain_core.messages import HumanMessage
from langchain_openai import ChatOpenAI

search = TavilySearchResults(max_results=2)
tools = [search]
model = ChatOpenAI(model="gpt-4")
model_with_tools = model.bind_tools(tools)
response = model_with_tools.invoke([HumanMessage(content="Hi!")])
print(f"ContentString: {response.content}")
print(f"ToolCalls: {response.tool_calls}")

对应输出

ContentString: Hello!
ToolCalls: []

当将提问改为"What's the weather in SF?"后,执行以下代码:

response = model_with_tools.invoke([HumanMessage(content="What's the weather in SF?")])

修改后的输出

contentstring:
ToolCalls: [{'name': 'tavily_search_results_json', 'args': {'query': 'weather san francisco'}, 'id': 'toolu_01VTP7DUvSfgtYxsq9x4EwMp'}]

问题与解答

核心问题

该工具调用决策机制是如何实现的?是否是通过句子转换器将工具描述和提问转为嵌入向量,再通过向量距离判断是否调用工具?如果是,用的哪种句子转换器?

解答

你的推测不正确,这个决策机制并非基于向量匹配或本地向量数据库,而是由**大语言模型本身(此处为GPT-4)**直接完成的。

当调用model.bind_tools(tools)时,LangChain会将工具的元数据(包括名称、功能描述、参数定义等)整理为符合OpenAI工具调用规范的格式,作为系统提示的一部分传递给GPT-4。GPT-4会基于自身的推理能力判断:若问题需要实时信息(如旧金山天气),则触发工具调用;若为无需外部信息的闲聊(如"Hi!"),则直接生成回复。

整个过程完全依赖大语言模型的原生推理能力,没有用到句子转换器或向量数据库。

内容的提问来源于stack exchange,提问作者VanechikSpace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:03:13