LangChain导入create_tool_calling_agent报错,求正确导入方法
解决
create_tool_calling_agent导入错误的方法 出现ImportError是因为该函数的导入路径随LangChain版本变化而不同,以下是两种常见场景的正确处理方式:
场景1:使用LangChain 0.1.0及以上版本
直接从langchain.agents导入即可,若你的LangChain版本过低,先执行升级命令:
pip install --upgrade langchain
导入代码:
from langchain.agents import create_tool_calling_agent from langchain.agents.agent_executor import AgentExecutor
场景2:使用LangChain 0.1.0以下版本
旧版本中该函数位于langchain.agents.openai_tools.base模块,导入代码改为:
from langchain.agents.openai_tools.base import create_tool_calling_agent from langchain.agents.agent_executor import AgentExecutor
另外需要注意,create_tool_calling_agent需要结合支持工具调用的LLM(如OpenAI的gpt-3.5-turbo-1106等)使用,初始化代理时还需传入模型和工具列表,示例完整代码:
# 需先安装langchain-openai:pip install langchain-openai from langchain_openai import ChatOpenAI from langchain.agents import create_tool_calling_agent from langchain.agents.agent_executor import AgentExecutor from langchain_core.prompts import ChatPromptTemplate # 定义你的子代理工具 tools = [insurance_subagent, drafting_subagent] # 构建监督代理的提示模板 prompt = ChatPromptTemplate.from_messages([ ("system", "你是监督代理,负责协调子代理完成指定任务"), ("user", "{input}"), ("agent_scratchpad", "{agent_scratchpad}") ]) # 初始化支持工具调用的大模型 llm = ChatOpenAI(model="gpt-3.5-turbo-1106", temperature=0) # 创建监督代理 supervisor_agent = create_tool_calling_agent(llm, tools, prompt) # 创建代理执行器 executor = AgentExecutor( agent=supervisor_agent, tools=tools, verbose=True )
内容的提问来源于stack exchange,提问作者Aditya Dandekar
相关产品推荐
相关产品推荐

