create_openai_tools_agent#
- langchain.agents.openai_tools.base.create_openai_tools_agent(llm: BaseLanguageModel, tools: Sequence[BaseTool], prompt: ChatPromptTemplate, strict: bool | None = None) Runnable [source]#
创建一个使用OpenAI工具的代理。
- Parameters:
llm (BaseLanguageModel) – 用作代理的LLM。
tools (Sequence[BaseTool]) – 此代理可以访问的工具。
prompt (ChatPromptTemplate) – 要使用的提示。有关预期输入变量的更多信息,请参见下面的提示部分。
strict (bool | None)
- Returns:
一个表示代理的可运行序列。它接收与传入提示相同的所有输入变量作为输入。它返回一个AgentAction或AgentFinish作为输出。
- Raises:
ValueError – 如果提示缺少必需的变量。
- Return type:
示例
from langchain import hub from langchain_community.chat_models import ChatOpenAI from langchain.agents import AgentExecutor, create_openai_tools_agent prompt = hub.pull("hwchase17/openai-tools-agent") model = ChatOpenAI() tools = ... agent = create_openai_tools_agent(model, tools, prompt) agent_executor = AgentExecutor(agent=agent, tools=tools) agent_executor.invoke({"input": "hi"}) # Using with chat history from langchain_core.messages import AIMessage, HumanMessage agent_executor.invoke( { "input": "what's my name?", "chat_history": [ HumanMessage(content="hi! my name is bob"), AIMessage(content="Hello Bob! How can I assist you today?"), ], } )
提示:
- The agent prompt must have an agent_scratchpad key that is a
MessagesPlaceholder
. 中间代理操作和工具输出消息将在此处传递。
这是一个例子:
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder prompt = ChatPromptTemplate.from_messages( [ ("system", "You are a helpful assistant"), MessagesPlaceholder("chat_history", optional=True), ("human", "{input}"), MessagesPlaceholder("agent_scratchpad"), ] )
使用 create_openai_tools_agent 的示例