Bird
Raised Fist0
LangChainframework~10 mins

OpenAI functions agent in LangChain - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import the OpenAI functions agent from LangChain.

LangChain
from langchain_community.agents import [1]
Drag options to blanks, or click blank then click option'
AAgentExecutor
BOpenAIChatAgent
COpenAIFunctionsAgent
DTool
Attempts:
3 left
💡 Hint
Common Mistakes
Importing OpenAIChatAgent instead of OpenAIFunctionsAgent
Using AgentExecutor which is a different class
Importing Tool which is unrelated here
2fill in blank
medium

Complete the code to create an OpenAI chat model with temperature 0.

LangChain
from langchain_openai import ChatOpenAI
chat = ChatOpenAI(temperature=[1])
Drag options to blanks, or click blank then click option'
A0
B1.0
C0.5
D-1
Attempts:
3 left
💡 Hint
Common Mistakes
Using temperature 1.0 which is very random
Using negative temperature which is invalid
Using 0.5 which is moderate randomness
3fill in blank
hard

Fix the error in the code to create an OpenAI functions agent with the chat model and tools.

LangChain
agent = OpenAIFunctionsAgent.from_llm_and_tools([1], tools)
Drag options to blanks, or click blank then click option'
Allm
Bmodel
Copenai
Dchat
Attempts:
3 left
💡 Hint
Common Mistakes
Passing 'llm' which is undefined here
Passing 'model' or 'openai' which are not defined variables
4fill in blank
hard

Fill both blanks to create a list of tools and initialize the agent executor.

LangChain
tools = [[1]]
agent_executor = AgentExecutor(agent=agent, tools=[2])
Drag options to blanks, or click blank then click option'
Atool
Btools
Cagent
Dexecutor
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'tools' inside the list instead of 'tool'
Passing 'agent' instead of 'tools' to AgentExecutor
5fill in blank
hard

Fill all three blanks to run the agent executor with input and print the output.

LangChain
input_text = [1]
output = agent_executor.run([2])
print([3])
Drag options to blanks, or click blank then click option'
A"What is the weather today?"
Binput_text
Coutput
D"Hello world"
Attempts:
3 left
💡 Hint
Common Mistakes
Passing a variable name instead of a string literal for input_text
Printing input_text instead of output
Passing output instead of input_text to run()

Practice

(1/5)
1. What is the main purpose of an OpenAI functions agent in Langchain?
easy
A. To store large datasets for AI processing
B. To train new AI models from scratch
C. To create user interfaces for AI applications
D. To connect AI chat with your own custom functions for smarter responses

Solution

  1. Step 1: Understand the role of an OpenAI functions agent

    An OpenAI functions agent links AI chat capabilities with user-defined functions to perform tasks.
  2. Step 2: Compare options to the definition

    Only To connect AI chat with your own custom functions for smarter responses describes connecting AI chat with custom functions, which matches the agent's purpose.
  3. Final Answer:

    To connect AI chat with your own custom functions for smarter responses -> Option D
  4. Quick Check:

    Agent purpose = connect AI chat + functions [OK]
Hint: Remember: functions agent links AI chat to your code [OK]
Common Mistakes:
  • Confusing agent with AI model training
  • Thinking it stores data instead of connecting functions
  • Assuming it builds user interfaces
2. Which of the following is the correct way to create an OpenAI functions agent in Langchain?
easy
A. agent = OpenAIFunctionsAgent(functions, model)
B. agent = OpenAIChatAgent(model, funcs)
C. agent = OpenAIFunctionsAgent(llm=model, tools=funcs)
D. agent = FunctionsAgent(llm=model, funcs=functions)

Solution

  1. Step 1: Recall the correct constructor syntax

    The OpenAI functions agent requires named parameters: llm for the model and tools for the list of tools.
  2. Step 2: Check each option for correct names and syntax

    agent = OpenAIFunctionsAgent(llm=model, tools=funcs) uses correct class name and named parameters. Others either use wrong class names or positional arguments incorrectly.
  3. Final Answer:

    agent = OpenAIFunctionsAgent(llm=model, tools=funcs) -> Option C
  4. Quick Check:

    Correct constructor = agent = OpenAIFunctionsAgent(llm=model, tools=funcs) [OK]
Hint: Look for named parameters llm and tools in constructor [OK]
Common Mistakes:
  • Using positional arguments instead of named
  • Wrong class names like OpenAIChatAgent
  • Mixing parameter names like funcs vs tools
3. Given the code snippet:
from langchain.agents import OpenAIFunctionsAgent

model = OpenAI()
functions = [get_weather, get_news]
agent = OpenAIFunctionsAgent(llm=model, tools=functions)
response = agent.invoke({'input': 'What is the weather today?'})
print(response)

What will print(response) most likely output?
medium
A. A string response from the AI calling get_weather function
B. A syntax error due to missing parameters
C. An empty dictionary because no functions are called
D. A runtime error because invoke method does not exist

Solution

  1. Step 1: Understand agent.invoke behavior

    The agent uses the AI model and tools list to process input and call the right function, here likely get_weather.
  2. Step 2: Analyze the code flow

    Input asks about weather, so the agent calls get_weather and returns its result as a string response.
  3. Final Answer:

    A string response from the AI calling get_weather function -> Option A
  4. Quick Check:

    invoke calls function and returns response [OK]
Hint: Input about weather triggers get_weather function call [OK]
Common Mistakes:
  • Assuming invoke method does not exist
  • Expecting empty output without function calls
  • Confusing syntax errors with runtime behavior
4. What is wrong with this code snippet for creating an OpenAI functions agent?
model = OpenAI()
functions = [get_time]
agent = OpenAIFunctionsAgent(functions, model)
response = agent.invoke({'input': 'What time is it?'})
medium
A. The agent constructor is missing named parameters for llm and tools
B. The tools list should be a dictionary, not a list
C. The invoke method requires a string, not a dictionary
D. The OpenAI model must be passed as a string, not an object

Solution

  1. Step 1: Check constructor parameter usage

    The OpenAIFunctionsAgent requires named parameters: llm= and tools=, not positional arguments.
  2. Step 2: Verify other parts of the code

    Tools as list is correct, invoke accepts a dictionary input, and model is an object as expected.
  3. Final Answer:

    The agent constructor is missing named parameters for llm and tools -> Option A
  4. Quick Check:

    Constructor needs named params llm= and tools= [OK]
Hint: Always use named parameters llm= and tools= in constructor [OK]
Common Mistakes:
  • Passing positional arguments instead of named
  • Thinking tools must be a dictionary
  • Misunderstanding invoke input type
5. You want to build a Langchain app that answers user questions by calling either get_weather or get_news functions based on input. Which approach correctly sets up the OpenAI functions agent to handle this?
hard
A. Create two separate agents, one for weather and one for news, and switch manually
B. Pass both functions in a list to OpenAIFunctionsAgent and let it decide which to call
C. Use only get_weather function and ignore get_news for simplicity
D. Call functions directly without using an agent

Solution

  1. Step 1: Understand agent's function selection

    The OpenAI functions agent can receive multiple functions and uses AI to pick the right one based on input.
  2. Step 2: Evaluate options for best design

    Passing both functions in a list lets the agent decide automatically, which is the intended use.
  3. Final Answer:

    Pass both functions in a list to OpenAIFunctionsAgent and let it decide which to call -> Option B
  4. Quick Check:

    Agent selects function from list automatically [OK]
Hint: Give all functions to agent; it picks based on input [OK]
Common Mistakes:
  • Manually switching between agents instead of one agent
  • Ignoring needed functions for simplicity
  • Bypassing agent and losing AI routing benefits