web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Copilot Studio / Child agent-as-tool se...
Copilot Studio
Suggested Answer

Child agent-as-tool sends duplicate response despite "After running = Don't respond"

(1) ShareShare
ReportReport
Posted on by Microsoft Employee

Issue Summary

In a multi-agent orchestration setup in Microsoft Copilot Studio, the child agent's response is being displayed directly to the user in addition to the parent (orchestrator) agent's response — resulting in two consecutive duplicate/paraphrased messages for every single user input.

 
 

Setup

  • Parent Agent (Orchestrator): COI Supply Chain (PPE) — routes user requests to the appropriate child agent based on intent.

  • Child Agent (Tool): COI DPXE UAR (PPE) — configured as an agent tool within the parent agent. This child agent has:

    • Instructions only (no topics)

    • MCP tools connected (e.g., get_manager_details, get_ariba_user_details, get_business_units, get_regions_for_business_unit)

    • No explicit "Send a message" node  
 
 

Expected Behavior

When the user sends a message (e.g., "I want Ariba access"), the orchestrator should route to the child agent, receive the child's output, and present one single response to the user.

Actual Behavior

The user receives two responses for every input:


  1. A response generated by the child agent (displayed directly in chat)

  2. A response generated by the orchestrator (paraphrased version of the same content)


  3.  

This duplication occurs at every step of the conversation — business unit selection, region selection, etc.

 
 

What I've Already Tried

 
# Action Taken Result
1 Set "After running → Don't respond" on the child agent tool in the parent ❌ Still duplicates
2 Added instruction to child agent: "DO NOT call SendMessageTool or send any messages" ❌ Still duplicates
3 Updated orchestrator instructions to compose only ONE response from child output ❌ Still duplicates
4 Set "Outputs available to the agent and other tools → All" ❌ Still duplicates
 
 

Activity Log Evidence

