Hello Sarna, Evelyn,
Copilot Studio sends two messages because every sub-agent that returns a text response is treated as user-facing by default. There is currently no implicit “silent” mode for sub-agents, so if both steps in a multi-agent pipeline produce text, both will appear in the chat.
You don’t need to redesign your two-step brand pipeline—only control which sub-agent is allowed to speak.
Best practice (recommended): Have the first sub-agent act as a transformer, not a speaker. Store its output in a variable (for example, brandDraft) instead of sending a message. Pass that variable to the second sub-agent, which produces the only user-visible response.
Other valid options:
Disable “Send response to user” / default replies in the first sub-agent so it behaves like a functional component.
Merge both steps into a single sub-agent that generates and self-edits before returning one final output (simpler, but less modular).
What won’t work: prompts asking the agent to be silent, sequential calls without variable storage, adaptive cards, or post-processing messages—if a sub-agent outputs text, Copilot Studio will display it.