MODULE 10 · LESSON 10.9
Let Copilot Studio call FabrCore through A2A
Expose FabrCore to Copilot Studio through inbound A2A.
Lesson 61 of 86 · FabrCore 2.0
Overview
A2A cards describe capabilities; authenticated message endpoints perform work. Discovery can be anonymous while calls require credentials. Caller-to-principal mapping determines whether two callers share an instance/history or remain isolated.
Discovery and execution are separate requests
An A2A card describes an exposed agent's capabilities and connection information. Studio can use that metadata to configure its call, but authenticated message/task requests perform the actual work. Do not treat a publicly readable card as authorization to execute the agent or access its owner’s history.
Caller mapping determines conversation isolation
Choose how authenticated Studio callers map to FabrCore principals and agent instances. Mapping every caller to one shared identity deliberately shares that runtime context unless further isolation is implemented. Keep card metadata truthful about the interface actually installed; a skill description is not a runtime harness skill package.
Expose the assistant to Copilot Studio
- Enable FabrCore:A2A and explicitly publish agents or choose described-type discovery. Add useful descriptions/capabilities to their registry metadata.
- Choose API-key or JWT authentication and a principal strategy suited to isolation. Grant cross-principal access where needed in SQL mode.
- Use the correct message endpoint in Copilot Studio. Verify card CORS, proxy forwarding, task/stream behavior and text-only responses that do not depend on an invisible Surface form.
{
"A2A": {
"Enabled": true,
"PublicBaseUrl": "https://agents.contoso.com",
"Discovery": { "AgentTypes": "Described" },
"Authentication": {
"Mode": "ApiKey",
"ApiKey": { "Keys": [ { "Name": "copilot-studio", "Value": "a-long-random-secret" } ] }
}
}
}
Discover, call and compare two callers
- Fetch the configured A2A card and confirm its endpoint identifies your intended FabrCore service. Configure the Studio test connection with the proper execution authentication.
- Send a distinctive request from Studio and trace the inbound task/message to the chosen FabrCore principal and agent. Inspect the returned A2A result in Studio.
- Repeat with another test caller and verify the intended sharing/isolation policy. An anonymous execution attempt must be rejected when your configured policy requires credentials.
The result verifies an inbound A2A integration. It is not the same addon or authentication path as a person chatting through Teams.
If the result is different
If no POST reaches the Host, inspect Studio orchestration/discovery first. If cards load but calls fail, inspect auth; if the browser blocks card discovery, inspect CORS.
Go deeper
Explore the related documentation.