Toggle Menu
Prev Up Next

# `langchain.agents.openai_functions_agent.base`.create_openai_functions_agent

langchain.agents.openai_functions_agent.base.create_openai_functions_agent(llm: BaseLanguageModel, tools: Sequence[BaseTool], prompt: ChatPromptTemplate) → Runnable

  Create an agent that uses OpenAI function calling.

  Parameters

    - llm (BaseLanguageModel) – LLM to use as the agent. Should work with OpenAI function calling, so either be an OpenAI model that supports that or a wrapper of a different model that adds in equivalent support.

    - tools (Sequence[BaseTool]) – Tools this agent has access to.

    - prompt (ChatPromptTemplate) – The prompt to use. See Prompt section below for more.

  Returns

    A Runnable sequence representing an agent. It takes as input all the same input variables as the prompt passed in does. It returns as output either an AgentAction or AgentFinish.

  Return type

    Runnable

  Example

  Creating an agent with no memory

      from langchain_community.chat_models import ChatOpenAI
      from langchain.agents import AgentExecutor, create_openai_functions_agent
      from langchain import hub

      prompt = hub.pull("hwchase17/openai-functions-agent")
      model = ChatOpenAI()
      tools = ...

      agent = create_openai_functions_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?"),
              ],
          }
      )

  Prompt:

  > The agent prompt must have an agent_scratchpad key that is a

  >   `MessagesPlaceholder`. Intermediate agent actions and tool output messages will be passed in here.

  > Here’s an example:

  >     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"),
  >         ]
  >     )

# Examples using create_openai_functions_agent

- Authorize connection to your Browser extention

- Define the neural network

- For use in Chaining section

- Get the prompt to use - you can modify this!

- How to use it inside an Agent {#how-to-use-it-inside-an-agent}

- Quickstart

- need to use GPT-4 here as GPT-3.5 does not understand, however hard you insist, that

- os.environ[“LANGCHAIN_TRACING_V2”] = “true”

- pip install wikipedia

- start by installing semanticscholar api

- 🦜🕸️LangGraph