Microsoft Agent 365 Skills is a collection of coding-agent skills and MCP configuration for building and operating AI Teammates hosted in Microsoft Teams. It supports the Agent 365 lifecycle, including WorkIQ integration, registration, observability, validation, and local testing, for users of Claude Code and GitHub Copilot.
Getting it into your agent
This one installs as part of its plugin. Adding the marketplace and installing the plugin brings it with everything else the plugin ships.
/plugin marketplace add microsoft/agent365-skills/plugin install agent365Wrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/microsoft/agent365-skills/purview-dlp-integration)<a href="https://agentmods.dev/skills/microsoft/agent365-skills/purview-dlp-integration"><img src="https://agentmods.dev/badge/skills/microsoft/agent365-skills/purview-dlp-integration/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/microsoft/agent365-skills/purview-dlp-integration"><img src="https://agentmods.dev/badge/skills/microsoft/agent365-skills/purview-dlp-integration.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00200 | $0.06679 |
| Opus 5.5 | $0.00080 | $0.02672 |
| Sonnet 5.5 | $0.00040 | $0.01336 |
| Haiku 4.5 | $0.00020 | $0.00668 |
Grade A, and why
purview-dlp-integration scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 386 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Microsoft Purview DLP Integration for Agent 365
Trigger phrases — any of these will activate this skill automatically:
- "add Purview DLP to my agent"
- "add data loss prevention to my A365 agent"
- "block credit cards / SSNs / PII before my agent's LLM sees them"
- "enforce compliance / audit on agent prompts and responses"
- "wire a DLP gate into my agent code"
- "call the Graph processContent API from my agent"
- "add Purview blocking to my Node.js / Python / .NET agent"
Add a Purview data-loss-prevention gate before an existing A365 agent's LLM call: each prompt
is evaluated via the Graph processContent API and blocked when an input-blocking policy
matches. Optional response checks provide audit, not response blocking, for the supplied
Applications policy. processContent sends the checked text to Microsoft Purview for evaluation
and audit. Designed for minimal, reversible changes to the customer's agent.
When to use
- "Add Purview DLP / data loss prevention to my agent."
- "Block credit cards / SSNs / PII before my agent's LLM sees them."
- "Enforce compliance / audit on agent prompts and responses."
- Any A365 agent — Node.js, Python, or .NET — that needs inline DLP.
When NOT to use
- Adding OpenTelemetry tracing / MAC Activity telemetry → use
instrument-observability. - Diagnosing why telemetry isn't reaching MAC Activity / Defender → use
a365-code-validator. - Provisioning the blueprint / Entra permissions from scratch → use
a365-setup/make-a365-agentfirst, then return here.
How it works
user turn ─► [INPUT gate] processContent(uploadText, /me) ─► block? ─► reply "blocked", STOP (LLM never called)
└─ allow ─► LLM ─► optional output audit ─► reply
- Token: the agent's agentic delegated Graph token, evaluated as
/me(the agent identity) — acquired via the agent's own auth handler: Node.jsGetAgenticUserToken, Pythonauthorization.exchange_token(…), .NETUserAuthorization.GetTurnTokenAsync(…). A365 blueprint apps cannot use app-only client-credentials here — Graph strips data-plane roles from that token. - Fail-closed by default: any Purview error/timeout blocks the turn.
- Content limit: delegated guards reject messages over 100,000 characters before sending them to Graph, even in fail-open mode. They never approve a full message based on a prefix.
- Output:
PURVIEW_CHECK_OUTPUT=truesubmits responses for audit. The supplied workload does not supportDownloadTextblocking; do not promise that it filters sensitive responses. With fail-closed mode, a failed output audit still withholds the reply. - Policy: a dedicated Purview DLP policy scoped to the agent's Entra app id (portal:
"Managed cloud apps" /
Applicationsworkload) with a RestrictAccess=Block rule.
What ships with it
14 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- assets/purview-s2s.ts 13 KB runs code
- assets/purview.cs 17 KB
- assets/purview.env.example 2.2 KB
- assets/purview.py 15 KB runs code
- assets/purview.ts 15 KB runs code
- assets/wiring-snippet.cs 3.1 KB
- assets/wiring-snippet.py 3.1 KB runs code
- assets/wiring-snippet.ts 2.4 KB runs code
- README.md 8.5 KB
- references/purview-portal-guide.md 4.1 KB
- references/troubleshooting.md 3.7 KB
- scripts/Grant-ContentProcessAppRole.ps1 4.8 KB runs code
- scripts/Grant-DelegatedGraphScope.ps1 5.5 KB runs code
- scripts/New-AiAppDlpPolicy.ps1 9.3 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 386 lines · 200 tokens per session scan A 4fdcb1e11fdd
purview-dlp-integration is a skill published in the GitHub repository microsoft/agent365-skills (51 stars, last pushed 17d ago), licensed MIT. It adds 200 tokens to every session and 6,679 once invoked, about $0.0008 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-16.
purview-dlp-integration compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| purview-dlp-integrationmicrosoft/agent365-skills | Skill | 51 | 17d ago | MIT | A | 200 | Claude Code |
| fto-triageanthropics/claude-for-legal | Skill | 9.9k | yesterday | Apache-2.0 | A | 81 | Claude Code |
| legal-holdanthropics/claude-for-legal | Skill | 9.9k | yesterday | Apache-2.0 | A | 68 | Claude Code |
| specification-writingwanshuiyin/Auto-claude-code-research-in-sleep | Skill | 19k | today | MIT | A | 49 | Claude Code |
| regulatory-research-fallbackHKUDS/OpenSpace | Skill | 7.9k | 2d ago | MIT | A | 20 | Claude Code, Codex |
| terms-of-servicegenspark-ai/genoffice | Skill | 12k | today | Apache-2.0 | A | 32 | Claude Code, Codex |
| x-scorecardx-cmd/x-cmd | Skill | 4.7k | 8d ago | Apache-2.0 | A | 57 | Claude Code, Codex |