M365 Declarative Agent Debugging Skill
M365 Declarative Agent Debugging Skill
Debug non-functional M365 Copilot declarative agents.
⚠️ Staleness Warning
M365 Copilot and Teams platform APIs are in rapid evolution. Schema versions, capabilities, and tooling change frequently.
Refresh triggers:
- New declarativeAgent schema versions
- M365 Agents Toolkit updates (formerly Teams Toolkit)
- New M365 Copilot capabilities
- Developer Portal changes
Last validated: February 2026 (Schema v1.6+, M365 Agents Toolkit with @m365agents chat participant)
Check current state: Declarative Agent Schema, M365 Agents Toolkit
Available MCP Tools
The M365 Agents Toolkit exposes MCP tools via the @m365agents chat participant. Use these before manual debugging:
| Tool | When to Use |
|---|---|
mcp_m365agentstoo_get_schema |
Validate manifest structure — get the current app manifest (v1.19), declarative agent (v1.0), or API plugin (v2.1) schema |
mcp_m365agentstoo_troubleshoot |
Diagnose common issues — schema validation failures, sideloading errors, conditional access blocks |
mcp_m365agentstoo_get_knowledge |
Look up M365 Copilot development knowledge — capabilities, limits, best practices |
mcp_m365agentstoo_get_code_snippets |
Find working examples — Teams AI, Teams JS, botbuilder code samples |
Workflow integration: Always try mcp_m365agentstoo_troubleshoot first when a user reports an M365 agent issue. Use mcp_m365agentstoo_get_schema to verify manifest structure before manual schema checks.
Schema Version Validation
Critical: Schema versions and their capabilities:
| Version | Status | Key Additions |
|---|---|---|
| v1.0 | Original baseline | Core capabilities |
| v1.2 | Stable | WebSearch sites, GraphicArt, CodeInterpreter |
| v1.5 | Extended | TeamsMessages, Email, People |
| v1.6 | LATEST | Dataverse, Meetings, EmbeddedKnowledge, worker_agents |
v1.3 and v1.4 DO NOT EXIST — unrecognized schema makes entire document invalid.
Capability Compatibility
| Capability | v1.2 | v1.5 | v1.6 |
|---|---|---|---|
| OneDriveAndSharePoint | ✅ | ✅ | ✅ |
| WebSearch | ✅ | ✅ | ✅ |
| GraphicArt | ✅ | ✅ | ✅ |
| CodeInterpreter | ✅ | ✅ | ✅ |
| GraphConnectors | ✅ | ✅ | ✅ |
| TeamsMessages | ❌ | ✅ | ✅ |
| ❌ | ✅ | ✅ | |
| People | ❌ | ✅ | ✅ |
| Meetings | ❌ | ❌ | ✅ |
| Dataverse | ❌ | ❌ | ✅ |
| EmbeddedKnowledge | ❌ | ❌ | ✅ (not yet available) |
| ScenarioModels | ❌ | ❌ | ✅ |
Lesson: v1.5/v1.6 capabilities with v1.2 schema = silent failure.
Manifest Limits (v1.6)
| Property | Limit |
|---|---|
name |
100 characters |
description |
1,000 characters |
instructions |
8,000 characters |
conversation_starters |
6 items max (was 12 in v1.2) |
actions |
1-10 items |
WebSearch.sites |
4 items |
TeamsMessages.urls |
5 items |
Meetings.items_by_id |
5 items |
Icon Requirements
color.png: 192×192px, solid background, logo in center 120×120 safe zone
outline.png: 32×32px, white only (#FFFFFF), transparent background (Alpha=0)
Common error:
Error: Outline icon is not transparent. Alpha,R,G,B: 255,X,X,X
Alpha=255 means opaque. Background pixels must be Alpha=0.
Debugging Workflow
-
MCP first: Call
mcp_m365agentstoo_troubleshootwith the error message or symptom — this often resolves the issue immediately -
Schema check: Call
mcp_m365agentstoo_get_schemawith the relevant schema type (app_manifest,declarative_agent_manifest,api_plugin_manifest) to verify structure -
Validate package:
teamsapp validate --package-file <zip>(must pass all checks) -
Use
@m365agentschat participant: Ask@m365agentsin VS Code Copilot Chat for interactive troubleshooting — it has scaffolding, schema help, and guided debugging -
Manual schema check (fallback):
- ✅
.../declarative-agent/v1.2/schema.json - ❌
.../declarative-agent/v1.3/schema.json(doesn't exist)
- ✅
-
Verify capabilities match schema version
-
Test icon transparency:
Add-Type -AssemblyName System.Drawing
$bmp = New-Object System.Drawing.Bitmap("outline.png")
$pixel = $bmp.GetPixel(0, 0)
$bmp.Dispose()
"Alpha: $($pixel.A)" # Should be 0
Package Checklist
-
manifest.json— Teams app manifest (v1.19) -
declarativeAgent.json— Agent config (v1.2) -
color.png— 192×192 solid -
outline.png— 32×32 white on transparent
Symptom → Cause
| Symptom | Likely Cause | MCP Tool |
|---|---|---|
| Agent not responding | Invalid schema version | mcp_m365agentstoo_troubleshoot |
| Only 1 conversation starter | Schema validation failed | mcp_m365agentstoo_get_schema |
| Validation errors on icon | Wrong transparency/size | — (manual check) |
| Capability not working | Schema version mismatch | mcp_m365agentstoo_get_knowledge |
| Sideloading fails | Admin policy or manifest error | mcp_m365agentstoo_troubleshoot |
Memory via OneDrive
Agent reads from OneDrive using OneDriveAndSharePoint capability:
- User creates
Alex-Memory/folder in OneDrive - User shares folder link in chat
- Agent reads cognitive files from shared folder
- For writes: Alex generates content → user pastes
Benefits: No Azure Functions, no API costs, user controls data.
Deployment Flow
npx teamsapp package --env local
npx teamsapp validate --package-file appPackage/build/*.zip
# Upload to Developer Portal → Preview in Teams
Synapses
See synapses.json for connections.