This is a known behavior in Copilot Studio and is related to how conversation state and context are handled across topics and turns.
What you are seeing typically happens because the agent is not consistently preserving or reusing the expected context (variables, memory, or previous outputs) when moving between turns or topics.
In Copilot Studio:
- Each topic execution has its own scope
- Variables are not always automatically persisted across different conversation paths unless explicitly handled
- Generative answers rely on current context + system instructions, not full conversation history unless properly managed
Common causes of the issue:
- The value you expect to reuse is stored in a variable that is out of scope or overwritten
- The agent re-enters a topic without the original context
- The generative node (Search/Answer/Prompt) is not receiving all the required inputs again
- Conversation memory is not explicitly reinforced in instructions
Recommended approach:
1) Make context explicit
Do not rely on implicit memory. Always pass required values explicitly into prompts or actions.
For example:
“Using the following context: {{your_variable}}, perform …”
2) Use global variables when needed
If the data must persist across multiple turns/topics:
- Store it in a global variable
- Avoid local-only variables for cross-topic scenarios
3) Rehydrate context on each turn
For critical scenarios, rebuild the context each time:
- Retrieve required data again (Dataverse, SharePoint, etc.)
- Pass it explicitly into the prompt
4) Strengthen system instructions
Guide the agent clearly, for example:
“Always use previously captured information stored in variables when generating responses. Do not ignore available context.”
5) Control topic transitions
Ensure that:
- Topics are not restarting unexpectedly
- Trigger phrases or generative routing are not causing context loss
Key takeaway:
Copilot Studio does not guarantee implicit context persistence across turns or topics. Reliable behavior requires explicitly managing and passing context (variables or retrieved data) at each step.
Once you design for explicit context handling, this issue is typically resolved.