A developer will call a Copilot Studio agent from a custom agent's backend by using the Copilot Studio client library with a signed-in user's token. The agent's authentication is set to Authenticate with Microsoft, it was created yesterday, and so far it has only been tried in the Copilot Studio test pane. What must be done on the Copilot Studio side before the calls can reach the agent?
Select an answer to reveal the explanation.
Short Explanation
The test pane is your rehearsal room; callers outside Copilot Studio only ever see the published show. So you publish, and you keep Microsoft authentication on so the user's token gets in the door. Don't fall for Direct Line secrets or managed identities here; the client library runs on a delegated user token.
Full Explanation
The Copilot Studio client library connects to the published version of an agent, identified by its environment ID and schema name, and authenticates with a Microsoft Entra ID token for a signed-in user. An agent that has only been exercised in the test pane has no published version for external callers to reach, so publishing is the required step, and keeping Authenticate with Microsoft means the agent accepts the user token the backend obtains with the delegated Copilot Studio invoke permission. A Direct Line secret belongs to the Direct Line channel, which is a different integration path; the client library does not take a channel secret. Making a managed identity a co-owner does not help, because the client library works with delegated user tokens and service-to-service tokens are not supported for this path. Generative orchestration changes how the agent chooses topics and tools; it has nothing to do with whether external code can open a conversation. Exam caveat: if the agent instead used No authentication, the Web channel embed code would appear, but that option does not suit a backend acting for signed-in users. Operational check: publish, copy the environment ID and schema name from the agent's advanced metadata settings, and start a test conversation from the backend.