The Activity tab confirms:

 

  • The child agent (COI DPXE UAR) runs successfully and calls MCP tools (e.g., get_ariba_user_details, get_business_units)

  • A message appears in chat from the child agent's execution

  • A second message appears from the orchestrator (same content, slightly paraphrased)

  • Both messages are logged under the parent bot identity ("COI Supply Chain (PPE)")

  • MCP tools are also being called multiple times (e.g., get_ariba_user_details appears twice in the same turn


       
     
     

    Questions

     

    1. How can I completely prevent the child agent from sending messages directly to the user when it's configured as an agent tool?

    2. Is SendMessageTool suppression via instructions a supported/reliable approach, or is this a known limitation?

    3. Is there a recommended pattern (e.g., wrapping the child agent call in a Power Automate Agent Flow) to guarantee only the orchestrator responds?



    4.  
     

    Any guidance or workaround would be greatly appreciated. Thank you!



  •  
I have the same question (0)
  • Suggested answer
    Valantis Profile Picture
    4,803 on at
     
    This is a confirmed platform-level issue, not a configuration problem on your end. Microsoft docs explicitly state that when a parent agent has no topics or knowledge of its own and relies entirely on connected agents, setting After running to Don't respond can still produce an additional system-generated message from the orchestration runtime. You've already found this.

    The MCP tools being called twice is a separate but related symptom. The child agent with MCP tools generates a response, the parent's orchestration layer sees no clear completion signal, and re-invokes the child which calls the tools again. This is the same looping pattern confirmed in community investigation after the October 2025 update.

    tra this workarounds:

    1. Add a clear termination instruction to the child agent. In the child agent's instructions add: "After completing the task, return your output as a single structured JSON object and do not send any additional messages." The JSON output pattern gives the orchestrator a clean completion signal.

    2. Move MCP tools to the parent agent directly instead of through a child agent. If the child agent's sole purpose is to wrap MCP tools, removing the child agent layer and connecting the MCP tools directly to the parent eliminates the double-response entirely. The child agent boundary is where the duplicate originates.

    3. If you need the child agent layer for routing reasons, add an Agent flow as an intermediary. The parent calls a Power Automate Agent Flow, the flow calls the child agent programmatically, waits for output, and returns a single controlled response. This bypasses the generative orchestration layer that generates the second message.

    4. In the child agent's instructions, add: "You are a tool. Return only a JSON result. Never use SendMessageTool." The explicit never use SendMessageTool instruction is not officially documented as suppression but is the closest thing to it that community testing has confirmed reduces (not eliminates) the extra message.

    Honestly option 2 is the cleanest fix if your architecture allows it.
    Ref: https://learn.microsoft.com/en-us/microsoft-copilot-studio/authoring-add-other-agents
     
     

     

    Best regards,

    Valantis

     

    ✅ If this helped solve your issue, please Accept as Solution so others can find it quickly.

    ❤️ If it didn’t fully solve it but was still useful, please click “Yes” on “Was this reply helpful?” or leave a Like :).

    🏷️ For follow-ups  @Valantis.

    📝 https://valantisond365.com/

    💼 LinkedIn

    ▶️ YouTube

  • SC-29041907-0 Profile Picture
    Microsoft Employee on at
    Hi @Valantis,

    We are building a centralized multi-agent orchestration architecture in Microsoft Copilot Studio for our organization. The goal is to have a single parent (orchestrator) agent that serves as the unified entry point for all users across the org, while multiple child utility agents handle domain-specific tasks underneath.

     
     

    Architecture Vision

     
                            ┌──────────────────────────┐
                            │   Parent Orchestrator     │
                            │   (Single Entry Point)    │
                            └────────────┬─────────────┘
                                         │
                  ┌──────────────────────┼──────────────────────┐
                  │                      │                      │
       ┌──────────▼──────────┐ ┌────────▼────────┐ ┌───────────▼──────────┐
       │  Child Agent A      │ │  Child Agent B  │ │  Child Agent C       │
       │  (User Access Mgmt) │ │  (Integration)  │ │  (Future - TBD)      │
       │  - MCP Tools        │ │  - MCP Tools    │ │  - MCP Tools         │
       │  - Instructions     │ │  - Instructions │ │  - Instructions      │
       └─────────────────────┘ └─────────────────┘ └──────────────────────┘
    
     

    How it works:

     

     
    Let me know what the best fit in our case.

    • Users interact only with the parent agent — they never directly access child agents

    • The parent agent detects user intent from the message and routes to the correct child agent (configured as agent tools)

    • Each child agent is a utility agent with only instructions and MCP tools (no topics)

    • As new capabilities are needed, we deploy new child agents and register them under the same parent — zero disruption to end users

    • This gives us a scalable, modular architecture where each child agent is independently developed, tested, and maintained
  • Suggested answer
    11manish Profile Picture
    1,922 on at
    In Copilot Studio today, agents are conversational by design—not silent execution units.
     
    So for clean orchestration:
    • Avoid chaining agents when you need single-response control
    Use:
    • Tools (preferred)
    • or Power Automate (enterprise-safe)
  • Suggested answer
    Valantis Profile Picture
    4,803 on at
     
    Your architecture is the right approach. Since you need the child agent boundary for modularity, option 2 (move MCP tools to parent) doesn't fit. Use options 1 and 4 combined  add this to every child agent's instructions:

    "You are a utility tool. When your task is complete, return your output as a structured summary only. Do not ask follow-up questions. Do not send messages to the user. Return control to the orchestrator immediately."

    Two things: keep each child agent's description specific and non-overlapping the parent routes based on these and vague descriptions cause multiple children to be called for the same intent. Always test new child agents in isolation before registering them under the parent.

    If the duplicate persists after the instruction changes, the Agent Flow intermediary (option 3) is the most reliable production fix for your architecture.
     

     

    Best regards,

    Valantis

     

    ✅ If this helped solve your issue, please Accept as Solution so others can find it quickly.

    ❤️ If it didn’t fully solve it but was still useful, please click “Yes” on “Was this reply helpful?” or leave a Like :).

    🏷️ For follow-ups  @Valantis.

    📝 https://valantisond365.com/

    💼 LinkedIn

    ▶️ YouTube

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Copilot Studio

#1
Valantis Profile Picture

Valantis 704

#2
Vish WR Profile Picture

Vish WR 249

#3
Haque Profile Picture

Haque 244

Last 30 days Overall leaderboard