Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Microsoft Copilot Studio agents automatically emit telemetry to the Microsoft Agent 365 observability backend—no manual SDK instrumentation required. This automatic observability provides visibility into agent activity, performance, and errors across Microsoft 365 admin center, Microsoft Defender, and Microsoft Purview.
This article explains how Copilot Studio handles observability automatically and where to view telemetry data.
Note
For general Agent 365 observability concepts and manual instrumentation for pro-code agents, see Agent observability. This article focuses on automatic observability for Copilot Studio agents.
Automatic observability
Copilot Studio agents participate in the Agent 365 observability framework automatically:
- No SDK required: Unlike pro-code agents that require OpenTelemetry SDK installation and configuration, Copilot Studio handles all telemetry emission in the platform runtime.
- OpenTelemetry compliance: Telemetry follows OpenTelemetry semantic conventions, ensuring consistency with pro-code agents and other platforms.
- Automatic ingestion: Telemetry flows to the Agent 365 observability backend without additional configuration.
- Immediate availability: Observability data appears in Microsoft 365 admin center within minutes of agent activity.
This automation enables centralized monitoring, security analysis, and compliance reporting without developer effort.
What telemetry is captured
Copilot Studio automatically emits two OpenTelemetry semantic conventions for generative AI spans:
Note
- Telemetry is captured only for authenticated sessions
- Multi-tenant agents are excluded from telemetry
- Agents with names longer than 42 characters aren't logged
- Large inputs and outputs are automatically truncated in the following fields:
- Output messages
- Tool arguments
- Tool response (
gen_ai.event.content) - Agent description
Invoke agent
Captures agent invocation activity:
- Agent identification: The ID, name, Entra ID, and type of the invoked agent
- User identification: Who interacted with the agent (when using on-behalf-of flow)
- Input message: User message sent to the agent (sensitive data redacted)
- Other identifiers: Tenant and environment IDs
- Start and end timestamps: When the invocation began and ended
Example event
{
"Name": "InvokeAgent",
"Attributes": {
"gen_ai.operation.name": "invoke_agent",
"gen_ai.agent.id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"gen_ai.agent.name": "customer-support-agent",
"gen_ai.agent.applicationid": "12345678-90ab-cdef-1234-567890abcdef",
"gen_ai.agent.platformid": "Default-11111111-2222-3333-4444-555555555555_01234567-89ab-cdef-0123-456789abcdef",
"gen_ai.agent.type": "CopilotStudio",
"tenant.id": "11111111-2222-3333-4444-555555555555",
"gen_ai.channel.name": "Copilot Studio Test Pane",
"gen_ai.execution.type": "HumanToAgent",
"gen_ai.conversation.id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"gen_ai.caller.id": "99999999-8888-7777-6666-555555555555",
"gen_ai.caller.upn": "alex.smith@contoso.com",
"gen_ai.caller.name": "Alex Smith",
"gen_ai.caller.client.ip": "192.168.1.100",
"gen_ai.caller.tenantid": "11111111-2222-3333-4444-555555555555",
"gen_ai.input.messages": "What's the weather in Seattle?",
"env.id": "Default-11111111-2222-3333-4444-555555555555"
},
"StartTimeUnixNano": 1700000000000000000,
"EndTimeUnixNano": 0,
"SpanId": "aaaa1111-bbbb-2222-cccc-333333333333"
}
Output message
Captures the agent's output:
- Output message: The agent's response to the user (sensitive data redacted)
Note
Error messages from agent invocations or tool executions are logged as output messages.
The following is another example event.
{
"Name": "OutputMessages",
"Attributes": {
"gen_ai.operation.name": "output_messages",
"gen_ai.agent.id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"gen_ai.agent.name": "customer-support-agent",
"gen_ai.agent.applicationid": "12345678-90ab-cdef-1234-567890abcdef",
"gen_ai.agent.platformid": "Default-11111111-2222-3333-4444-555555555555_01234567-89ab-cdef-0123-456789abcdef",
"gen_ai.agent.type": "CopilotStudio",
"tenant.id": "11111111-2222-3333-4444-555555555555",
"gen_ai.output.messages": "The current weather in **Seattle, WA** is:\n\n- **Temperature:** 18°C (feels like 17°C)...",
"gen_ai.conversation.id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"gen_ai.channel.name": "Copilot Studio Test Pane",
"gen_ai.caller.id": "99999999-8888-7777-6666-555555555555",
"gen_ai.caller.upn": "alex.smith@contoso.com",
"gen_ai.caller.name": "Alex Smith",
"gen_ai.caller.client.ip": "192.168.1.100",
"gen_ai.caller.tenantid": "11111111-2222-3333-4444-555555555555",
"env.id": "Default-11111111-2222-3333-4444-555555555555"
},
"StartTimeUnixNano": 0,
"EndTimeUnixNano": 1700000005000000000,
"SpanId": "bbbb2222-cccc-3333-dddd-444444444444",
"ParentSpanId": "aaaa1111-bbbb-2222-cccc-333333333333"
}
Execute tool
Captures tool execution when your agent uses connectors or actions:
- Agent identification: The ID, name, Entra ID, and type of the invoked agent
- Tool identification: The ID and name of the executed tool
- Tool arguments: What data was sent (sensitive data redacted)
- User identification: Who interacted with the agent (when using On-Behalf-Of flow)
- Other identifiers: Tenant and environment IDs
- Start and end timestamps: When the execution began and ended
The following is another example event.
{
"Name": "ExecuteTool",
"Attributes": {
"gen_ai.operation.name": "execute_tool",
"gen_ai.agent.id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"gen_ai.agent.name": "customer-support-agent",
"gen_ai.agent.applicationid": "12345678-90ab-cdef-1234-567890abcdef",
"gen_ai.agent.platformid": "Default-11111111-2222-3333-4444-555555555555_01234567-89ab-cdef-0123-456789abcdef",
"gen_ai.agent.type": "CopilotStudio",
"tenant.id": "11111111-2222-3333-4444-555555555555",
"gen_ai.tool.name": "msnweather:CurrentWeather",
"gen_ai.tool.arguments": "{\"Location\":\"Seattle, WA\",\"units\":\"C\"}",
"gen_ai.tool.call.id": "/providers/Microsoft.PowerApps/apis/shared_msnweather:CurrentWeather:abcdef12-3456-7890-abcd-ef1234567890",
"gen_ai.tool.type": "Power Platform Connector",
"gen_ai.conversation.id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"gen_ai.event.content": "{ /* tool execution results */ }",
"gen_ai.channel.name": "Copilot Studio Test Pane",
"gen_ai.caller.id": "99999999-8888-7777-6666-555555555555",
"gen_ai.caller.upn": "alex.smith@contoso.com",
"gen_ai.caller.name": "Alex Smith",
"gen_ai.caller.client.ip": "192.168.1.100",
"gen_ai.caller.tenantid": "11111111-2222-3333-4444-555555555555",
"env.id": "Default-11111111-2222-3333-4444-555555555555"
},
"StartTimeUnixNano": 1700000002000000000,
"EndTimeUnixNano": 0,
"SpanId": "cccc3333-dddd-4444-eeee-555555555555",
"ParentSpanId": "aaaa1111-bbbb-2222-cccc-333333333333"
}
All telemetry respects privacy boundaries. Sensitive user data in messages and tool inputs and outputs is redacted and not visible to administrators. Telemetry is used for internal security monitoring and compliance purposes.
Next steps
- Agent registry integration to see how metadata complements observability
- Agent identity integration to understand authentication event telemetry
- Observe agent activity for user-level observability guidance
- Monitor agents with Microsoft Defender for security monitoring
- Manage data security and compliance with Microsoft Purview for compliance integration