Building and customizing solutions using Microsoft 365 Copilot APIs and tools
Hello Miller, Rokas,
The issues you’re encountering are due to Copilot Studio’s Generative Orchestrator, not your agent’s prompts or configuration. The JSON fields and duplicate responses are system-generated planning metadata produced outside the LLM, so your instructions (including “do not show JSON”) cannot suppress them. When using “Send specific response”, the orchestrator still appends its own natural-language summary, resulting in duplicate messages—a known, non-configurable limitation where orchestrator output can only be appended, not replaced. The only reliable ways to return a single clean response are to end the topic with a return value, bypass orchestration via Power Automate, disable generative reasoning for deterministic flows, or strip metadata in a backend step; prompt engineering and negative instructions will not work.
Q1. Why is the orchestrator ignoring my instructions?
Because the leaking fields were not produced by the LLM — they are generated by the Copilot Orchestrator, which your instructions do not control.
Q2. How do I force the agent to output ONLY my variable?
Use one of these:
End the topic with “Return value” (best)
Run a Power Automate flow and return its output
Turn off generative orchestration for the topic
Strip orchestrator metadata using a custom API
Q3. Is this a known limitation?
Yes. It is a documented internal limitation of Generative Orchestration — tool‑planning metadata may be surfaced when:
Tool calls are executed
Instructions conflict with orchestrator defaults
Output is forced into deterministic mode