PageSourceSearch

https://infinitytechstack.uk/_next/static/chunks/9844-ce659e3dce211a82.js

js infinitytechstack.uk collected 2026-10-06 13:39:14 UTC 126,393 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9844],{9844:(e,t,n)=>{n.r(t),n.d(t,{MODULES:()=>o});let o=[{name:"Copilot Studio Fundamentals",icon:"\uD83E\uDD1D",color:"#10b981",level:"BEGINNER",desc:"Build AI-driven agents with Copilot Studio and orchestrate workflows across Microsoft 365 and Power Platform.",lessons:[{title:"Copilot Studio Basics",xp:100,duration:"10 min",lab:{title:"List Copilots in Environment with PAC CLI",xp:150,scenario:"Authenticate to your Power Platform environment and query all provisioned Copilots using the Microsoft Power Platform CLI.",steps:[{say:"List all Copilot Studio bots deployed in the active environment.",check:["pac copilot list","copilot"],out:["Connected to environment: Production (https://contoso.crm.dynamics.com)","COPILOT ID                            SCHEMA NAME          STATE","cop_01CustomerSupport                 cr888_supportAgent   Active","cop_02ITHelpdesk                      cr888_itDeskAgent    Active"],hint:"Run pac copilot list with the PAC CLI.",cmd:"pac copilot list"}]},content:'<h2>The AI-Driven Agent in Power Platform</h2><p><strong>Microsoft Copilot Studio</strong> is the unified conversational and agentic platform for creating autonomous enterprise agents that reason over organizational knowledge, execute deterministic workflows, and surface seamlessly across Microsoft Teams, Microsoft 365, web portals, and custom apps.</p>\n        <h3>Enterprise Agent Architecture</h3><p>In production enterprise topologies, Copilot Studio agents are grounded on high-assurance enterprise data stores (Microsoft Dataverse, SharePoint document libraries, Azure SQL, and custom REST connectors). Every agent operation is bound by Microsoft Entra ID (formerly Azure AD) security contexts, environment data loss prevention (DLP) boundaries, and role-based access control (RBAC), ensuring that an agent never discloses information that the inquiring user does not possess permissions to read.</p>\n        <pre><code># Copilot Studio YAML Topic Definition\nkind: AdaptiveDialog\nbeginDialog:\n  kind: OnRecognizedIntent\n  id: hrPolicyInquiry\n  intent:\n    triggerQueries:\n      - "What is our corporate parental leave policy?"\n      - "How do I claim remote work equipment expenses?"\n  actions:\n    - kind: SearchAndSummarizeContent\n      id: searchEnterpriseKnowledge\n      userInput: =System.Activity.Text\n      knowledgeSources:\n        - DataversePolicyRecords\n        - SharePointHRHandbook\n    - kind: ConditionGroup\n      id: checkKnowledgeConfidence\n      conditions:\n        - condition: =Topic.AnswerFound = true\n          actions:\n            - kind: SendActivity\n              activity: "{Topic.Answer}"</code></pre>',quiz:[{q:"What is Copilot Studio primarily used for?",options:["GPU driver configuration","Building and managing AI-driven agents for business workflows","Replacing Dataverse","Hosting static websites"],correct:1,explanation:"Copilot Studio is Microsoft's platform for designing, grounding, and deploying enterprise agents."},{q:"What controls what an agent can access in Microsoft environments?",options:["Random model choice","Microsoft Entra ID permissions and environment policy","Browser cookies only","Keyboard shortcuts"],correct:1,explanation:"Permission boundaries come from identity and platform governance controls."},{q:"Which service commonly supplies enterprise knowledge for Power Platform agents?",options:["MS Paint","Dataverse and connected enterprise data sources","BIOS firmware","SMTP relays"],correct:1,explanation:"Agents are typically grounded on Dataverse and approved connected data sources."},{q:"Which channel can host agent experiences in Microsoft 365?",options:["Teams","Only Visual Studio","Only SharePoint Designer","Only Exchange admin center"],correct:0,explanation:"Teams is a primary channel for surfacing and interacting with enterprise agents."}]},{title:"Generative Orchestration",xp:150,duration:"15 min",lab:{title:"Verify Dynamic Chaining and Orchestration Mode",xp:150,scenario:"Inspect generative orchestrator settings to ensure dynamic chaining between topics and AI plugins is active.",steps:[{say:"Query the copilot configuration entity in Dataverse via pac tool to check orchestration settings.",check:["pac dataverse","bot","select"],out:["Querying entity 'bot'...","Schema: cr888_supportAgent","Orchestration Mode: Generative (Dynamic Chaining Enabled)","Fallback Strategy: Direct Generative Answers","✓ Orchestrator configured for multi-turn topic routing"],hint:"Run pac dataverse select with entity bot.",cmd:'pac dataverse select --entity bot --columns "schemaname,orchestrationsettings"'}]},content:"<h2>The Post-Trigger model</h2><p>Traditional bots relied on fragile \"Target Phrases\". In 2026, <strong>Generative Orchestration</strong> allows agents to use a 'Reasoning Core' to dynamically select the best tool, topic, or knowledge source based on natural language intent. This mimics human neurological processing: the model looks at the available tools as 'skills' and decides on-the-fly which skill is appropriate for the current problem, even if the user didn't use a specific keyword.</p>\n        <h3>Dynamic Topic Routing</h3><p>With orchestration enabled, Copilot Studio no longer forces a tree-based navigation. If a user asks a question that spans both 'Sales' and 'Support', the orchestrator will pull context from both knowledge blocks simultaneously. This eliminates the \"I'm sorry, I don't understand that\" errors common in legacy 2023-era chatbots.</p>
1",quiz:[{q:"What is the massive architectural shift in 'Generative Orchestration' within Copilot Studio?",options:["It uses more RAM","It eliminates the need for hard-coded trigger phrases, allowing the agent to use reasoning to select the best tool, topic, or knowledge source dynamically","It forces agents to use GPT-4 exclusively","It works offline"],correct:1,explanation:"Classic triggers are fragile. Generative orchestration uses the LLM's brain to decide 'I need this tool now' based on intent."},{q:"Which component manages the priority of agent actions during orchestration?",options:["The Cloud Gateway","The Orchestrator logic within Copilot Studio","The User's desktop","The SQL server"],correct:1,explanation:"The orchestrator is the 'brain' that sequences the tools and sub-agents."},{q:"When an agent fails to find a tool via Generative Orchestration, what should be the fallback?",options:["Exit the app","A 'Conversational' or 'Fallback' topic that clarifies intent with the user","Restart the server","Delete the agent"],correct:1,explanation:"Fallback topics are essential for graceful failure when the reasoning engine is uncertain."}]}]},{name:"Reasoning Agents",icon:"\uD83E\uDDE0",color:"#10b981",level:"ADEPT",desc:"Deploying specialized Researcher and Analyst agents using 'Deep Reasoning' (o3-tier) models.",lessons:[{title:"The Researcher Agent",xp:200,duration:"20 min",lab:{title:"Provision Enterprise Grounding Knowledge Source",xp:200,scenario:"Connect a SharePoint knowledge repository to your Copilot Studio agent to ground answers in verified documents.",steps:[{say:"Add a SharePoint document library as a grounding knowledge source via pac copilot tool.",check:["pac copilot","knowledge|source","sharepoint|https"],out:["Connecting knowledge source...","Source Type: SharePoint Document Library","URL: https://contoso.sharepoint.com/sites/engineering","Status: Indexing synchronized (42 documents ingested)","✓ Agent grounded in enterprise knowledge"],hint:"Execute pac copilot add-knowledge or specify the sharepoint url.",cmd:'pac copilot add-knowledge --source-type SharePoint --url "https://contoso.sharepoint.com/sites/engineering"'}]},content:"<h2>Knowledge Synthesis</h2><p>Researcher agents are specialized reasoning units designed for <strong>Deep Haystack Extraction</strong>. Unlike a standard search, a Researcher agent doesn't just return links; it reads the content of 50+ documents (SharePoint, SQL, Web) simultaneously, identifies contradictions, and synthesizes a single, cited report. In 2026, this is powered by high-tier models with extended 'thought-budgets' that perform internal verification steps before responding.</p>\n        <h3>Citations and Grounding</h3><p>Every claim made by a Researcher agent must be <strong>Groundable</strong>. The agent automatically appends [Ref 1, Ref 2] markers that link back to the exact paragraph in Dataverse or SharePoint. Using the 'Citations' tool is mandatory for enterprise research to prevent hallucination in legal or technical workflows.</p>",quiz:[{q:"What is the primary role of a 'Researcher' agent in M365 Copilot?",options:["Editing Excel cells","Performing multi-step information synthesis from mixed internal and web sources to provide deep-dive answers","Running PowerShell scripts","Translating languages only"],correct:1,explanation:"Researchers are designed for high-context, multi-source investigation."},{q:"Which data boundary prevents a Researcher agent from accessing personal emails by default?",options:["The user's password","The inherent Microsoft Entra ID permissions and the specific Knowledge sources configured for the agent","A firewall","The model version"],correct:1,explanation:"Agents can only see what they are permissioned to see via Entra ID (Office 365) security scopes."},{q:"Can a Researcher agent perform 'Citations' for its findings?",options:["No, it paraphrases everything","Yes, it is required to provide verifiable links or references to the source documents it analyzed","Yes, but only for web results","Only if the user asks"],correct:1,explanation:"Citations are critical for trust and grounding in enterprise research."}]},{title:"The Analyst Agent",xp:250,duration:"20 min",lab:{title:"Configure Semantic Model Data Connector",x
1p:200,scenario:"Link a Power BI DirectLake semantic model connector to an analytical Copilot agent for real-time DAX querying.",steps:[{say:"Register the Power BI analytical connector in your Copilot agent manifest.",check:["pac connector","create|update|list","powerbi|semantic"],out:["Connecting to Power BI REST Endpoint...","Connector: PowerBI-DirectLake-SalesAnalysis","Supported Actions: [ExecuteQueries, GetSemanticModelMetadata]","✓ Analytical connector registered for dynamic DAX queries"],hint:"pac connector create with powerbi connector definition.",cmd:"pac connector create --connector-definition powerbi-semantic.json"}]},content:"<h2>The Virtual Data Scientist</h2><p>Analyst agents act as the high-code bridge for low-code users. By utilizing <strong>Reasoning Tiers (like o3)</strong>, an Analyst agent can interpret a raw, messy dataset, generate the necessary Python/DAX code to clean it, and surface statistical anomalies (outliers) that would be invisible to standard agents. It doesn't just 'read' data—it <em>understands its distribution</em>.</p>\n        <h3>Step-by-Step Transparency</h3><p>Analysts provide a 'Reasoning Log' that users can expand to see the mathematical steps taken. This is essential for financial auditing, as it allows a human controller to verify that the agent didn't simply hallucinate a trend but actually performed a valid regression or aggregate analysis.</p>",quiz:[{q:"How does an 'Analyst' agent process a 10MB Excel file without crashing?",options:["It downloads the file to your computer","It utilizes specialized reasoning blocks to interpret the data schema and perform calculations via code-interpreter-like capabilities natively","It sends it to the user's browser","It converts it to a text file"],correct:1,explanation:"Analysts have specific compute blocks for data evaluation."},{q:"Which model 'tier' is typically required for accurate agentic analysis of complex multi-variable datasets?",options:["Haiku (Small)","Deep Reasoning (o3 or equivalent large-context reasoning models)","GPT-3.5","Base Logic"],correct:1,explanation:"Deep reasoning models provide the 'thought budget' for logical data puzzles."}]}]},{name:"Claude & the Council",icon:"\uD83C\uDFDB️",color:"#10b981",level:"EXPERT",desc:"Integrating multiple foundation models in Copilot Studio environments with governance and model selection controls.",lessons:[{title:"Claude in Power Platform",xp:300,duration:"15 min",lab:{title:"Register Anthropic Custom Connector in APIM",xp:200,scenario:"Expose Anthropic Claude 3.7 Sonnet as an enterprise custom connector in Azure API Management for Power Platform consumption.",steps:[{say:"Import the Anthropic Messages API OpenAPI specification into your Power Platform environment.",check:["pac connector","create","anthropic|claude"],out:["Validating OpenAPI 3.0 specification...","Connector Name: Anthropic-Claude-Enterprise","Authentication: API Key Header (x-api-key)","Operation: CreateMessage (/v1/messages)","✓ Custom connector successfully provisioned in environment"],hint:"pac connector create --custom-connector-definition anthropic-openapi.json",cmd:"pac connector create --custom-connector-definition anthropic-messages-openapi.json"}]},content:"<h2>Model Choice in Enterprise Environments</h2><p>Copilot Studio environments can expose different model options depending on region, licensing, and tenant configuration. Teams should use tenant-approved models and review current Microsoft documentation before rollout.</p>\n        <h3>Needle Mastery</h3><p>Claude is particularly favored for 'Deep Context' RAG because of its large context window — Claude 3.7 Sonnet delivers a 200K token window with industry-leading reasoning accuracy. Claude's high performance in <strong>Needle In A Haystack</strong> retrieval tests makes it ideal for enterprise use. When an agent needs to analyze a 1,000-page regulatory manual, Claude 3.7 Sonnet is an optimal reasoning engine.</p>\n        <h3>Claude 3.7 Sonnet Integration in Copilot Studio</h3><p>As of June 2026, <strong>Claude 3.7 Sonnet</strong> is generally available as a selectable primary orchestration model for Copilot Studio agents, alongside <strong>OpenAI o1 Chat</strong> — both officially GA for production agents. <strong>Mistral Medium 3.5</strong>
1 also joined the model picker as an experimental option the same release wave, broadening tenant model choice beyond OpenAI and Anthropic.</p>",quiz:[{q:"How do you select an approved model for a Copilot Studio agent?",options:["By writing a Python script","Through environment model settings and tenant-approved model pickers","By calling an external API key from the user's browser","You cannot configure model choice"],correct:1,explanation:"Model availability is controlled by tenant and environment governance settings."},{q:"What is the primary technical reason to choose Claude 3.7 Sonnet over GPT-4o for a specific prompt?",options:["It is always cheaper","Superior performance in strict JSON-schema adherence, extended context (1M tokens standard), and instruction following for sensitive apps","It has a better name","It uses less electricity"],correct:1,explanation:"Claude 3.7 Sonnet's 1M context window and updated tokenizer make it ideal for deep-context RAG over massive documents."},{q:"Which Claude model became GA as a primary Copilot Studio orchestration model in June 2026?",options:["Claude 2","Claude 3.7 Sonnet","Claude Instant","Claude 1.3"],correct:1,explanation:"Claude 3.7 Sonnet and OpenAI o1 Chat both reached general availability as selectable primary models for Copilot Studio agents in June 2026."}]},{title:"The Multi-modal Council",xp:350,duration:"20 min",lab:{title:"Route Agent Queries Across Model Council",xp:200,scenario:"Configure a multi-model fallback arbitration flow in Power Automate between Claude 3.7 and GPT-4o.",steps:[{say:"Validate the JSON orchestration definition for routing vision queries to GPT-4o and reasoning to Claude.",check:["cat|echo|pac","council|orchestration","claude|gpt-4o|routing"],out:["Validating routing rules...","Vision Payload -> Route: AzureOpenAI-GPT4o","Deep Code Analysis -> Route: AnthropicClaude-Sonnet","Consensus Strategy: Highest confidence score fallback","✓ Multi-modal council router verified"],hint:"cat council-orchestration.json | jq .routing_rules",cmd:"cat council-orchestration.json | jq .routing_rules"}]},content:'<h2>Consensus-Based Multi-Model Orchestration</h2><p>The <strong>Council</strong> is an enterprise architectural pattern where high-stakes decisions are evaluated concurrently by two or more foundation models with differing inductive biases (such as Anthropic Claude 3.7 Sonnet and OpenAI o1 Chat). By dispatching prompts in parallel and evaluating output convergence, automated systems achieve near-zero hallucination rates.</p>\n        <div class="ca-callout">\n          <strong>The Council Consensus Gate</strong>\n          <ol>\n            <li><strong>Parallel Ingestion:</strong> The incoming prompt and enterprise context are dispatched asynchronously to both model endpoints.</li>\n            <li><strong>Consensus Verification:</strong> A programmatic evaluation layer computes semantic embedding similarity. If similarity exceeds threshold (&gt; 0.88), the consensus response is committed to Dataverse and delivered.</li>\n            <li><strong>Divergence Escalation:</strong> If reasoning chains diverge significantly, the agent halts automatic execution and routes the audit artifact to a human supervisor in Microsoft Teams.</li>\n          </ol>\n        </div>\n        <pre><code>// Power Fx Multi-Model Consensus Architecture\nSet(\n    varClaudeOutput,\n    ClaudeSonnetConnector.AnalyzeContract({\n        DocumentText: TextInput_Contract.Text,\n        ChecklistId: "COMPLIANCE_2026_V4"\n    })\n);\nSet(\n    varOpenAIOutput,\n    AzureOpenAIConnector.AnalyzeContract({\n        DocumentText: TextInput_Contract.Text,\n        ChecklistId: "COMPLIANCE_2026_V4"\n    })\n);\n\nIf(\n    varClaudeOutput.RiskLevel = varOpenAIOutput.RiskLevel,\n    Patch(ComplianceAuditLog, Defaults(ComplianceAuditLog), {\n        Status: "ConsensusApproved",\n        RiskAssessment: varClaudeOutput.RiskLevel,\n        AuditEvidence: varClaudeOutput.Summary\n    }),\n    Notify("Council Divergence: Case routed to Senior Compliance Officer", NotificationType.Warning)\n)</code></pre>',quiz:[{q:"What is the primary benefit of the 'Council' feature in M365 Copilot?",options:["It is cheaper","It runs multiple models simultaneously on a 
1single prompt to highlight points of agreement or divergence, improving accuracy","It translates text into French","It creates calendar invites"],correct:1,explanation:"Consensus improves reliability."},{q:"In a 'Council' execution, what happens if two models give a different answer?",options:["The app crashes","The user is presented with the divergence so they can evaluate which source or reasoning is correct","The first answer is deleted","The models start a text-based fight"],correct:1,explanation:"Surfacing disagreement is part of the trust model."},{q:"What metric is typically evaluated to confirm consensus between two independent model outputs?",options:["Response character count equality","Semantic embedding similarity and categorical risk rating alignment","GPU fan speed","Network packet ping times"],correct:1,explanation:"Consensus is evaluated by comparing semantic similarity and structured categorization alignment."}]}]},{name:"Agentic RPA",icon:"\uD83E\uDD16",color:"#10b981",level:"EXPERT",desc:"Operating self-healing desktop flows and AI-driven UI automation.",lessons:[{title:"Self-Healing Desktop Flows",xp:400,duration:"20 min",lab:{title:"Run 
1Unattended Desktop Flow with Fallback Selectors",xp:150,scenario:"Trigger Power Automate for Desktop with computer-vision healing enabled for fragile UI selectors.",steps:[{say:"Execute the desktop flow runner with auto-healing and diagnostic telemetry.",check:["PAD.Console.Host.exe|pac desktop","run|launch","InvoiceProcessing"],out:["Initializing Power Automate for Desktop host...","Flow: InvoiceProcessing_Unattended","UI Selector 'Submit_Button_v1' not found on screen.","Auto-Healing triggered: Computer Vision matched 'Submit' coordinate at (1024, 768).","✓ Flow completed successfully with self-healing"],hint:"Execute PAD.Console.Host.exe -FlowName InvoiceProcessing or pac desktop run.",cmd:'pac desktop run --flow-name "InvoiceProcessing" --enable-auto-heal'}]},content:"<h2>Visual Resilience</h2><p>RPA (Robotic Process Automation) has historically been 'brittle'—if a button moves by 10 pixels, the script breaks. <strong>Agentic RPA</strong> solves this using Computer Vision. The agent 'looks' at the screen like a human does. If the button's ID changes but its visual label 'Submit' remains, the agentic reasoning engine 'heals' the selector automatically and continues the flow without human intervention.</p>\n        <h3>Vision-Action Training</h3><p>In 2026, you can train a Desktop Flow by simply letting the agent 'watch' you work. It uses Multimodal LMMs to translate your visual actions into an optimized automation map, significantly faster than manual recording or step-building.</p>",quiz:[{q:"How does 'Self-Healing' RPA solve the problem of a website button changing its ID?",options:["It stops the flow","It uses Computer Vision and agentic reasoning to 're-find' the visual element even if the underlying HTML/ID selector has shifted","It restarts the computer","It uses the same ID anyway"],correct:1,explanation:"Visual grounding vs Code grounding."},{q:"Which Power Automate capability enables agents to interact with legacy software that has NO API?",options:["Cloud Flows","Desktop Flows (RPA)","Excel macros","SQL queries"],correct:1,explanation:"RPA is the bridge to legacy."}]}]},{name:"National Copilot",icon:"\uD83C\uDFDB️",color:"#10b981",level:"MASTER",desc:"Sovereign clouds, high-tier governance, and specialized skilling framework.",lessons:[{title:"Sovereign & Restricted Clouds",xp:450,duration:"15 min",lab:{title:"Authenticate PAC CLI to Government Community Cloud (GCC)",xp:150,scenario:"Configure authentication endpoint targeting US GCC High sovereign cloud boundary.",steps:[{say:"Create a PAC CLI authentication profile pointing to the US GCC High authority.",check:["pac auth create","cloud","UsGovHigh|UsGov|gcc"],out:["Connecting to authority: login.microsoftonline.us...","Environment: https://contoso.crm9.dynamics.com (GCC High)","Data Boundary: United States Sovereign Boundary","✓ Authenticated profile 'GCCHigh-Admin' created successfully"],hint:"pac auth create --cloud UsGovHigh --environment https://contoso.crm9.dynamics.com",cmd:"pac auth create --cloud UsGovHigh --environment https://contoso.crm9.dynamics.com"}]},content:"<h2>Sovereign Data Boundaries</h2><p><strong>National Copilot</strong> is the architectural framework for 'Restricted' clouds (UK G-Cloud, US GovCloud, EU Data Boundary). These localized instances ensure that all neural inference, prompt data, and retrieval-augmented context remain physically within a specific legal jurisdiction. In 2026, this is critical for critical national infrastructure (CNI) where data sovereignty is a matter of law, not just policy.</p>\n        <h3>Governance & Skilling</h3><p>Operating a National Copilot requires specialized <strong>Sovereign Change Management</strong>. This involves configuring 'Data Residency' locks and ensuring that the agentic reasoning engines do not exfiltrate information to public global weights during optimization cycles.</p>",quiz:[{q:"What is a 'National Copilot Specialist'?",options:["A Microsoft repair technician","An expert focused on regional-specific AI change management, sovereign cloud governance, and strategic skilling","An AI model for weather","A marketing bot"],correct:1,explanation:"Strategic roles for region-level AI adoption."},{q:"In a 'National Cloud' deployment, where is the prompt data legally required to stay?",options:["In the USA","Within the regional/sovereign boundary defined by the specific National Cloud instance (e.g., EU Data Boundary)","On the user's phone","In a public database"],correct:1,explanation:"Data residency."}]}]},{name:"Advanced PCF & Full-Stack",icon:"⚙️",color:"#10b981",level:"MASTER",desc:"Operating native React and Typescript with multi-modal vision components.",lessons:[{title:"Multi-modal PCF Components",xp:500,duration:"20 min",lab:{title:"Scaffold a PCF Component",xp:200,scenario:"Build the shell of a custom PCF control from the terminal: scaffold with the Power Platform CLI, then compile it with npm.",steps:[{say:"Initialize a new PCF project with the pac CLI (needs --namespace, --name and --template).",check:["pac\\s+pcf\\s+init","--namespace\\s+\\S","--name\\s+\\S","--template\\s+(field|dataset)"],out:["The PowerApps component framework project was successfully created.","✓ ControlManifest.Input.xml, index.ts and package.json scaffolded"],hint:"pac pcf init --namespace ContosoLab --name VisionCard --template field",cmd:"pac pcf init --namespace ContosoLab --name VisionCard --template field"},{say:"Install dependencies and build the control with npm.",check:["npm\\s+(run\\s+build|install)"],out:["added 412 packages in 18s","[build] Compiling ControlManifest.Input.xml","[build] Succeeded — output: out/controls/VisionCard"],hint:"npm install (then npm run build) — either counts here",cmd:"npm install && npm run build"}]},content:"<h2>Visual Extensibility</h2><p>The <strong>Power Apps Component Framework (PCF)</strong> has evolved to support <strong>Native Vision Pipelines</strong>. Developers can now build React-based controls that hook into the device's camera stream and perform real-time tensor analysis locally before passing structured metadata back to the Power App. This eliminates the latency of traditional 'send-to-cloud' vision loops for high-speed manufacturing or security scenarios.</p>\n        <h3>Hardware Abstraction</h3><p>By declaring capabilities in the <code>ControlManifest.Input.xml</code>, a PCF control can request secure, sandboxed access to local hardware resources (GPU, NPU) to accelerate neural reasoning within the host container.</p>",quiz:[{q:"What is the primary role of the 'pac pcf push' command?",options:["Deletion","Initialize a secure, high-speed upload of the component directly into the target environment for immediate testing","Inviting dev","App store"],correct:1,explanation:"Push is for testing dev builds."},{q:"How does a PCF control securely access hardware in 2026?",options:["Bypassing browser","By declaring the specific device capability in the ControlManifest.Input.xml and requesting secure host-abstraction permissions","Hardware access is blocked","jQuery"],correct:1,explanation:"The Manifest is the security contract."}]}]},{name:"Enterprise ALM Agents",icon:"\uD83D\uDEE1️",color:"#10b981",level:"MASTER",desc:"Managed solutions and automated AI-driven deployment agents.",lessons:[{title:"Automated Migration Agents",xp:550,duration:"20 min",lab:{title:"Export a Solution with pac CLI",xp:200,scenario:"ALM discipline, terminal edition. Authenticate the Power Platform CLI against your environment, then export a solution ready for source control.",steps:[{say:"Create an authentication profile against your environment with pac auth.",check:["pac\\s+auth\\s+create","--environment\\s+\\S"],out:["Creating auth profile…","✓ Authenticated as [email protected]","✓ Connected to environment: Contoso-Dev (https://contoso-dev.crm.dynamics.com)"],hint:"pac auth create --environment https://contoso-dev.crm.dynamics.com",cmd:"pac auth create --environment https://contoso-dev.crm.dynamics.com"}
1,{say:"Export a solution to a zip file with pac solution export.",check:["pac\\s+solution\\s+export","--name\\s+\\S"],out:["Connected to… Contoso-Dev","Exporting solution 'CustomerPortal'…","✓ Solution exported to .\\CustomerPortal.zip (unmanaged)","Next: pac solution unpack for source-control-friendly XML"],hint:"pac solution export --name CustomerPortal --path .\\out",cmd:"pac solution export --name CustomerPortal --path .\\out"}]},content:'<h2>Autonomous Self-Healing ALM Pipelines</h2><p>Application Lifecycle Management (ALM) in enterprise environments is orchestrated by autonomous <strong>Deployment Agents</strong>. These agents reside within GitHub Actions or Azure DevOps pipelines, performing automated dependency resolution, static schema validation, and conflict arbitration prior to production promotion.</p>\n        <p>If an unmanaged change in a development sandbox references a newly introduced Dataverse entity or security role that was omitted from the solution XML, the migration agent identifies the dependency gap, packages the required sub-components, and triggers <strong>Solution Checker</strong> rules before committing artifacts to source control.</p>\n        <pre><code># Automated ALM Solution Pack & Verification Workflow\n- name: Package Unpacked Solution\n  run: pac solution pack --zipfile out/CustomerPortal_managed.zip --folder src/Solutions/CustomerPortal --packagetype Managed\n\n- name: Run Solution Checker Rule Validation\n  run: pac solution check --solution-path out/CustomerPortal_managed.zip --geo EMEA --rule-set "AppCertification"</code></pre>',quiz:[{q:"What happens if a deployment agent detects a 'Missing Dependency'?",options:["It ignores it","It halts the migration, generates an error report, and suggests the specific component that needs to be packaged","It deletes production","It renames the app"],correct:1,explanation:"Agents guard the prod boundary."},{q:"Why is 'Managed' the mandatory format for Production?",options:["Cheaper","It prevents ad-hoc changes from being made directly in production, ensuring a single source of truth","Faster","Different colors"],correct:1,explanation:"Managed = Infrastructure as Code."},{q:"What tool evaluates Power Platform solutions for security, performance, and stability risks prior to deployment?",options:["PowerPoint","Power Platform Solution Checker (pac solution check)","Paint 3D","Windows Defender offline scan"],correct:1,explanation:"Solution Checker applies static analysis rules to flag architectural, performance, and security anti-patterns in Power Apps components."}]}]},{name:"Purview AI Shield",icon:"\uD83D\uDD12",color:"#10b981",level:"GRANDMASTER",desc:"Data loss prevention for agents and real-time risk scores.",lessons:[{title:"Agentic DLP Policies",xp:600,duration:"20 min",lab:{title:"Audit Data Loss Prevention (DLP) Policies for AI Agents",xp:200,scenario:"Inspect Microsoft Purview and Power Platform DLP policies to ensure external HTTP endpoints are blocked from Business connectors.",steps:[{say:"List DLP policy rule groups to verify tenant connector classification.",check:["pac admin","dlp|policy","list"],out:["Fetching tenant DLP policies...","Policy: Enterprise-Core-DLP (Enforced)","Business Group: [Dataverse, SharePoint, Office365Users]","Non-Business Group: [Twitter, Dropbox]","Blocked Group: [HTTP, AnonymousWebhooks]","✓ Connector isolation verified against data leakage"],hint:"pac admin list-dlp-policies or pac admin dlp list",cmd:"pac admin list-dlp-policies"}]},content:'<h2>Real-Time Neuro-Data Protection with Purview AI Shield</h2><p><strong>Microsoft Purview AI Shield</strong> acts as the runtime protection gateway for enterprise agents across Power Platform and Copilot Studio. It continuously inspects prompts, tool input payloads, and generated model outputs in real time.</p>\n        <p>If an agent attempts to exfiltrate proprietary source code, credentials, or sensitive Personally Identifiable Information (PII) such as National Insurance or credit card numbers, the AI Shield performs inline redaction before tokens traverse network boundaries, preserving zero-trust privacy guarantees.</p>\n        <pre><code># Enforce Enterprise Agentic DLP Boundaries via PowerShell\n$dlpPolicy = New-DlpPolicy -DisplayName "AI-Agent-Strict-Guardrail" `\n    -DefaultConnectorClassification "Blocked" `\n    -EnvironmentName "Production-Finance-01"\n\n# Authorize high-trust enterprise connectors into Business group\nAdd-CustomConnectorToPolicy -PolicyName $dlpPolicy.PolicyName `\n    -ConnectorName "shared_commondataserviceforapps" -GroupName "Business"\nAdd-CustomConnectorToPolicy -PolicyName $dlpPolicy.PolicyName `\n    -ConnectorName "shared_azureopenai" -GroupName "Business"</code></pre>',quiz:[{q:"How does 'Agentic DLP' differ from standard Dataverse DLP?",options:["Only emails","It evaluates the intent of the agent and the risk of the specific LLM being used to prevent exfiltration","Free","Windows XI"],correct:1,explanation:"Agentic DLP looks at intent and tool-calls."},{q:"Which tool centralizes the logging of all Claude and GPT prompt histories?",options:["Excel","Microsoft Purview specifically targeting AI Hub metrics","Local text files","Dataverse logs"],correct:1,explanation:"Purview is the AI audit brain."},{q:"What action does Purview AI Shield perform if sensitive PII is detected during agent execution?",options:["Permits exfiltration silently","Performs real-time inline redaction or blocks packet egress across inference boundaries","Restarts the client operating system","Disables the user's monitor"],correct:1,explanation:"Inline redaction sanitizes sensitive tokens before network egress occurs."}]}]},{name:"Licensing & APIM",icon:"⚖️",color:"#10b981",level:"GRANDMASTER",desc:"Navigating 'Agentic Capacity', the 'Multiplexing Trap', AI Builder credit sunset, and Copilot Credits.",lessons:[{title:"The Multiplexing Audit",xp:650,duration:"20 min",lab:{title:"Audit User vs Agent Per-Capacity Licenses",xp:150,scenario:"Run license verification on service principals to prevent multiplexing violations under Microsoft licensing terms.",steps:[{say:"Query tenant capacity and assign service principal per
1-flow licenses.",check:["pac admin","license|assign|capacity"],out:["Tenant Capacity Report:","Power Automate Process Licenses: 50 Assigned / 12 Available","Copilot Studio Messages Allocated: 25,000 / month","Service Principal 'SP_A2A_Agent': Assigned dedicated process license.","✓ Zero multiplexing risk identified"],hint:"pac admin list-tenant-capacity or pac admin assign-license",cmd:"pac admin list-tenant-capacity"}]},content:"<h2>Commercial Compliance & The Multiplexing Architecture</h2><p>In Microsoft licensing jurisprudence, <strong>Multiplexing</strong> refers to pooling or tunneling data access through a single licensed intermediary account (such as a generic service principal or admin user) to serve hundreds of unlicensed human users. Multiplexing does NOT reduce the number of required licenses.</p>\n        <p>In modern agentic architectures, Microsoft licenses automated workloads through <strong>Agentic Capacity Subscriptions</strong> (measuring completed Work Units and neural reasoning tokens) combined with strict end-user identity passthrough.</p>\n        <pre><code>// Power Fx: Enforce End-User Identity Passthrough to avoid Multiplexing\nWith(\n    { currentUser: User().Email },\n    If(\n        IsBlank(currentUser),\n        Error({Kind: ErrorKind.Permission, Message: \"Direct service principal access rejected: End-user identity required\"}),\n        Patch(\n            'Support Tickets',\n            Defaults('Support Tickets'),\n            {\n                Title: TextInput_Subject.Text,\n                'Created By User': currentUser,\n                'Execution Mode': \"UserContextPassthrough\"\n            }\n        )\n    )\n)</code></pre>",quiz:[{q:"Which scenario triggers a 'Multiplexing' violation?",options:["Automated backups","Building an external web portal where 1,000 users interact with Dataverse via a single licensed 'Bridge' account","Sharing screen","Offline mode"],correct:1,explanation:"Bridging 1:1,000 is a violation."},{q:"What is 'Agentic Capacity' in 2026 licensing?",options:["User count","A specific subscription tier dictated by the total volume of successful agent actions and neural reasoning tokens consumed","RAM","Copilot version"],correct:1,explanation:"We license the 'work performed' by agents."},{q:"If an agent runs 500 tasks per hour, does it require its own user license?",options:["No, it consumes the 'Tenant Agentic Capacity' pool rather than needing an individual human seat license","Yes, every agent needs a passport","No, it's free","It depends on the time of day"],correct:0,explanation:"Agent workers use pooled capacity."},{q:"Can a user 'Mix' Standard and Premium licenses in a single business app?",options:["Yes","Technically yes, but the user is limited to the functionality allowed by their specific assigned SKU; a Standard user cannot use Premium connectors in that same app","No, it crashes","Only if you have an E3 license"],correct:1,explanation:"Licensing is enforced per-user at the connector layer."},{q:"What is the penalty for a failed Multiplexing Audit in 2026?",options:["A small fine","Retroactive licensing billing and potential immediate suspension of the relevant Power Platform environments until compliance is restored","Nothing","A stern email"],correct:1,explanation:"Microsoft enforces licensing strictly in enterprise tenants."}]},{title:"AI Builder Credit Sunset & Copilot Credits",xp:700,duration:"15 min",lab:{title:"Inspect Copilot Capacity Credit Burn Rate",xp:150,scenario:"Track the consumption of unified Copilot Credits across automated agent runs and document processors.",steps:[{say:"Fetch credit consumption telemetry using the Business App Platform REST API.",check:["az rest","businessappplatform|bap","capacity|credits"],out:["Querying BAP telemetry API...","{",'  "creditType": "CopilotUnifiedCredits",','  "totalAllocated": 100000,','  "consumedThisPeriod": 24150,','  "burnRate": "805 credits/day"',"}","✓ Credit consumption within projected monthly budget"],hint:"az rest --method get --url https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/scopes/admin/capacity",cmd:'az rest --method get --url "https://api.bap.microsoft.com/providers/Microsoft.BusinessAppPlatform/scopes/admin/capacity"'}]},content:'<h2>⚠️ Breaking Change: AI Builder Credits Removed November 2026</h2><p>This is the most critical licensing change of 2026. Microsoft is <strong>definitively removing AI Builder credits</strong> that were previously seeded into Power Apps Premium and Power Automate Premium licenses on <strong>November 1, 2026</strong>. Organizations relying on these seeded credits for document processing, prediction, or form recognition flows will face hard stops after this date.</p>\n        <h3>Transition Roadmap</h3>\n        <table><thead><tr><th>
1Date</th><th>Change</th><th>Action Required</th></tr></thead><tbody>\n        <tr><td><strong>Early 2026</strong></td><td>New AI Builder add-ons can no longer be purchased</td><td>Inventory current AI Builder usage</td></tr>\n        <tr><td><strong>Mid 2026</strong></td><td>Existing add-ons usable until contract expiry</td><td>Evaluate Copilot Credit requirements</td></tr>\n        <tr><td><strong>Nov 1, 2026</strong></td><td>Seeded AI Builder credits removed from all licenses</td><td>Purchase Copilot Credits or flows stop</td></tr></tbody></table>\n        <h3>Copilot Credits: The New Currency</h3><p><strong>Copilot Credits</strong> replace AI Builder credits as the universal AI consumption unit across Power Platform and Copilot Studio. Key facts:</p>\n        <ul><li>New customers must purchase Copilot Credits to run AI features</li>\n        <li>If AI Builder credits are exhausted, the system <em>automatically attempts to use Copilot Credits</em></li>\n        <li>Copilot Credits are also used for Copilot Studio agent messages, Bing search in Copilot, and generative AI features in model-driven apps</li></ul>\n        <h3>Power Apps Per App Plan Retired</h3><p>The <strong>Power Apps Per App Plan</strong> was retired for new customers on <strong>January 2, 2026</strong>. Existing enterprise customers on EA agreements may have transition timelines — consult your Microsoft representative.</p>\n        <h3>Licensing Capacity Reporting (GA March 2026)</h3><p>The Power Platform Admin Center now provides <strong>Licensing Capacity Reporting</strong> — a unified dashboard showing which users, flows, and environments are driving consumption. This enables proactive cost management and prevents licensing surprises at renewal time.</p>\n        <div class="ca-callout"><strong>\uD83D\uDEA8 Action Required:</strong> Run an AI Builder usage audit in your tenant NOW. Identify all flows using AI Builder actions and calculate the Copilot Credits needed post-November 2026. Failure to plan will result in production automation failures on November 1st.</div>',quiz:[{q:"When are seeded AI Builder credits definitively removed?",options:["January 2026","March 2026","November 1, 2026","December 2027"],correct:2,explanation:"November 1, 2026 is the hard deadline — all seeded AI Builder credits in Power Apps/Automate Premium licenses are removed."},{q:"What happens if AI Builder credits are exhausted in 2026?",options:["AI features stop working permanently","The system automatically attempts to use Copilot Credits instead","A new license is auto-purchased","The flow retries after 24 hours"],correct:1,explanation:"Copilot Credits serve as the fallback currency when AI Builder credits are unavailable."},{q:"What replaced the Power Apps Per App Plan for new customers?",options:["It's still available","A new named user plan requiring per-user licensing","It was retired January 2, 2026 — new customers use Power Apps Premium instead","The Copilot Credits bundle"],correct:2,explanation:"Per App was retired January 2, 2026 for new customers."}]}]},{name:"Offline Edge Profiles",icon:"\uD83D\uDCF6",color:"#10b981",level:"GRANDMASTER",desc:"Operating Mobile-first agents without an active network connection.",lessons:[{title:"Mobile Agent Sync",xp:700,duration:"20 min",lab:{title:"Deploy Offline Sync Profile for Field Agents",xp:200,scenario:"Configure Dataverse offline profile to cache customer assets and maintenance logs on mobile devices.",steps:[{say:"Publish an offline profile for mobile Field Service agents.",check:["pac dataverse","offline|publish|profile"],out:["Inspecting offline profile 'FieldService_Offline_v2'...","Entities included: [Account, WorkOrder, AssetHistory]","Sync Filter: Last 30 Days (Fast Sync Delta enabled)","✓ Offline profile published to mobile edge clients"],hint:"pac dataverse publish-offline-profile with profile name.",cmd:'pac dataverse publish-offline-profile --name "FieldService_Offline_v2"'}]},content:"<h2>Intelligence on the Edge</h2>\n<p>In 2026, <strong>Offline Edge Profiles</strong> enable agents to continue functioning without a network connection. This is critical for field workers in construction, healthcare, and remote infrastru
1cture who operate in environments with intermittent or zero connectivity.</p>\n<h3>Architecture of an Offline Agent</h3>\n<p>An offline agent consists of three runtime layers:</p>\n<ul>\n<li><strong>Local SLM (Small Language Model):</strong> A compressed, quantized model (e.g., Phi-3, Orca-Mini) cached on the device. It handles basic reasoning, form validation, and conversational guidance without any cloud dependency.</li>\n<li><strong>Dataverse Delta Cache:</strong> A local SQLite mirror of the user's most relevant Dataverse records. Only records matching the user's 'Work Profile' (role + active projects) are synced, minimizing storage.</li>\n<li><strong>Device-Side Automation Engine:</strong> Power Automate logic compiled into a JavaScript runtime within the mobile app wrapper. Simple flows (approvals, notifications, field updates) execute locally and queue cloud actions for later sync.</li>\n</ul>\n<h3>Conflict Resolution on Reconnect</h3>\n<p>When the device reconnects, a <strong>Delta Sync</strong> process begins:</p>\n<ol>\n<li><strong>Timestamp Comparison:</strong> Each offline record carries a modification timestamp.</li>\n<li><strong>Conflict Detection:</strong> If the same record was modified both locally and in the cloud, the system flags it.</li>\n<li><strong>Resolution Strategy:</strong> Configurable per-table: 'Last Write Wins', 'Cloud Priority', or 'User Decision' (prompts the user to choose).</li>\n</ol>\n<h3>Background Sync Policies</h3>\n<table><tr><th>Policy</th><th>Behavior</th><th>Use Case</th></tr>\n<tr><td><strong>Aggressive</strong></td><td>Sync every 30 seconds when connected</td><td>Real-time field data (safety inspections)</td></tr>\n<tr><td><strong>Balanced</strong></td><td>Sync every 5 minutes, or on app resume</td><td>Standard field work</td></tr>\n<tr><td><strong>Battery Saver</strong></td><td>Sync only on Wi-Fi or manual trigger</td><td>Remote sites with limited power</td></tr></table>\n<div class=\"ca-callout\"><strong>\uD83C\uDFAF Pro Tip:</strong> Always test your offline agent by enabling Airplane Mode on the device. The #1 cause of field failures is assuming that cached data is sufficient — ensure your Work Profile captures all necessary lookup tables, not just the primary entity.</div>",quiz:[{q:"How does an agent maintain a 'Reasoning Context' without an active web connection?",options:["Doesn't work","By caching the 'Researcher' profile and small SLM (Small Language Model) weights natively within the mobile-edge profile","RAM storage","Ask user wait"],correct:1,explanation:"Edge AI (SLMs) allows local inference."},{q:"Which sync-pattern handles conflict resolution when a mobile agent returns to 5G?",options:["Manual overwrite","Delta Sync with conflict detection logic providing 'Last Write Wins' or 'User Decision' prompts","Delete local","Restart app"],correct:1,explanation:"Delta sync ensures changes are handled correctly."},{q:"What is the 2026 'Background Sync' policy for mobile agents?",options:["Only sync when app is open","Intelligent background polling that syncs dataverse deltas even when the app is minimized (subject to OS battery rules)","Never sync","Sync once a week"],correct:1,explanation:"Background sync prevents the 'Loading...' screen when users open the app in the field."},{q:"Can an offline agent execute a 'Power Automate' flow?",options:["No, because flows are cloud-based","Yes, if the flow's logic is compiled into a 'Device-Side' automation engine (e.g. JavaScript logic in the mobile wrapper)","Always","Only if the phone is plugged in"],correct:1,explanation:"Offline-ready automation requires the logic to be on the device."},{q:"What is 'Partial Knowledge Caching'?",options:["Forgetting things","A strategic caching layer that only stores the most relevant Dataverse records matching the user's current 'Work Profile' to save mobile storage","Caching only half of an image","An error"],correct:1,explanation:"Storing only what's needed for the task optimizes mobile performance."}]}]},{name:"Work IQ & Agent Flows",icon:"\uD83E\uDDE0",color:"#10b981",level:"MASTER",desc:"Deep M365 context intelligence and structured agentic workflows for enterprise automation.",lessons:[{title:"Work IQ: Enterprise Context",xp:800,duration:"15 min",lab:{title:"Query Microsoft Graph Work IQ Context",xp:200,scenario:"Call Microsoft Graph API to retrieve relevant emails, meetings, and shared files to ground user agent conversations.",steps:[{say:"Send a request to Microsoft Graph /v1.0/me/insights/used to pull recent enterprise context.",check:["curl|az rest","graph.microsoft.com","insights/used|me/"],out:["Fetching Microsoft Graph Work IQ context...","{",'  "value": [','    { "resourceVisualization": { "title": "Q3 Architecture Deck.pptx", "type": "PowerPoint" } },','    { "resourceVisualization": { "title": "Security Audit Report.docx", "type": "Word" } }',"  ]","}","✓ Context ready for agent prompt augmentation"],hint:"az rest --method get --url https://graph.microsoft.com/v1.0/me/insights/used",cmd:'az rest --method get --url "https://graph.microsoft.com/v1.0/me/insights/used"'}]},content:'<h2>Agents That Know Your Organization</h2>\n<p><strong>Work IQ</strong> (2026) gives agents deep, real-time context from Microsoft 365 — emails, meetings, chats, documents, and organizational hierarchy. This transforms agents from generic assistants into <strong>domain experts</strong> that understand your company\'s culture, processes, and operational requirements.</p>\n<h3>What Work IQ Provides</h3>\n<table><tr><th>Signal</th><th>Source</th><th>Use Case</th></tr>\n<tr><td><strong>Communication Patterns</strong></td><td>Outlook, Teams</td><td>Agent knows who to CC on reports</td></tr>\n<tr><td><strong>Document Context</strong></td><td>SharePoint, OneDrive</td><td>Agent references latest policy docs</td></tr>\n<tr><td><strong>Meeting Intelligence</strong></td><td>Teams Meetings</td><td>Agent prepares agendas from past action items</td></tr>\n<tr><td><strong>Org Structure</strong></td><td>Entra ID, M365</td><td>Agent routes approvals to the correct manager</td></tr></table>\n<h3>Agent Flows</h3>\n<p><strong>Agent Flows</strong> allow agents to own repeatable processes from start to finish. They combine free-form reasoning with structured, deterministic execution:</p>\n<ol>\n<li><strong>Event Trigger:</strong>
1 A new email, form submission, or schedule fires the flow.</li>\n<li><strong>Agentic Reasoning:</strong> The agent reads context, decides what to do, and plans steps.</li>\n<li><strong>Structured Execution:</strong> Deterministic steps (data lookup, form filling, approvals) execute reliably.</li>\n<li><strong>Human Checkpoint:</strong> For high-stakes decisions, the agent pauses for human approval.</li>\n</ol>\n<div class="ca-callout"><strong>\uD83C\uDFAF Pro Tip:</strong> Agent Flows are ideal for processes that need both intelligence AND reliability — like expense approval workflows that require understanding policy context but must follow strict approval chains.</div>',quiz:[{q:"What is Work IQ?",options:["A fitness tracker","A feature that gives agents deep, real-time context from M365 including emails, meetings, and org structure","A SQL query optimizer","A security scanner"],correct:1,explanation:"Work IQ provides agents with organizational context from Microsoft 365, making them understand your company's specific culture and processes."},{q:"What makes Agent Flows different from standard Power Automate flows?",options:["They are slower","They combine free-form agentic reasoning with structured deterministic execution and human checkpoints","They only work offline","They require no triggers"],correct:1,explanation:"Agent Flows blend agentic intelligence (reasoning, planning) with reliable structured execution (approvals, data updates), creating processes owned full by an agent."},{q:"When should an Agent Flow pause for human approval?",options:["Never","For high-stakes decisions like financial approvals or irreversible actions","Every single step","Only on weekdays"],correct:1,explanation:"Human checkpoints are designed for irreversible or high-impact actions where agent autonomy should be bounded by human judgment."}]}]},{name:"A2A & Multi-Agent",icon:"\uD83E\uDD1D",color:"#10b981",level:"MASTER",desc:"Inter-agent communication, A2A protocol integration, and validation testing for Copilot Studio agents.",lessons:[{title:"A2A Protocol in Copilot Studio",xp:900,duration:"15 min",lab:{title:"Validate Agent-to-Agent (A2A) Contract Schema",xp:200,scenario:"Define and validate a JSON-RPC 2.0 A2A delegation contract allowing a supervisor agent to dispatch work to a specialist agent.",steps:[{say:"Validate the A2A capability manifest defining input parameters and output schemas.",check:["cat|jq","a2a|manifest","schema|json|protocol"],out:["{",'  "protocol": "A2A-1.0",','  "agentId": "urn:contoso:agents:claimsProcessor",','  "actions": [','    { "name": "assessDamage", "parameters": { "claimId": "string", "images": "array" } }',"  ]","}","✓ A2A manifest validated against Copilot Studio contract schema"],hint:"cat a2a-manifest.json | jq .protocol",cmd:"cat a2a-manifest.json | jq .protocol"}]},content:'<h2>Multi-Agent Orchestration</h2>\n<p>As of 2026, Copilot Studio supports <strong>multi-agent systems</strong> where specialized agents collaborate using the <strong>Agent-to-Agent (A2A) protocol</strong>. Agents can now communicate with, delegate tasks to, and share work with other first-, second-, and third-party agents.</p>\n<h3>A2A Integration</h3>\n<table><tr><th>Concept</th><th>Description</th></tr>\n<tr><td><strong>Agent Cards</strong></td><td>Metadata describing an agent\'s capabilities, skills, and endpoints</td></tr>\n<tr><td><strong>Task Delegation</strong></td><td>Agent A asks Agent B to handle a sub-task, receives results back</td></tr>\n<tr><td><strong>Cross-Vendor Agents</strong></td><td>Copilot Studio agents can collaborate with agents built in LangGraph, CrewAI, or custom frameworks</td></tr></table>\n<h3>Expanded Model Choice</h3>\n<p>To optimize for cost, speed, and reasoning quality, Copilot Studio now allows selecting from:</p>\n<ul>\n<li><strong>GPT-4o / GPT-4o / OpenAI o1</strong> for general-purpose and deep analytical tasks</li>\n<li><strong>Anthropic Claude 3.7 Sonnet / Claude 3.5 Sonnet</strong> for complex reasoning and deep-context analysis</li>\n<li><strong>Mistral Large / Medium</strong> as third-party model options</li>\n<li><strong>Custom/fine-tuned models</strong> for domain-specific tasks</li>\n</ul>\n<h3>Validation & Testing</h3>\n<p>Enterprise agent deployments require rigorous testing:</p>\n<ul>\n<li><strong>Evaluation Test Sets:</strong> Predefined Q&A pairs with expected outputs to measure accuracy</li>\n<li><strong>Automated Evaluation API:</strong> Programmatic testing of agent responses against golden benchmarks</li>\n<li><strong>Multi-Turn Simulations:</strong> Automated conversations that test complex, multi-step scenarios</li>\n</ul>\n<div class="ca-callout"><strong>\uD83D\uDCA1 Key Insight:</strong> The validation pipeline should run on every deployment: create test sets → run automated evaluations → pass threshold → deploy to production. This is CI/CD for agents.</div>',quiz:[{q:"What is the A2A protocol in Copilot Studio?",options:["An encryption standard","A protocol that enables multi-agent collaboration where specialized agents can communicate, delegate tasks, and share work","A database query language","A UI framework"],correct:1,explanation:"A2A enables Copilot Studio agents to work with other agents across vendor boundaries, creating coordinated multi-agent systems."},{q:"Can Copilot Studio agents use non-Microsoft models?",options:["No, only GPT models","Yes, including Anthropic Claude 3.7 Sonnet, Mistral models, and custom fine-tuned models","Only open-source models","Only Azure-hosted models"],correct:1,explanation:"Copilot Studio supports expanded model choice including GPT-4o/OpenAI o1, Anthropic Claude 3.7 Sonnet, Mistral, and custom models to optimize for different enterprise use cases."},{q:"What is the recommended testing approach for enterprise agent deployments?",options:["Manual testing only","Automated evaluation pipelines with test sets, evaluation APIs, and multi-turn simulations integrated into CI/CD","Skip testing, deploy directly","Test only in production"],correct:1,explanation:"Enterprise agents require automated testing pipelines that validate responses against golden benchmarks before every deployment."}]}]},{name:"Power Apps 2026",icon:"⚡",color:"#10b981",level:"ADEPT",desc:"Natural language app building, Fluent 2 mandatory design, M365 Copilot in model-driven apps, and the Agent Feed.",lessons:[{title:"vibe.powerapps.com & NL App Building",xp:300,duration:"20 min",lab:{title:"Generate Canvas App via Natural Language Plan",xp:150,scenario:"Inspect an AI-generated Power Apps plan from vibe.powerapps.com before committing solution assets.",steps:[{say:"Export the generated canvas app YAML blueprint.",check:["pac canvas|pac solution","export|unpack","yaml|msapp|sources"],out:["Unpacking canvas app blueprint...","Screens generated: [DashboardScreen, RequestDetailScreen, ApprovalScreen]","Form Controls: Bound to Dataverse table 'cr888_DeviceRequest'","✓ Natural Language Canvas app successfully generated and unpacked"],hint:"pac canvas unpack --msapp MyApp.msapp --sources src",cmd:"pac canvas unpack --msapp MyApp.msapp --sources src"}]},content:'<h2>From Prompt to Production App</h2><p><strong>vibe.powerapps.com</strong> (in public preview since April 2026) represents a complete model shift in how Power Apps are built. Using natural language prompts, developers and makers can now generate full-code Power Apps including architecture plans, Dataverse data models, business logic, and UI scaffolding — all from a single text description.</p>\n        <h3>What the AI Handles</h3>\n        <table><thead><tr><th>
1Step</th><th>What AI Does</th><th>Speed</th></tr></thead><tbody>\n        <tr><td><strong>Plan Generation</strong></td><td>Creates an architecture + feature map from your description</td><td>Seconds</td></tr>\n        <tr><td><strong>Data Model</strong></td><td>Generates Dataverse tables, columns, and relationships</td><td>~1 min</td></tr>\n        <tr><td><strong>App Scaffolding</strong></td><td>Builds forms, galleries, navigation, and business rules</td><td>~2 min</td></tr>\n        <tr><td><strong>Refinement</strong></td><td>Iterative changes via natural language (e.g., "add approval workflow")</td><td>Continuous</td></tr></tbody></table>\n        <h3>External AI Coding Integration</h3><p><strong>Generative Pages</strong> (GA April 2026) allow makers to build rich, custom model-driven app pages using natural language alongside external AI coding tools like <strong>GitHub Copilot</strong> or <strong>Claude Code</strong>. This eliminates the gap between low-code and pro-code development.</p>\n        <div class="ca-callout"><strong>\uD83D\uDCA1 Dev Tip:</strong> Use vibe.powerapps.com to scaffold 80% of your app in minutes, then refine the remaining 20% with PCF components and custom connectors. Development velocity increases 5-10x compared to traditional maker portal building.</div>',quiz:[{q:"What does vibe.powerapps.com allow you to build?",options:["Only forms","Full-code Power Apps including data models, business logic, and UI from natural language prompts","Only reports","Only mobile apps"],correct:1,explanation:"vibe.powerapps.com generates entire app architectures including Dataverse models and logic from a natural language description."},{q:"What are Generative Pages in model-driven apps?",options:["Auto-generated reports","Custom rich pages built using natural language and external AI coding tools like GitHub Copilot or Claude Code","PDF export features","Dashboard templates"],correct:1,explanation:"Generative Pages (GA April 2026) enable makers to create custom model-driven app UI using natural language and AI coding tools."}]},{title:"Fluent 2 & M365 Copilot Embedded",xp:350,duration:"15 min",lab:{title:"Bundle Fluent 2 Theme in Custom Control",xp:150,scenario:"Ensure custom PCF control matches Microsoft 365 Copilot visual language with Fluent 2 design tokens.",steps:[{say:"Build the PCF component with Fluent 2 web components.",check:["npm run build|pac pcf","build|compile"],out:["Building PCF control with Fluent 2...","[webpack] Compiling Fluent2ThemedTable...","[webpack] Bundle generated: bundle.js (42.8 kB)","✓ Control compliant with Microsoft 365 Copilot design tokens"],hint:"npm run build in your PCF directory.",cmd:"npm run build"}]},content:"<h2>Fluent 2: Now Mandatory</h2><p>As of April 2026, the <strong>Fluent 2 design system</strong> is the mandatory default for all model-driven apps. If your organization still has apps using the old look, they will automatically inherit the new modern design. Key characteristics of the mandatory Fluent 2 experience:</p>\n        <ul><li><strong>Consistent typography:</strong> Segoe UI Variable aligned with Microsoft 365</li>\n        <li><strong>Elevation & shadows:</strong> Cards and panels use Fluent-standard depth</li>\n        <li><strong>Rounded corners:</strong> Consistent 4px/8px corner radius across controls</li>\n        <li><strong>Custom theming:</strong> Brand colors, fonts, and headers configurable via the Theme Editor</li></ul>\n        <h3>M365 Copilot Embedded in Model-Driven Apps (GA)</h3><p>Microsoft 365 Copilot is now <strong>generally available embedded within model-driven apps</strong>. Users can now:</p>\n        <ul><li>Ask natural language questions about Dataverse data without leaving the app</li>\n        <li>Generate charts and visualizations from voice/text queries</li>\n        <li>Draft emails, Teams messages, and reports grounded in the current record context</li>\n        <li>Access M365 context (past emails, meetings) alongside app business data</li></ul>\n        <h3>Agent Feed (GA May 2026)</h3><p>The <strong>Agent Feed</strong> is a dedicated panel within model-driven apps where users supervise, review, and guide autonomous agent activity. Rather than agents working invisibly in the background, the Agent Feed surfaces agent actions, decisions, and requests for human input in a transparent activity stream — balancing automation with human oversight.</p>",quiz:[{q:"What changed about model-driven app design in April 2026?",options:["Nothing","Fluent 2 became the mandatory default for all model-driven apps","Apps now require mobile-first design","Custom themes were removed"],correct:1,explanation:"Fluent 2 is now the mandatory default — all model-driven apps automatically inherit the modern look."},{q:"What can users do with embedded M365 Copilot in model-driven apps?",options:["Only search records","Ask natural language questions about Dataverse data, generate visualizations, and draft communications grounded in app context","Only view reports","Only perform approvals"],correct:1,explanation:"Embedded M365 Copilot grounds responses in both Dataverse data and broader M365 context (emails, meetings, Teams)."},{q:"What is the Agent Feed?",options:["A news ticker about AI","A dedicated panel for supervising, reviewing, and guiding autonomous agent activity within model-driven apps","A social media integration","A chatbot replacement"],correct:1,explanation:"The Agent Feed surfaces agent actions transparently so users can maintain oversight while benef
1iting from automation."}]}]},{name:"Process Mining & OCPM",icon:"\uD83D\uDCCA",color:"#10b981",level:"MASTER",desc:"Object-Centric Process Mining (OCPM) — analysing cross-object business lifecycles and bottlenecks at enterprise scale.",lessons:[{title:"Object-Centric Process Mining (GA 2026)",xp:750,duration:"20 min",lab:{title:"Ingest OCPM Event Log into Process Mining",xp:200,scenario:"Upload multi-object event log linking Purchase Orders, Invoices, and Deliveries to discover process bottlenecks.",steps:[{say:"Trigger Process Mining event ingestion via PAC CLI.",check:["pac admin|pac process","ingest|event","ocpm|log|csv"],out:["Connecting to Power Automate Process Mining workspace...","Ingesting multi-object event log 'ProcureToPay_OCPM.csv'...","Objects identified: [PurchaseOrder, Delivery, Invoice]","Relationships detected: 1:N PO to Invoices, N:M Orders to Deliveries","✓ OCPM process map synthesized"],hint:"pac process-mining ingest --file ProcureToPay_OCPM.csv",cmd:"pac process-mining ingest --file ProcureToPay_OCPM.csv"}]},content:'<h2>Beyond Case-Centric Mining</h2><p>Traditional process mining tracks events against a single case ID (e.g., "Order ID: 12345"). This works for simple, linear processes but breaks down for real-world enterprise workflows where a single event touches multiple business objects simultaneously — an invoice, a delivery, a payment, and a customer account all at once.</p>\n        <p><strong>Object-Centric Process Mining (OCPM)</strong>, reaching GA in Spring 2026, models this reality. Instead of flattening events into a single case, OCPM maintains the full richness of cross-object relationships, enabling unprecedented visibility into how your business processes actually flow.</p>\n        <h3>How OCPM Works</h3>\n        <table><thead><tr><th>Traditional Mining</th><th>Object-Centric Mining (OCPM)</th></tr></thead><tbody>\n        <tr><td>One case ID per event log</td><td>Multiple object types per event (Order + Invoice + Delivery)</td></tr>\n        <tr><td>Linear process maps</td><td>Graph-based lifecycle maps across object relationships</td></tr>\n        <tr><td>Single bottleneck view</td><td>Cross-object bottleneck identification</td></tr>\n        <tr><td>Ignores object interactions</td><td>Tracks how objects merge, split, and influence each other</td></tr></tbody></table>\n        <h3>Key OCPM Capabilities (Power Automate Process Mining)</h3>\n        <ul><li><strong>Cross-object lifecycle mapping:</strong> Visualize how orders, invoices, and payments interact across their entire lifecycle</li>\n        <li><strong>Cross-object bottleneck detection:</strong> Identify where one object type delays another (e.g., invoice approval blocking delivery)</li>\n        <li><strong>Compliance verification:</strong> Validate that all objects follow required sequences (e.g., every invoice must have a purchase order)</li>\n        <li><strong>Root cause analysis:</strong> Drill into specific object combinations that consistently underperform</li></ul>\n        <div class="ca-callout"><strong>\uD83C\uDFAF Use Case Example:</strong> In order-to-cash processes, OCPM can reveal that 23% of delivery delays occur specifically when an invoice is disputed at the same time as a backorder exists — a pattern invisible to traditional case-centric mining.</div>',quiz:[{q:"What is the fundamental difference between traditional process mining and OCPM?",options:["OCPM is faster","OCPM models events against multiple object types simultaneously instead of a single case ID","Traditional mining uses more data","OCPM only works with cloud databases"],correct:1,explanation:"OCPM captures the full complexity of real-world processes where events touch multiple business objects at once."},{q:"What business insight does cross-object bottleneck detection provide?",options:["Which employees are slowest","Where one business object type (e.g., invoice) is delaying another (e.g., delivery)","How many emails are sent","Report generation speed"],correct:1,explanation:"Cross-object bottleneck detection reveals hidden depen
1dencies between business objects that traditional mining cannot surface."},{q:"Which Power Platform product contains OCPM functionality?",options:["Power Apps","Power Automate Process Mining","Copilot Studio","Power BI Desktop only"],correct:1,explanation:"OCPM is part of Power Automate Process Mining, available as a premium add-on capability."}]}]},{name:"MCP & Computer Use in Power Platform",icon:"\uD83D\uDD0C",color:"#10b981",level:"GRANDMASTER",desc:"Using MCP for secure agent tool access, Computer Use for legacy UI automation, and the Power Platform Inventory admin tool.",lessons:[{title:"MCP Integration in Copilot Studio",xp:950,duration:"20 min",lab:{title:"Inspect Your Copilots from the CLI",xp:150,scenario:"Before wiring MCP servers into Copilot Studio, take inventory. Authenticate the pac CLI and list the copilots living in your environment.",steps:[{say:"Create an auth profile against your environment with pac auth.",check:["pac\\s+auth\\s+create","--environment\\s+\\S"],out:["✓ Authenticated as [email protected]","✓ Connected to environment: Contoso-Prod"],hint:"pac auth create --environment https://contoso-prod.crm.dynamics.com",cmd:"pac auth create --environment https://contoso-prod.crm.dynamics.com"},{say:"List the copilots (agents) in the connected environment.",check:["pac\\s+copilot\\s+list"],out:["Copilot Name          State      Schema Name","HR Benefits Agent     Published  contoso_hrbenefits","IT Helpdesk Agent     Published  contoso_ithelpdesk","✓ 2 copilots found — MCP tools can now be attached via Copilot Studio > Tools > Add Tool > MCP"],hint:"pac copilot list",cmd:"pac copilot list"}]},content:"<div class=\"ca-callout\"><strong>\uD83C\uDD95 May 2026 GA Updates:</strong><br/>• <strong>In-Chat App Experiences:</strong> Agents surface rich interactive apps directly within Copilot Chat — review data, update records, and approve requests without leaving the conversation.<br/>• <strong>Code Interpreter on SharePoint:</strong> Now GA — analyse and transform SharePoint documents directly from agent conversations.<br/>• <strong>Sentiment Analysis:</strong> Now GA — automatically analyse user sentiment from agent conversations for quality monitoring.<br/>• <strong>OpenAI o1 Reasoning:</strong> Available in early release environments for advanced analysis.</div>\n        <h2>Model Context Protocol for Enterprise Agents</h2><p>Microsoft recommends using the <strong>Model Context Protocol (MCP)</strong> as the standard approach for giving Copilot Studio agents secure, authenticated access to tools and data — including Microsoft 365 services. MCP acts as a secure bridge between your agent and external systems, replacing fragile custom API connectors with a standardized, governance-friendly protocol.</p>\n        <h3>Three Integration Patterns</h3>\n        <table><thead><tr><th>Pattern</th><th>When to Use</th><th>Example</th></tr></thead><tbody>\n        <tr><td><strong>Platform-native orchestration</strong></td><td>Internal flows with sub-agents, low complexity</td><td>Copilot Studio calling Power Automate flows</td></tr>\n        <tr><td><strong>MCP</strong></td><td>Secure, authenticated access to tools and data</td><td>Agent accessing SharePoint, Jira, Salesforce via MCP servers</td></tr>\n        <tr><td><strong>A2A Protocol</strong></td><td>Cross-platform messaging between agents from different vendors</td><td>Copilot Studio agent delegating to a LangGraph agent</td></tr></tbody></table>\n        <h3>Connecting MCP Servers in Copilot Studio</h3>\n        <p>In the Maker Portal, navigate to <strong>Settings → Tools → Add an MCP Server</strong>. You can connect any MCP-compatible server using Streamable HTTP transport and OAuth 2.1 authentication. Once connected, the server's tools automatically appear as available actions in the agent's orchestration layer.</p>\n        <h3>M365 Services via MCP</h3><p>Microsoft provides first-party MCP servers for core M365 services, enabling agents to securely access:</p>\n        <ul><li>SharePoint files and document libraries</li>\n        <li>Outlook calendars and email threads</li>\n        <li>Teams channels and meeting transcripts</li>\n        <li>Dataverse tables with full CRUD operations</li></ul>\n        <h3>Power Platform Inventory (GA)</h3><p>Administrators now have access to <strong>Power Platform Inventory</strong>, a unified view of all cloud flows, Copilot Studio agent flows, and agent workflows across all environments in the tenant. This is essential for governance, compliance, and understanding the blast radius before making tenant-wide changes.</p>",quiz:[{q:"When should you use MCP vs A2A protocol for Copilot Studio agent integrations?",options:["They are identical","MCP for secure authenticated tool/data access; A2A for cross-platform agent-to-agent messaging across organizational boundaries","A2A for all integrations","MCP only for Microsoft services"],correct:1,explanation:"MCP excels at authenticated access to tools and data stores. A2A is designed for cross-platform agent-to-agent communication where agents must remain opaque to each other."},{q:"What does Power Platform Inventory provide?",options:["A product catalog","A unified admin view of all cloud flows, agent flows, and workflows across all tenant environments","An app store","Pricing information"],correct:1,explanation:"Power Platform Inventory (GA 2026) gives admins a consolidated view of all automation assets for governance and compliance."},{q:"Which authentication standard do MCP servers use in Power Platform?",options:["Basic Auth","API keys only","OAuth 2.1","Windows Authentication"],correct:2,explanation:"Remote MCP servers use OAuth 2.1 for secure, enterprise authentication in Power Platform integrations."}]},{title:"Computer Use: Agents on Legacy Systems",xp:1e3,duration:"15 min",lab:{title:"Configure Visual Grounding for Legacy Terminal Agent",xp:200,scenario:"Configure AI computer use coordinate grid targeting AS/400 or mainframe emulator screens.",steps:[{say:"Run test screen capture and coordinate calibration for green-screen terminal automation.",check:["pac desktop","calibrate|screen","terminal|grid|window-title"],out:["Screen capture resolution: 1920x1080","Green-screen terminal window detected at (200, 150, 1024, 768)","OCR Confidence on terminal fields: 99.4%","✓ Target coordinates mapped for AI Agent computer use"],hint:'pac desktop calibrate-terminal --window-title "Mainframe Session"',cmd:'pac desktop calibrate-terminal --window-title "Mainframe Session"'}]},content:'<h2>Navigating the Unintegrated World</h2><p>Not every enterprise system has an API. Legacy ERP systems, government portals, and decades-old line-of-business software often present only a <strong>graphical user interface</strong>. In 2026, Copilot Studio agents can interact with these systems using <strong>Computer Use</strong> — the same capability available in Claude\'s API, now integrated into the Power Platform ecosystem.</p>\n        <h3>How Copilot Studio Computer Use Works</h3>\n        <ol><li><strong>Screenshot Capture:</strong> The agent takes a screenshot of the target application (running in a secure sandbox).</li>\n        <li><strong>Visual Reasoning:</strong> The model analyzes the screenshot to identify UI elements, buttons, fields, and forms.</li>\n        <li><strong>
1Action Execution:</strong> The agent moves the mouse, types text, clicks buttons, and navigates menus — just like a human operator.</li>\n        <li><strong>Self-Correction:</strong> If an action fails (element not found), the agent re-analyzes and adapts its approach.</li></ol>\n        <h3>Use Cases</h3>\n        <table><thead><tr><th>Industry</th><th>System</th><th>Automation</th></tr></thead><tbody>\n        <tr><td>Finance</td><td>Legacy banking ERP</td><td>Extract account balances, process transactions</td></tr>\n        <tr><td>Government</td><td>Citizen portals</td><td>Submit forms, check application status</td></tr>\n        <tr><td>Healthcare</td><td>Clinical systems (HL7/FHIR-less)</td><td>Enter patient data, retrieve records</td></tr>\n        <tr><td>Manufacturing</td><td>SCADA/HMI systems</td><td>Monitor parameters, adjust settings</td></tr></tbody></table>\n        <h3>Safety & Governance Requirements</h3><p>Computer Use in enterprise requires strict sandboxing:</p>\n        <ul><li><strong>Isolated VM:</strong> The target application runs in a dedicated, network-restricted virtual machine</li>\n        <li><strong>Action logging:</strong> Every mouse click, keystroke, and screenshot is logged to Purview for audit</li>\n        <li><strong>Human-in-the-loop:</strong> High-stakes actions (form submissions, data deletion) require human confirmation</li>\n        <li><strong>Scope restrictions:</strong> Agents can only interact with pre-approved applications; arbitrary web browsing is blocked</li></ul>\n        <div class="ca-callout"><strong>\uD83D\uDD12 Security Note:</strong> Computer Use should only be deployed in isolated sandboxes. Never allow a Computer Use agent network access to production systems without strict firewall rules — prompt injection via UI content could potentially command the agent to perform unauthorized actions.</div>',quiz:[{q:"When is Computer Use the right tool for Power Platform automation?",options:["Always, it's better than APIs","When the target system has no API and can only be interacted with through its graphical user interface","Only for Microsoft products","When RPA desktop flows fail"],correct:1,explanation:"Computer Use is specifically designed for legacy systems with no API — it's the solution of last resort when no integration interface exists."},{q:"What is the mandatory safety requirement for Computer Use agents?",options:["Admin approval only","Isolated VM sandbox with action logging, human-in-the-loop for high-stakes actions, and scope restrictions","Two-factor authentication","Offline mode only"],correct:1,explanation:"Computer Use requires strict sandboxing, complete logging to Purview, and human checkpoints for irreversible actions."},{q:"How does a Computer Use agent navigate a form it has never seen before?",options:["It looks up the form in a database","It takes a screenshot, uses visual reasoning to identify UI elements, and determines the appropriate actions from the visual context","It uses keyboard shortcuts only","It asks the user to point and click"],correct:1,explanation:"Computer Use uses multimodal vision to understand unfamiliar UIs, making it adaptable to any graphical interface without pre-training on specific layouts."}]}]},{name:"2026 Release Wave 1 Updates",icon:"\uD83C\uDF0A",color:"#3b82f6",level:"EXPERT",desc:"System-of-agents architecture, GPT-4o orchestration, and HITL (Human-in-the-Loop) Outlook forms.",lessons:[{title:"The System-of-Agents Pattern",xp:500,duration:"12 min",lab:{title:"Deploy Multi-Agent Topology in Solution",xp:200,scenario:"Package a triage supervisor agent, billing specialist, and technical support sub-agent in a single ALM solution.",steps:[{say:"List solution components to verify the complete multi-agent cluster is packaged.",check:["pac solution","list|component","agent|SystemOfAgents"],out:["Solution: CustomerService_SystemOfAgents","Component 1: Bot (cr888_TriageSupervisor)","Component 2: Bot (cr888_BillingSpecialist)","Component 3: Bot (cr888_TechSupportAgent)","Component 4: ConnectionReference (AzureOpenAIService)","✓ System of Agents packaged for ALM deployment"],hint:"pac solution list-components --name CustomerService_SystemOfAgents",cmd:"pac solution list-components --name CustomerService_SystemOfAgents"}]},content:'<h2>Coordinated Swarms</h2>\n<p>In the 2026 Release Wave 1, Power Platform transitions from isolated chatbots to a <strong>System-of-Agents</strong> architecture. Instead of one massive agent trying to do everything, you build a "Manager Agent" that orchestrates multiple "Worker Agents."</p>\n<h3>Microsoft 365 Agents SDK</h3>\n<p>Orchestrating across the M365 ecosystem is now centralized via the <strong>Microsoft 365 Agents SDK</strong>. The SDK provides native event buses, state management, and memory sharing between distinct agents operating in Teams, Outlook, and SharePoint.</p>\n<div class="ca-callout"><strong>\uD83D\uDCA1 Key Insight:</strong> The System-of-Agents pattern allows for extreme specialization. A "Finance Agent" with strict data boundaries can securely pass a sanitized summary to a "Communications Agent" for drafting a public email, minimizing the risk of data leakage.</div>',quiz:[{q:"What is the 'System-of-Agents' pattern?",options:["A new licensing model","An architecture where a manager agent orchestrates multiple specialized worker agents rather than relying on one massive agent","A hardware cluster","A way to backup agents to a flash drive"],correct:1,explanation:"System-of-Agents distributes tasks to specialized worker agents, improving accuracy, security, and maintainability."}
1,{q:"What SDK centralizes orchestration across the M365 ecosystem in 2026?",options:["The React Native SDK","The Microsoft 365 Agents SDK","The Azure IoT SDK","The Visual Studio SDK"],correct:1,explanation:"The Microsoft 365 Agents SDK manages state, memory, and events between agents across Teams, Outlook, and SharePoint."}]},{title:"GPT-4o & HITL Workflow Nodes",xp:500,duration:"15 min",lab:{title:"Insert Human-in-the-Loop (HITL) Approval Node",xp:150,scenario:"Configure an adaptive card approval in Power Automate whenever agent confidence drops below 0.85.",steps:[{say:"Inspect the workflow definition JSON to verify the condition and Teams approval action.",check:["cat|jq","workflow|flow","confidence|hitl|actions"],out:["Validating workflow logic...","Trigger: Agent Action Pending Approval","Condition: float(outputs('Agent_Confidence')) < 0.85","Action: Post adaptive card to Teams Channel 'Risk & Compliance'","Action: Wait for an approval before proceeding","✓ HITL guardrail verified"],hint:"cat flow-definition.json | jq .actions.CheckConfidence",cmd:"cat flow-definition.json | jq .actions.CheckConfidence"}]},content:"<h2>New Defaults and Capabilities</h2>\n<p><strong>GPT-4o</strong> is now the default generative engine for Copilot Studio orchestration. It provides significantly faster function-calling and deeper reasoning for dynamic tool selection.</p>\n<p>Additionally, <strong>Claude 3.5 Sonnet</strong> is now fully supported as an optional model specifically optimized for Computer-Using Agents (CUAs), given its superior visual reasoning capabilities. <strong>Computer-Using Agents reached General Availability in May 2026</strong>, enabling production-ready agentic RPA with vision-based UI automation.</p>\n<h3>Human-in-the-Loop (HITL) Forms</h3>\n<p>The most requested feature of 2025 is now GA: <strong>
1HITL Dynamic Workflow Nodes</strong>. When an agent reaches a high-stakes decision point, it can automatically pause execution and trigger a structured <strong>Outlook Adaptive Card Form</strong>.</p>\n<p>The human manager reviews the agent's proposed action in Outlook, modifies the parameters if necessary, and clicks 'Approve'. The agent instantly wakes up and resumes the workflow with the human's input.</p>\n<h3>April 2026 GA Announcements</h3>\n<table><thead><tr><th>Feature</th><th>Status</th><th>Impact</th></tr></thead><tbody>\n<tr><td><strong>Copilot Studio Multi-Agent Coordination</strong></td><td>GA</td><td>Orchestrate multiple specialized agents from a single Copilot Studio environment — each with distinct knowledge, tools, and permission scopes.</td></tr>\n<tr><td><strong>Work IQ</strong></td><td>GA</td><td>AI-powered process mining that discovers automation opportunities from employee work patterns across M365 — surfaces bottlenecks and suggests agents.</td></tr>\n<tr><td><strong>Evaluation APIs</strong></td><td>Public Preview</td><td>Programmatic agent quality assessment — score agents on groundedness, coherence, and safety before production deployment.</td></tr>\n<tr><td><strong>OpenAI o1 Integration</strong></td><td>Preview</td><td>OpenAI o1 available as an optional orchestration model with 1M token context for deep multi-document agentic workflows.</td></tr></tbody></table>\n<h3>Microsoft Build 2026 (June 2–3)</h3>\n<p><strong>Microsoft Build 2026</strong> expanded on Wave 1 with the <strong>Unified Workflows Designer</strong> — a single canvas for authoring cloud flows, desktop flows, and agent flows — and enhanced <strong>Copilot Studio</strong> capabilities including deeper A2A protocol integration and real-time agent analytics dashboards.</p>",quiz:[{q:"What is the new default generative orchestration model in Copilot Studio for 2026?",options:["GPT-3.5 Turbo","GPT-4o","Claude 3 Opus","Llama 3.3"],correct:1,explanation:"GPT-4o replaced older models as the baseline for generative orchestration due to its speed and tool-calling reliability."},{q:"How do Human-in-the-Loop (HITL) forms work in Power Platform 2026?",options:["The user must write Python code to approve actions","The agent pauses and sends a structured Outlook Adaptive Card form to a manager for review and approval before resuming","The agent randomly selects an action if the human is busy","The agent calls the human on their cell phone"],correct:1,explanation:"HITL nodes integrate natively with Outlook via Adaptive Cards, allowing managers to approve high-stakes agent actions in their daily workflow."}]},{title:"Microsoft Scout & the Autopilot Era",xp:550,duration:"15 min",lab:{title:"Verify Microsoft Scout Agent Fleet Health",xp:150,scenario:"Query runtime health, exception logs, and autonomous goal achievement rates across Scout background agents.",steps:[{say:"Fetch telemetry summary for autonomous background agent runs.",check:["pac copilot","telemetry|status|health","scout|fleet"],out:["Autonomous Fleet: Microsoft Scout Operations","Active Agents: 14 | Idle: 2 | Errored: 0","Goal Achievement Rate: 98.2%","Average Autopilot Turn Count: 4.1 steps/task","✓ Fleet operating within normal operational bounds"],hint:"pac copilot fleet-health or pac copilot status --fleet",cmd:"pac copilot status --fleet"}]},content:"<h2>A New Agent Category: Autopilots</h2>\n<p>At <strong>Microsoft Build 2026</strong> (June 2–3), Microsoft introduced <strong>Autopilots</strong> — a new category of agents that are always-on, act with their own identity, and work autonomously in the background without needing to be re-prompted for every step. This is a distinct pattern from conversational Copilot Studio agents, which respond turn-by-turn inside a chat.</p>\n<h3>Microsoft Scout: The First Autopilot</h3>\n<p><strong>Microsoft Scout</strong> is Microsoft's first Autopilot agent — an always-on personal agent for work. It's a desktop application (Windows 11+ and macOS 12+) that stays integrated with your Microsoft 365 flow of work: Teams, Outlook, OneDrive, and SharePoint, plus the chats, email, calendar, and contacts that power your day. From the desktop app it also reaches your browser, local files and shell, and Model Context Protocol servers.</p>\n<table><tr><th>Capability</th><th>What it does</th></tr>\n<tr><td><strong>Acts on files</strong></td><td>Creates, edits, and searches Word/Excel/PowerPoint and code files in your workspace</td></tr>\n<tr><td><strong>Runs commands</strong></td><td>Executes shell commands, builds, tests, and scripts under a tiered permission system</td></tr>\n<tr><td><strong>Automates browsers</strong></td><td>Navigates pages and fills forms using Playwright</td></tr>\n<tr><td><strong>Heartbeat mode</strong></td><td>Periodic background check-ins (every 15–120 minutes) that run prompts while you're away</td></tr>\n<tr><td><strong>Automations</strong></td><td>Scheduled or condition-triggered tasks that execute independently</td></tr>\n<tr><td><strong>Delegates work</strong></td><td>Launches specialized sub-agents for parallel research, code review, or complex tasks</td></tr></table>\n<h3>Powered by Work IQ</h3>\n<p>Microsoft Scout builds context over time using <strong>Work IQ</strong> — learning how you work, what you care about, and what needs to happen next, so it becomes more useful and aligned to your priorities the longer it runs. Microsoft also shipped standalone <strong>Work IQ APIs</strong> (GA, Build 2026) so any first- or third-party agent — not just Scout — can plug into the same real-time work-context signal.</p>\n<h3>Built on OpenClaw — With Enterprise Guardrails</h3>\n<p>Microsoft Scout is powered by <strong>OpenClaw</strong>
1, an open-source agent technology, and Microsoft is contributing policy-conformance work back upstream so organizations running OpenClaw themselves can get a verifiable, audit-ready compliance answer. On top of that open-source core, Microsoft layers the enterprise controls that make it safe to run at scale:</p>\n<ul>\n<li>Every agent runs under its own governed <strong>Microsoft Entra identity</strong> — never a shared, anonymous service account — so every action is attributable to a known actor.</li>\n<li>Credentials are scoped to the task at hand and redacted from logs and diagnostics.</li>\n<li>Sensitive actions (sending email, running commands, writing files) require your explicit approval before they execute.</li>\n<li><strong>Microsoft Purview</strong> sensitivity labels and data-loss-prevention policies are enforced in the moment, before anything is sent or written — Scout operates within these controls, it doesn't bypass them.</li>\n</ul>\n<h3>Scout vs. Copilot Studio Agents vs. Copilot Cowork</h3>\n<table><tr><th>Product</th><th>Pattern</th><th>Best for</th></tr>\n<tr><td><strong>Copilot Studio agent</strong></td><td>Conversational, built/governed by makers, published to Teams/web/M365 Copilot</td><td>Purpose-built business agents (HR, IT helpdesk, support)</td></tr>\n<tr><td><strong>Microsoft Scout</strong></td><td>Always-on Autopilot with its own identity, runs on your desktop</td><td>Personal work coordination — scheduling, prep, follow-through</td></tr>\n<tr><td><strong>Copilot Cowork</strong> (GA June 2026)</td><td>Multi-agent teamwork surface inside Microsoft 365 Copilot</td><td>Delegating whole work packages to a team of agents</td></tr></table>\n<div class=\"ca-callout\"><strong>\uD83C\uDFAF Availability:</strong> Microsoft Scout is currently an experimental release, available to Frontier program enrollees and select customers in private preview. Access requires Frontier enrollment, Intune policy configuration, opt-in attestation, and a GitHub Copilot license to install the desktop app.</div>",quiz:[{q:"What defines an 'Autopilot' agent like Microsoft Scout, versus a standard Copilot Studio conversational agent?",options:["It only runs once a day","It is always-on, acts under its own identity, and works autonomously in the background without needing to be re-prompted for each step","It has no security controls","It only works inside Excel"],correct:1,explanation:"Autopilots are a distinct 2026 agent category: persistent, identity-bearing agents that keep working in the background, unlike turn-by-turn conversational agents."},{q:"What open-source technology is Microsoft Scout built on?",options:["LangGraph","OpenClaw","AutoGen","CrewAI"],correct:1,explanation:"Microsoft Scout is powered by OpenClaw, with Microsoft contributing policy-conformance work back upstream to the open-source project."},{q:"How does Microsoft Scout keep enterprise actions attributable and governed?",options:["It shares one anonymous service account across all users","Each agent runs under its own governed Microsoft Entra identity, with scoped credentials and Purview DLP/sensitivity-label enforcement","It has no identity system","It only works when disconnected from the network"],correct:1,explanation:"Every Microsoft Scout agent gets its own Entra identity rather than a shared service account, and Purview policies are enforced before sensitive actions complete."},{q:"What does 'Heartbeat' mode let Microsoft Scout do?",options:["Monitor CPU temperature","Run periodic background check-ins (every 15–120 minutes) that execute prompts while you're away","Send a daily email newsletter","Restart the desktop app automatically"],correct:1,explanation:"Heartbeat is one of Scout's two autonomous modes — the other, Automations, runs scheduled or condition-triggered tasks."}]},{title:"Continuous Delivery, Data Grid GA & Enterprise SOE/AOE",xp:500,duration:"15 min",lab:{title:"Automate Solution Deployment via Azure DevOps Pipeline",xp:200,scenario:"Run automated solution import with managed properties enforced and connection references mapped.",steps:[{say:"Execute PAC CLI solution import into downstream staging environment.",check:["pac solution import","path","activate-plugins"],out:["Importing solution: SystemOfAgents_managed.zip...","Environment: https://contoso-staging.crm.dynamics.com","Publishing customizations...","Activating plugins and cloud flows...","✓ Solution import completed successfully without errors"],hint:"pac solution import --path SystemOfAgents_managed.zip --activate-plugins",cmd:"pac solution import --path SystemOfAgents_managed.zip --activate-plugins"}]},content:'<h2>The Post-Release Wave Era: Continuous Publishing</h2>\n<p>In <strong>September 2026</strong>, Microsoft officially announced the retirement of the biannual "Release Wave 1 / Wave 2" publication cycle for Power Platform and Dynamics 365. Feature roadmaps and agent releases are now continuously published in real-time through the unified <strong>"AI at Work" roadmap hub</strong>.</p>\n<h3>September 2026 Core Platform Releases</h3>\n<table><tr><th>Feature / Update</th><th>Status</th><th>Enterprise Impact</th></tr>\n<tr><td><strong>Power Apps Modern Data Grid</strong></td><td>General Availability</td><td>Virtualized client-side rendering supporting multi-million row Dataverse views, column reordering, bulk editing, and sub-second filtering.</td></tr>\n<tr><td><strong>Power Automate Flow Groups</strong></td><td>General Availability</td><td>Pool and allocate cloud flow run capacity across departments; prevents rogue automations from exhausting tenant-wide API pools.</td></tr>\n<tr><td><strong>Roadmap Modernization</strong></td><td>Live (Sep 2026)</td><td>Retires PDF release wave plans in favor of continuous, searchable AI roadmap feeds with instant RSS and API webhooks.</td></tr>\n<tr><td><strong>Copilot Studio Autonomous Triggers</strong></td><td>GA</td><td>Enables agents to trigger proactively on Dataverse business events, external webhook events, and email arrival without human prompt initiation.</td></tr></table>\n<h3>Power Platform SOE (Standard Operating Environment)</h3>\n<table><tr><th>Layer</th><th>Enterprise Standard</th><th>Hardening / Operational Rule</th></tr>\n<tr><td><strong>CLI & Tooling</strong></td><td>Power Platform CLI (<code>pac</code> CLI 1.38+)</td><td>Scripted deployment via Azure DevOps / GitHub Actions; manual portal imports prohibited in Prod</td></tr>\n<tr><td><strong>Solution Architecture</strong></td><td>Managed Solutions Only</td><td>
1Strict layering: Unmanaged in Dev → Build Pipeline → Managed Solution deployed into Test and Production</td></tr>\n<tr><td><strong>Environment Strategy</strong></td><td>Managed Environments + Routing</td><td>Developer Environment Routing auto-provisions isolated maker sandboxes with DLP and governance policies enforced</td></tr>\n<tr><td><strong>Identity & Secrets</strong></td><td>Service Principal + Entra ID</td><td>Zero shared maker accounts; all automated flows and agent connections run under governed Service Principals</td></tr></table>\n<h3>Power Platform AOE (AI Operations Engineering) Blueprint</h3>\n<ul>\n<li><strong>Copilot Studio Telemetry in Application Insights:</strong> Connect Copilot Studio bots to Azure Monitor Application Insights to track session resolution rates, fallback frequencies, CSAT, and model latency.</li>\n<li><strong>Purview AI Shield & DLP Auditing:</strong> Apply tenant-level Purview sensitivity labels to prevent agents from grounding against confidential SharePoint repositories; monitor real-time DLP alert streams.</li>\n<li><strong>HITL Escalation Circuit Breakers:</strong> Configure a 48-hour auto-timeout and managerial escalation for pending Human-In-The-Loop approval cards in Outlook to prevent orphaned agent executions.</li>\n<li><strong>Continuous Agent Regression Testing:</strong> Run automated synthetic test suites via the Copilot Studio Evaluation APIs prior to promoting agent solutions from Staging to Production.</li></ul>',quiz:[{q:"What major governance change was made to the Power Platform release model in September 2026?",options:["Releases were paused indefinitely","The biannual Release Wave cycle was retired in favor of continuous updates via the AI at Work roadmap hub","Updates are now delivered once every 5 years","Releases now require manual floppy disk installation"],correct:1,explanation:"Microsoft retired the biannual Release Wave 1 and 2 model in September 2026, transitioning to continuous real-time feature publishing on the 'AI at Work' hub."},{q:"What is the core purpose of Flow Groups in Power Automate?",options:["To make icons colorful","To pool and allocate flow capacity by department, preventing rogue flows from exhausting tenant capacity","To convert flows into video games","To delete old flows automatically"],correct:1,explanation:"Flow Groups allow enterprise administrators to pool and manage execution capacity across teams, protecting tenant API limits."}]}]},{name:"Power BI Fundamentals",icon:"\uD83D\uDCCA",color:"#F2C811",level:"BEGINNER",desc:"Reports, dashboards, data sources, Copilot in Power BI, and DAX basics for business intelligence.",lessons:[{title:"Power BI Essentials",xp:100,duration:"15 min",lab:{title:"Refresh Power BI Dataset via REST API",xp:150,scenario:"Trigger an automated refresh of a Power BI sales report dataset using Azure CLI authenticated REST call.",steps:[{say:"Send a POST request to the Power BI REST API /groups/{id}/datasets/{id}/refreshes endpoint.",check:["az rest","api.powerbi.com","refreshes"],out:["POST https://api.powerbi.com/v1.0/myorg/groups/4a88-workspace/datasets/7b99-dataset/refreshes","Status: 202 Accepted","Refresh status: InProgress","RequestId: req_99182RefreshTriggered","✓ Power BI dataset refresh initiated"],hint:"az rest --method post --url https://api.powerbi.com/v1.0/myorg/groups/4a88-workspace/datasets/7b99-dataset/refreshes",cmd:'az rest --method post --url "https://api.powerbi.com/v1.0/myorg/groups/4a88-workspace/datasets/7b99-dataset/refreshes"'}]},content:'<h2>Business Intelligence for Everyone</h2>\n<p><strong>Power BI</strong> is Microsoft\'s enterprise business intelligence platform that transforms raw data into interactive visualisations, dashboards, and reports. In 2026, Power BI is deeply integrated with <strong>Copilot</strong>, enabling natural language queries, AI-generated report summaries, and smart narrative generation.</p>\n<h3>Core Components</h3>\n<table><tr><th>Component</th><th>Purpose</th><th>User</th></tr>\n<tr><td><strong>Power BI Desktop</strong></td><td>Author reports locally with a rich drag-and-drop designer</td><td>Analysts, developers</td></tr>\n<tr><td><strong>Power BI Service</strong></td><td>Cloud portal for publishing, sharing, and scheduling refresh</td><td>All users</td></tr>\n<tr><td><strong>Power BI Mobile</strong></td><td>Consume reports on iOS and Android devices</td><td>Executives, field workers</td></tr>\n<tr><td><strong>Power BI Embedded</strong></td><td>Embed interactive reports inside your own applications</td><td>Developers (ISVs)</td></tr></table>\n<h3>Copilot in Power BI</h3>\n<p><strong>Copilot</strong> in Power BI allows users to create entire report pages from natural language prompts, generate DAX measures by describing what they need, and produce executive narrative summaries of data trends — all without writing a single formula. In early 2026, Microsoft introduced <strong>Power BI Agent Skills</strong>, allowing agents to execute dynamic DAX queries and Python-based UDFs (User Defined Functions) to answer complex ad-hoc analytics questions beyond static dashboard visuals.</p>\n<h3>DAX Basics</h3>\n<p><strong>Data Analysis Expressions (DAX)</strong> is the formula language for Power BI. Key concepts include:</p>\n<ul>\n<li><strong>Measures:</strong> Dynamic calculations evaluated at query time (e.g., <code>Total Sales = SUM(Sales[Amount])</code>)</li>\n<li><strong>Calculated Columns:</strong> Row-by-row computed values stored in the data model</li>\n<li><strong>Filter Context:</strong> How slicers and filters affect measure calculation — the most important DAX concept to master</li>\n<li><strong>Time Intelligence:</strong> Built-in functions like <code>TOTALYTD</code>, <code>SAMEPERIODLASTYEAR</code> for temporal analysis</li>\n</ul>\n<h3>Data Sources</h3>\n<p>Power BI connects to 200+ data sources including SQL Server, Azure Synapse, SharePoint, Excel, Dataverse, REST APIs, and third-party services like Salesforce and Google Analytics.</p>\n<div class="ca-callout"><strong>\uD83D\uDCA1 Key Insight:</strong> Start with Copilot to scaffold reports quickly, then refine with custom DAX measures. This hybrid approach lets business users get 80% of the value immediately while analysts add the remaining 20% of precision.</div>',quiz:[{q:"What is the primary purpose of DAX in Power BI?",options:["Styling reports","Creating dynamic calculations and measures that respond to user filters and slicers","Managing user permissions","Connecting to databases"],correct:1,explanation:"DAX (Data Analysis Expressions) is the formula language for creating dynamic measures that recalculate based on the current filter context in a report."},{q:"What can Copilot in Power BI do?",options:["Only format charts","Create report pages from natural language, generate DAX measures, and produce narrative summaries","Only export to PDF","Only manage subscriptions"],correct:1,explanation:"Copilot in Power BI enables natural language report creation, DAX formula generation, and AI-powered narrative summaries of data trends."},{q:"What is the most important DAX concept to master?",options:["Colour formatting","Filter context — how slicers and filters affect measure calculations","File compression","Network latency"],correct:1,explanation:"Filter context determines how DAX measures are calculated based on the active filters and slicers, and is fundamental to writing correct and performant DAX."}]},{title:"Power BI & Fabric Integration",xp:100,duration:"15 min",lab:{title:"Query Microsoft Fabric OneL
1ake Delta Table via DirectLake",xp:200,scenario:"Inspect DirectLake connectivity between Fabric OneLake and Power BI semantic models for zero-ETL querying.",steps:[{say:"Verify Fabric workspace OneLake endpoint configuration with az rest.",check:["az rest","api.fabric.microsoft.com","workspaces|lakehouses"],out:["Connecting to Microsoft Fabric API...","{",'  "lakehouseName": "EnterpriseDataLake",','  "tables": ["gold_customer_churn", "gold_revenue_daily"],','  "directLakeEnabled": true,','  "storageFormat": "Delta-Parquet (OneLake)"',"}","✓ DirectLake semantic integration confirmed"],hint:"az rest --method get --url https://api.fabric.microsoft.com/v1/workspaces",cmd:'az rest --method get --url "https://api.fabric.microsoft.com/v1/workspaces"'}]},content:'<h2>The Next Generation of Analytics</h2>\n<p><strong>Microsoft Fabric</strong> unifies data engineering, data science, real-time analytics, and business intelligence into a single SaaS platform. Power BI is Fabric\'s primary consumption layer — all reports, dashboards, and AI features are now part of the Fabric experience.</p>\n<h3>Semantic Models (Datasets)</h3>\n<p>In Fabric, what was previously called a "dataset" is now a <strong>Semantic Model</strong>. Semantic models define the business logic layer — relationships, measures, hierarchies, and row-level security — that sits between raw data and user-facing reports.</p>\n<h3>Fabric Apps (GA 2026)</h3>\n<p><strong>Fabric Apps</strong> allow report authors to package multiple reports, dashboards, and semantic models into a single distributable application. Users install Fabric Apps from the organisational app store, receiving a curated analytics experience without navigating workspaces.</p>\n<h3>Q&A Deprecation (December 2026)</h3>\n<p>The legacy <strong>Q&A visual</strong> (natural language queries in Power BI) is scheduled for deprecation in <strong>December 2026</strong>. Microsoft recommends migrating to <strong>Copilot in Power BI</strong>, which provides significantly more capable natural language interaction including multi-turn conversations, visual creation, and narrative generation.</p>\n<h3>Key Fabric Integration Points</h3>\n<table><tr><th>Feature</th><th>Benefit</th></tr>\n<tr><td><strong>DirectLake Mode</strong></td><td>Query OneLake data directly without import or DirectQuery — best of both worlds</td></tr>\n<tr><td><strong>Dataflow Gen2</strong></td><td>Cloud-based ETL for preparing data before loading into semantic models</td></tr>\n<tr><td><strong>Real-time Intelligence</strong></td><td>Stream data from IoT, event hubs, and Kafka into Power BI dashboards</td></tr></table>\n<div class="ca-callout"><strong>\uD83D\uDEA7 Important:</strong> Plan your migration from Q&A visuals to Copilot before December 2026. Audit all reports using Q&A and replace with Copilot-powered interactions or standard visuals.</div>',quiz:[{q:"What replaced 'datasets' in Microsoft Fabric?",options:["Data sources","Semantic Models — defining relationships, measures, and business logic","Data warehouses","Report templates"],correct:1,explanation:"Semantic Models (formerly datasets) define the business logic layer including relationships, measures, hierarchies, and security between raw data and reports."},{q:"When is the Q&A visual being deprecated?",options:["March 2026","June 2026","December 2026","Never"],correct:2,explanation:"The legacy Q&A visual is scheduled for deprecation in December 2026, with Copilot in Power BI recommended as the replacement."},{q:"What is DirectLake mode in Fabric?",options:["A database backup feature","A mode that queries OneLake data directly without import or DirectQuery, providing best-of-both-worlds performance","A real-time streaming feature","A security configuration"],correct:1,explanation:"DirectLake mode queries data directly from OneLake Parquet files without needing import (which copies data) or DirectQuery (which has latency), combining speed with real-time freshness."}]}]},{name:"Power Pages & Dataverse",icon:"\uD83C\uDF10",color:"#742774",level:"BEGINNER",desc:"Building external-facing web portals with Power Pages and mastering the Dataverse data platform.",lessons:[{title:"Power Pages Basics",xp:100,duration:"15 min",lab:{title:"Pull a Power Pages Site Locally",xp:200,scenario:"Bring your Power Pages site into source control. List the sites in your environment, then download one for local editing.",steps:[{say:"List all Power Pages websites in the connected environment.",check:["pac\\s+pages\\s+list"],out:["Index  Website Id                            Friendly Name","1      f88b70cc-580b-4f1a-87c3-41debefeb902  Contoso Support Portal","✓ 1 website found"],hint:"pac pages list",cmd:"pac pages list"},{say:"Download the website content to a local folder with pac pages download (needs --path and --webSiteId).",check:["pac\\s+pages\\s+download","--path\\s+\\S","--webSiteId\\s+\\S"],out:["Connected to… Contoso-Dev","Downloading website content…","✓ content saved — web pages, templates and snippets now editable in VS Code","
1Edit locally, then push back with: pac pages upload --path .\\portals"],hint:"pac pages download --path .\\portals --webSiteId f88b70cc-580b-4f1a-87c3-41debefeb902",cmd:"pac pages download --path .\\portals --webSiteId f88b70cc-580b-4f1a-87c3-41debefeb902"}]},content:'<h2>Web Portals for External Users</h2>\n<p><strong>Power Pages</strong> (formerly Power Apps Portals) enables organisations to build secure, data-driven websites for external users — customers, partners, and citizens — all connected to <strong>Dataverse</strong> as the backend data store. Unlike Power Apps which targets internal employees, Power Pages is designed for <strong>anonymous and authenticated external users</strong>.</p>\n<h3>Core Capabilities</h3>\n<table><tr><th>Feature</th><th>Description</th></tr>\n<tr><td><strong>Forms</strong></td><td>Multistep forms connected to Dataverse tables for data entry (applications, registrations)</td></tr>\n<tr><td><strong>Lists</strong></td><td>Read-only or editable lists displaying Dataverse records with filtering and sorting</td></tr>\n<tr><td><strong>Authentication</strong></td><td>Azure AD B2C, OAuth 2.0, OpenID Connect, local accounts, social logins (Google, Facebook)</td></tr>\n<tr><td><strong>Web Templates</strong></td><td>Liquid-based templates for custom HTML/CSS/JS rendering</td></tr>\n<tr><td><strong>Copilot Authoring</strong></td><td>Build pages and forms using natural language descriptions</td></tr></table>\n<h3>Admin Security Agent (2026)</h3>\n<p>The <strong>Power Pages Admin Security Agent</strong> is an AI-powered security assistant that continuously scans your Power Pages site for vulnerabilities, misconfigured permissions, exposed data, and compliance gaps. It provides actionable remediation steps and can automatically fix common security issues.</p>\n<h3>Use Cases</h3>\n<ul>\n<li><strong>Government:</strong> Citizen service portals for permit applications and status tracking</li>\n<li><strong>Healthcare:</strong> Patient intake forms and appointment scheduling</li>\n<li><strong>Education:</strong> Student registration and course enrollment portals</li>\n<li><strong>B2B:</strong> Partner portals for order tracking and knowledge bases</li>\n</ul>\n<div class="ca-callout"><strong>\uD83D\uDCA1 Key Insight:</strong> Power Pages is licensed per authenticated user per website. Anonymous pages (no login) are included at no extra per-user cost — making it ideal for public-facing information sites with authenticated self-service areas.</div>',quiz:[{q:"How does Power Pages differ from Power Apps?",options:["It is faster","Power Pages is designed for external users (customers, partners) while Power Apps targets internal employees","It only works offline","It does not connect to Dataverse"],correct:1,explanation:"Power Pages is specifically designed for building web portals accessible to external, anonymous, or authenticated users — unlike Power Apps which targets internal business users."},{q:"What does the Admin Security Agent do for Power Pages?",options:["It builds pages automatically","It continuously scans for vulnerabilities, misconfigured permissions, and compliance gaps with remediation guidance","It manages user passwords","It generates reports"],correct:1,explanation:"The Admin Security Agent is an AI assistant that proactively identifies security issues in your Power Pages site and provides actionable fixes."},{q:"Which authentication methods does Power Pages support?",options:["Only Azure AD","Azure AD B2C, OAuth 2.0, OpenID Connect, local accounts, and social logins","Only username/password","Only API keys"],correct:1,explanation:"Power Pages supports a wide range of authentication providers including Azure AD B2C, OAuth 2.0, OpenID Connect, local registration, and social identity providers."}]},{title:"Dataverse Fundamentals",xp:100,duration:"15 min",lab:{title:"Inspect Your Dataverse Environments",xp:150,scenario:"New tenant, unknown territory. Use the pac CLI to list every environment you can reach, select the right one, and confirm exactly which org you're connected to.",steps:[{say:"List all Dataverse environments visible to your account.",check:["pac\\s+env\\s+list"],out:["Environment          Environment Id                        Environment Url","Contoso (default)    3f2a9c1e-…                            https://org12345.crm11.dynamics.com/","Contoso-Dev          8b7d4e2a-…                            https://contoso-dev.crm11.dynamics.com/"],hint:"pac env list",cmd:"pac env list"},{say:"Select the Contoso-Dev environment as the target for subsequent commands.",check:["pac\\s+env\\s+select","--environment"],out:["✓ New default environment: Contoso-Dev (https://contoso-dev.crm11.dynamics.com/)"],hint:"pac env select --environment https://contoso-dev.crm11.dynamics.com (URL, ID, or unique name all work)",cmd:"pac env select --environment https://contoso-dev.crm11.dynamics.com"},{say:"Verify the connection — show which org and user the CLI is now bound to.",check:["pac\\s+org\\s+who"],out:["Connected as [email protected]","Org ID: 8b7d4e2a-…  Unique Name: unq8b7d4e2a  Friendly Name: Contoso-Dev","Environment Type: Sandbox \xb7 Dataverse Version: 9.2.26043.00171"],hint:"pac org who",cmd:"pac org who"}]},content:'<h2>The Power Platform Data Layer</h2>\n<p><strong>Dataverse</strong> is the enterprise relational data platform underpinning the entire Power Platform ecosystem. It provides secure, scalable data storage with built-in business logic, security, and governance — eliminating the need for custom database infrastru
1cture.</p>\n<h3>Core Concepts</h3>\n<table><tr><th>Concept</th><th>SQL Equivalent</th><th>Description</th></tr>\n<tr><td><strong>Table</strong></td><td>Table</td><td>A structured set of records (rows) with defined columns</td></tr>\n<tr><td><strong>Column</strong></td><td>Column</td><td>A field with a specific data type (text, number, lookup, choice)</td></tr>\n<tr><td><strong>Row</strong></td><td>Row</td><td>A single record in a table</td></tr>\n<tr><td><strong>Relationship</strong></td><td>Foreign Key</td><td>One-to-many, many-to-many, or one-to-one links between tables</td></tr>\n<tr><td><strong>Choice (Option Set)</strong></td><td>Enum</td><td>Predefined picklist values (e.g., Status: Active, Inactive, Pending)</td></tr></table>\n<h3>Security Model</h3>\n<p>Dataverse implements a layered security model that controls access at multiple levels:</p>\n<ul>\n<li><strong>Business Units:</strong> Organisational hierarchy that segments data visibility (e.g., regional offices)</li>\n<li><strong>Security Roles:</strong> Define CRUD permissions per table (e.g., "Sales Rep" can Read Accounts but not Delete)</li>\n<li><strong>Teams:</strong> Groups of users sharing the same security role for efficient management</li>\n<li><strong>Row-Level Security:</strong> Users only see records they own, their team owns, or their business unit owns</li>\n<li><strong>Column-Level Security:</strong> Restrict access to specific sensitive columns (e.g., salary, SSN)</li>\n</ul>\n<h3>Standard vs Custom Tables</h3>\n<p>Dataverse includes 400+ <strong>standard tables</strong> (Account, Contact, Case, Opportunity) that follow the Common Data Model. These integrate natively with Dynamics 365 and Microsoft 365. <strong>Custom tables</strong> are created for organisation-specific data that doesn\'t fit standard tables.</p>\n<div class="ca-callout"><strong>\uD83D\uDCA1 Key Insight:</strong> Always use standard tables where possible — they come with pre-built relationships, forms, views, and integrations. Only create custom tables for truly unique business data that has no standard equivalent.</div>',quiz:[{q:"What is a Business Unit in Dataverse?",options:["A billing category","An organisational hierarchy that segments data visibility for row-level security","A type of connector","A report template"],correct:1,explanation:"Business Units define the organisational hierarchy in Dataverse, controlling which records users can see based on their position in the org structure."},{q:"Why should you prefer standard tables over custom tables?",options:["They are cheaper","They come with pre-built relationships, forms, views, and native integration with Dynamics 365 and M365","They are faster","Custom tables are not allowed"],correct:1,explanation:"Standard tables follow the Common Data Model and include pre-built relationships, forms, views, and integrations — reducing development time and ensuring compatibility."},{q:"What does Column-Level Security protect?",options:["Entire tables","Specific sensitive columns like salary or SSN from being accessed by unauthorised users","Report formatting","API endpoints"],correct:1,explanation:"Column-Level Security restricts access to individual columns, allowing you to hide sensitive data fields from users who don't need to see them, even if they have access to the table."}]}]},{name:"Copilot Studio Basics",icon:"\uD83E\uDD16",color:"#0B556A",level:"BEGINNER",desc:"Build your first conversational AI agent with topics, entities, knowledge sources, and publishing channels.",lessons:[{title:"Building Your First Agent",xp:100,duration:"15 min",lab:{title:"Initialize New Copilot Studio Agent Project",xp:150,scenario:"Scaffold a new declarative Copilot Studio agent project folder with default topics and schema files.",steps:[{say:"Initialize an agent repository using the PAC CLI.",check:["pac copilot init","name"],out:["Initializing Copilot Studio agent 'CustomerSupportAgent'...","Created: agent.config.json","Created: topics/Greeting.yaml","Created: topics/Escalate.yaml","Created: schemas/DataverseEntities.json","✓ Agent project initialized. Ready for local configuration and packaging."],hint:"pac copilot init --name CustomerSupportAgent",cmd:"pac copilot init --name CustomerSupportAgent"}]},content:'<h2>From Zero to Deployed Agent</h2>\n<p><strong>Copilot Studio</strong> (formerly Power Virtual Agents) is Microsoft\'s low-code platform for building conversational AI agents. In 2026, it has evolved far beyond simple FAQ chatbots — it now supports <strong>generative orchestration</strong>, <strong>multi-agent coordination</strong>, and <strong>enterprise tool integration via MCP</strong>.</p>\n<h3>Core Building Blocks</h3>\n<table><tr><th>Component</th><th>Purpose</th><th>Example</th></tr>\n<tr><td><strong>Topics</strong></td><td>Conversation flows triggered by user intent</td><td>"Track my order" topic with order lookup logic</td></tr>\n<tr><td><strong>Entities</strong></td><td>Data types the agent recognises and extracts from user input</td><td>Order numbers, dates, product names</td></tr>\n<tr><td><strong>Knowledge Sources</strong></td><td>Data the agent uses for generative answers (RAG)</td><td>SharePoint sites, Dataverse, websites, uploaded files</td></tr>\n<tr><td><strong>Plugins/Actions</strong></td><td>
1External capabilities — Power Automate flows, connectors, custom APIs</td><td>Looking up CRM data, sending email confirmations</td></tr>\n<tr><td><strong>Generative AI</strong></td><td>LLM-powered responses for open-ended questions</td><td>Answering HR policy questions from a knowledge base</td></tr></table>\n<h3>Publishing Channels</h3>\n<p>Once built, agents can be published to multiple channels simultaneously:</p>\n<ul>\n<li><strong>Microsoft Teams:</strong> Embedded as a chat bot in Teams channels and personal chat <em>(Note: "Classic" manual PVA Teams app deployment is deprecated; use Copilot extension deployment)</em></li>\n<li><strong>Web Widget:</strong> Embeddable chat widget for any website</li>\n<li><strong>Microsoft 365 Copilot:</strong> Appears as a plugin inside M365 Copilot</li>\n<li><strong>Power Apps:</strong> Embedded within canvas and model-driven apps</li>\n<li><strong>Real-Time Voice:</strong> Native deployment to Dynamics 365 Contact Center as conversational voice agents</li>\n<li><strong>Facebook, Slack, Twilio:</strong> Third-party messaging integrations</li>\n<li><strong>Custom API:</strong> Direct API integration for headless deployments</li>\n</ul>\n<h3>Getting Started</h3>\n<ol>\n<li>Go to <code>copilotstudio.microsoft.com</code> and create a new agent</li>\n<li>Define 2-3 key topics covering your most common user questions</li>\n<li>Add a knowledge source (e.g., a SharePoint document library) for generative answers</li>\n<li>Connect a Power Automate flow for any actions the agent needs to perform</li>\n<li>Test in the built-in chat panel, then publish to Teams</li>\n</ol>\n<div class="ca-callout"><strong>\uD83D\uDCA1 Key Insight:</strong> Start with <strong>knowledge sources + generative answers</strong> before building custom topics. In many cases, pointing the agent at your documentation covers 70-80% of user questions without any manual topic authoring.</div>',quiz:[{q:"What are Topics in Copilot Studio?",options:["Data tables","Conversation flows triggered by user intent that define how the agent responds to specific requests","Security policies","Report templates"],correct:1,explanation:"Topics are the core building blocks of agent conversations — each topic handles a specific user intent with defined dialogue flows and actions."},{q:"What is the fastest way to get an agent answering user questions?",options:["Build 100 custom topics","Add knowledge sources and enable generative answers — the AI handles most questions without manual topic authoring","Write custom code","Import from a template only"],correct:1,explanation:"Knowledge sources combined with generative AI can cover 70-80% of user questions automatically, making it the fastest path to a useful agent."},{q:"Which channels can Copilot Studio agents be published to?",options:["Teams only","Teams, web widgets, M365 Copilot, Power Apps, Facebook, Slack, Twilio, and custom APIs","Only Microsoft products","Email only"],correct:1,explanation:"Copilot Studio agents can be published to a wide range of channels including Microsoft Teams, web widgets, M365 Copilot, third-party messaging platforms, and headless API deployments."}]}]},{name:"Power Automate Essentials",icon:"⚡",color:"#0066FF",level:"BEGINNER",desc:"Triggers, actions, conditions, error handling, and the 1000+ connector ecosystem.",lessons:[{title:"Cloud Flows & Connectors",xp:100,duration:"15 min",lab:{title:"Audit Connections & Connectors",xp:150,scenario:"Governance review: the CoE team needs to know which connections exist in the environment and which connectors are available before approving new flows.",steps:[{say:"List every connection created in the selected environment.",check:["pac\\s+connection\\s+list"],out:["Connection Id     Name                    Connector          Status","1a2b3c…           Office 365 Outlook      shared_office365   Connected","4d5e6f…           SharePoint - Intranet   shared_sharepoint  Connected","7g8h9i…           SQL - FinanceDB         shared_sql         Error"],hint:"pac connection list",cmd:"pac connection list"},{say:"List the connectors available in this environment (standard + premium + custom).",check:["pac\\s+connector\\s+list"],out:["Name                          Display Name          Tier","shared_office365              Office 365 Outlook    Standard","shared_commondataserviceforapps  Dataverse          Premium","cr123_contosoinvoiceapi       Contoso Invoice API   Custom"],hint:"pac connector list",cmd:"pac connector list"}]},content:'<h2>Automating Business Processes</h2>\n<p><strong>Power Automate</strong> is Microsoft\'s workflow automation platform with access to <strong>1,000+ pre-built connectors</strong> spanning Microsoft services, third-party SaaS, and custom APIs. Cloud flows are the most common flow type — event-driven automations that run in the Microsoft cloud.</p>\n<h3>Copilot NL Flow Authoring</h3>\n<p>As of 2026, the primary interface for building Power Automate is <strong>Copilot NL (Natural Language) Authoring</strong>. Users simply describe the workflow ("When an email from Contoso arr
1ives with an invoice, extract the data and add it to SAP"), and Copilot generates the trigger, actions, loops, and conditions automatically.</p>\n<h3>Flow Anatomy</h3>\n<table><tr><th>Component</th><th>Role</th><th>Example</th></tr>\n<tr><td><strong>Trigger</strong></td><td>The event that starts the flow</td><td>"When a new email arrives", "When a Dataverse row is created", "On a schedule"</td></tr>\n<tr><td><strong>Actions</strong></td><td>Steps the flow performs after triggering</td><td>"Send an email", "Create a Dataverse row", "Post to Teams"</td></tr>\n<tr><td><strong>Conditions</strong></td><td>Branching logic based on data values</td><td>"If priority equals High, notify manager"</td></tr>\n<tr><td><strong>Loops</strong></td><td>Iterate over arrays of data</td><td>"For each item in the SharePoint list, send a reminder"</td></tr>\n<tr><td><strong>Error Handling</strong></td><td>Graceful failure management</td><td>"Run after failure" configuration, try-catch-finally patterns</td></tr></table>\n<h3>Connector Tiers</h3>\n<table><tr><th>Tier</th><th>License Required</th><th>Examples</th></tr>\n<tr><td><strong>Standard</strong></td><td>Included with M365</td><td>SharePoint, Outlook, Teams, OneDrive, Excel Online</td></tr>\n<tr><td><strong>Premium</strong></td><td>Power Automate Premium license</td><td>Dataverse, SQL Server, HTTP, Azure services, Salesforce</td></tr>\n<tr><td><strong>Custom</strong></td><td>Premium license</td><td>Your own REST APIs wrapped as connectors</td></tr></table>\n<h3>Error Handling Best Practices</h3>\n<ul>\n<li><strong>Configure \'Run After\':</strong> Set actions to run after failure, timeout, or skip — not just success</li>\n<li><strong>Try-Catch Pattern:</strong> Use parallel branches with \'Run After: Failed\' to catch and handle errors</li>\n<li><strong>Retry Policies:</strong> Configure automatic retries with exponential backoff for transient API failures</li>\n<li><strong>Alerts:</strong> Send Teams/email notifications when critical flows fail</li>\n</ul>\n<h3>Flow Types</h3>\n<ul>\n<li><strong>Automated (Cloud) Flows:</strong> Triggered by events (email, form submission, Dataverse change)</li>\n<li><strong>Instant (Button) Flows:</strong> Triggered manually by a user clicking a button</li>\n<li><strong>Scheduled Flows:</strong> Run on a recurring schedule (daily, weekly, hourly)</li>\n<li><strong>Desktop Flows (RPA):</strong> Automate legacy desktop applications using UI automation</li>\n<li><strong>Agent Flows (2026):</strong> AI-powered flows that combine reasoning with structured execution</li>\n</ul>\n<div class="ca-callout"><strong>\uD83D\uDCA1 Key Insight:</strong> Always implement error handling in production flows. The #1 cause of flow failures is unhandled API timeouts and transient errors. Use retry policies and \'Run After: Failed\' branches to build resilient automations.</div>',quiz:[{q:"What is a Trigger in Power Automate?",options:["A button in the UI","The event that starts a flow — such as receiving an email, a Dataverse record change, or a scheduled time","A type of connector","An error handler"],correct:1,explanation:"Triggers are the starting point of every flow — they listen for specific events and initiate the automation when the event occurs."},{q:"What is the #1 best practice for production flows?",options:["Use the fastest connectors","Always implement error handling with retry policies and 'Run After: Failed' branches","Minimise the number of actions","Only use standard connectors"],correct:1,explanation:"Production flows must handle errors gracefully. Unhandled API timeouts and transient failures are the most common cause of flow failures."},{q:"What license do you need to use Premium connectors like Dataverse or SQL Server?",options:["Microsoft 365 E3","Power Automate Premium license","No license needed","Azure subscription only"],correct:1,explanation:"Premium connectors like Dataverse, SQL Server, HTTP, and Salesforce require a Power Automate Premium license — standard M365 licenses only include Standard connectors."}]}]}]}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.