Challenge - 5 Problems
Multi-agent Graph Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate2:00remaining
What is the output of this multi-agent graph execution?
Consider a Langchain multi-agent graph where Agent A sends a message to Agent B, which then replies back to Agent A with a transformed message. What will Agent A receive after the graph runs?
LangChain
from langchain.agents import Agent class AgentA(Agent): def __init__(self, name): super().__init__(name) def respond(self, message): return f"Received: {message}" class AgentB(Agent): def __init__(self, name): super().__init__(name) def respond(self, message): return message.upper() # Setup graph agent_a = AgentA(name="A") agent_b = AgentB(name="B") message = "hello" response_b = agent_b.respond(message) response_a = agent_a.respond(response_b) print(response_a)
Attempts:
2 left
💡 Hint
Think about how Agent B transforms the message before Agent A receives it.
✗ Incorrect
Agent B converts the message to uppercase, then Agent A adds 'Received: ' prefix. So the final output is 'Received: HELLO'.
❓ state_output
intermediate2:00remaining
What is the final state of the multi-agent graph after message passing?
In a Langchain multi-agent graph, Agent X stores every message it receives in a list called 'history'. After sending three messages "one", "two", "three" to Agent X, what is the content of Agent X's history?
LangChain
from langchain.agents import Agent class AgentX(Agent): def __init__(self, name): super().__init__(name) self.history = [] def respond(self, message): self.history.append(message) return f"Ack: {message}" agent_x = AgentX(name="X") messages = ["one", "two", "three"] for msg in messages: agent_x.respond(msg) print(agent_x.history)
Attempts:
2 left
💡 Hint
Check what is appended to the history list inside respond().
✗ Incorrect
Agent X appends the raw message to history, so after three messages, history contains all three strings.
🔧 Debug
advanced2:00remaining
Why does this multi-agent graph code raise an AttributeError?
This Langchain multi-agent graph code raises an AttributeError when trying to access 'last_message' attribute. Identify the cause.
LangChain
from langchain.agents import Agent class AgentY(Agent): def __init__(self, name): super().__init__(name) def respond(self, message): self.last_message = message return f"Got: {message}" agent_y = AgentY(name="Y") print(agent_y.last_message)
Attempts:
2 left
💡 Hint
When is 'last_message' assigned in the code?
✗ Incorrect
The attribute 'last_message' is assigned only when respond() is called. Since respond() was never called before print, the attribute does not exist yet.
📝 Syntax
advanced2:00remaining
Which option correctly defines a multi-agent graph with cyclic message passing?
You want to create two agents, Agent1 and Agent2, that send messages to each other in a cycle. Which code snippet correctly implements this behavior without syntax errors?
Attempts:
2 left
💡 Hint
Check if both agents have references to each other before calling respond.
✗ Incorrect
Option D correctly assigns references to each other after instantiation, allowing cyclic calls without NameError or AttributeError.
🧠 Conceptual
expert2:00remaining
What is the main benefit of using a multi-agent graph in Langchain?
Select the best explanation for why multi-agent graphs are used in Langchain applications.
Attempts:
2 left
💡 Hint
Think about how multiple agents working together can improve problem solving.
✗ Incorrect
Multi-agent graphs enable agents to communicate and collaborate, which supports complex workflows and richer decision processes.