What is the core idea of “memory interaction” in multi-agent systems?
How agents share, isolate, or transfer memory, which strongly affects collaboration quality and reliability.
Why does memory interaction “dramatically affect” collaboration?
It changes what context each agent sees and what information flows back, which changes reasoning quality, cost, and confusion risk.
What is the simplest memory interaction pattern described?
Message passing.
What is “message passing” between agents?
One agent sends a task request and receives a final response, without sharing full history.
What is the human analogy for message passing in the reading?
Sending an email to a colleague and receiving their answer.
In message passing, what does the calling agent typically receive?
Only the final result (not the full process).
Why is message passing often preferred for simple delegation?
It keeps agents isolated and focused, minimizing irrelevant context.
In the basic call_agent example, what memory does the invoked agent start with?
A fresh memory instance.
Why create fresh memory for the invoked agent in message passing?
To prevent mixing histories and keep the invoked agent focused on the request.
In basic message passing, what part of the invoked agent’s memory is returned?
Only the final memory item.
When does message passing work best?
When the caller only needs the final answer, not the reasoning process.
What is an example use case for message passing from the reading?
A project manager asks a scheduling agent for a meeting time and only needs the scheduled time.
What is the main weakness of message passing?
Output quality depends heavily on how well the task request is written.
What is “Memory Reflection”?
A pattern where the caller receives not just the result, but also the invoked agent’s process as memories.
What is the human analogy for memory reflection?
Asking a colleague to explain how they arrived at their answer, not just the answer.
How is memory reflection implemented in the example?
Copy all memory items from the invoked agent into the caller’s memory.
In call_agent_with_reflection, where does the caller’s memory come from?
action_context.get_memory()
In reflection, how can copied memories be labeled to show their source?
Add a type field like “{agent_name}_thought”.
Why mark the memory source during reflection?
So the caller can distinguish which agent produced which memories.
What does call_agent_with_reflection return besides result?
How many memories were added (memories_added).
When is memory reflection valuable?
When the caller needs to understand the reasoning process to use the result well.
What is an example use case for reflection from the reading?
A research coordinator wants to see the analysis process from a data analysis agent.
What is a downside of memory reflection?
It can flood the caller with extra context and increase complexity/token cost.
Why might you “leave off the last memory item” when copying memories?
To avoid duplicating the final result if it’s already returned separately.