From 688cdfdac6a71373e37cf9a4059b95206660d74e Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 09:57:51 +0000 Subject: [PATCH 01/20] Added contributing section for mcs --- CONTRIBUTING.md | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4cb0d8e29..413e8c4cf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contribution Guidance -This is a community repository for sample Microsoft 365 Copilot agents developed using code-first approaches using tools such as Visual Studio Code and Teasm Toolkit. +This is a community repository for sample Microsoft 365 Copilot agents developed using code-first approaches using tools such as Visual Studio Code and Microsoft 365 Agents Toolkit, and now support for Copilot Studio samples. If you'd like to contribute to this repository, please read the following guidelines. Contributors are more than welcome to share their learnings with others in this centralized location. @@ -83,8 +83,9 @@ Each sample should be in its own folder within the /samples directory. Your fold | Prefix | Description | | --- | --- | | cea- | These are Custom engine agents that interact with users in the Bizchat chat surface via the Azure Bot Framework | -| da - | These are Declarative agents that run using Microsoft 365 Copilot's AI and orchestration and may include API plugins and Graph connectors | +| da- | These are Declarative agents that run using Microsoft 365 Copilot's AI and orchestration and may include API plugins and Graph connectors | | msgext- | These are agents implemented as Microsoft 365 Message extensions | +| mcs- | Indiciate this agent is Microsoft Copilot Studio | ### 2. README.md file @@ -92,8 +93,8 @@ Your sample folder should contain a `README.md` file for your contribution. Plea | If your sample is | use this template | | --- | --- | -| built with Teams Toolkit for VS Code | [README.md](/samples/_SAMPLE_templates/ttk-vs-code-sample/README.md) | -| built with Teams Toolkit for Visual Studio | [README.md](/samples/_SAMPLE_templates/ttk-vs-sample/README.md) | +| built with Microsoft 365 Agents Toolkit for VS Code | [README.md](/samples/_SAMPLE_templates/ttk-vs-code-sample/README.md) | +| built with Microsoft 365 Agents Toolkit for Visual Studio | [README.md](/samples/_SAMPLE_templates/ttk-vs-sample/README.md) | | something else | [README.md](/samples/_SAMPLE_templates/any-sample/README.md) | Please copy the template to your project and update it accordingly. Your `README.md` must be named exactly `README.md` -- with capital letters -- as this is the information we use to make your sample public. @@ -158,11 +159,41 @@ The preview image must be located in the `/assets/` folder in the root your solu Your sample should include a clearly marked folder containing a Teams/M365 `manifest.json` file and well-formed application icons along with any additional files such as declarative agent and API plugin JSON files. - * If the manifest works as-is, you may optionally include an installable Teams application package (zip archive containing these files). +* If the manifest works as-is, you may optionally include an installable Teams application package (zip archive containing these files). - * If the `manifest.json` requires modification before use, please do not include a zip archive. Instead, include instructions in your `README.md` file explaining how to modify the manifest and create the Teams application package +* If the `manifest.json` requires modification before use, please do not include a zip archive. Instead, include instructions in your `README.md` file explaining how to modify the manifest and create the Teams application package -### 7. Telemetry +### 7. Microsoft Copilot Studio Samples + +Since Microsoft Copilot Studio (MCS) Samples are a package/zip file, for security reasons we will only accept the contents of these packages rather than the package files. + +The intended folder structure for a MCS samples would look like this: + +- mcs-MyCoolSample + - assets + - src + - README.md + +To get the source quickly, please use the following commands using the [Power Platform CLI](https://learn.microsoft.com/en-us/power-platform/developer/cli/introduction): + + - Ensure you are authenticated with [```pac auth```](https://learn.microsoft.com/en-us/power-platform/developer/cli/reference/auth) + + - Add your agent to a solution package + + - Export Solution Contents + + ```powershell + # Navigste to samples folder + + mkdir mcs-MyNewAgent + cd mcs-MyNewAgent + + pac solution clone --name --outputDirectory . --packagetype Unmanaged + + ``` +Use the template ```template/mcs/README.md``` and complete a template of ```sample.json``` and place this in your assets folder. + +### 8. Telemetry The README template contains a specific tracking image at the end of the file with an `img` tag, where the `src` attribute points to `https://m365-visitor-stats.azurewebsites.net/copilot-pro-dev-samples/samples/`. This is a transparent image which is used to track how many visits each sample receives in GitHub. From bc143428566044c8a3e502c32c9f14665985ddf6 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 11:02:18 +0000 Subject: [PATCH 02/20] No zip in samples workflow --- .github/workflows/no-zip-in-samples.yml | 49 +++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/no-zip-in-samples.yml diff --git a/.github/workflows/no-zip-in-samples.yml b/.github/workflows/no-zip-in-samples.yml new file mode 100644 index 000000000..84fc61394 --- /dev/null +++ b/.github/workflows/no-zip-in-samples.yml @@ -0,0 +1,49 @@ +name: Block zip files in samples + +on: + pull_request: + paths: + - "samples/**" + +permissions: + contents: read + pull-requests: write + +jobs: + check-zip-files: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Scan for zip files + id: zip_check + run: | + set -euo pipefail + if find samples -type f -name "*.zip" -print -quit | grep -q .; then + echo "found=true" >> "$GITHUB_OUTPUT" + echo "paths<> "$GITHUB_OUTPUT" + find samples -type f -name "*.zip" -print >> "$GITHUB_OUTPUT" + echo "EOF" >> "$GITHUB_OUTPUT" + else + echo "found=false" >> "$GITHUB_OUTPUT" + fi + + - name: Comment on PR if zip files found + if: steps.zip_check.outputs.found == 'true' + uses: actions/github-script@v7 + with: + script: | + const paths = `${{ steps.zip_check.outputs.paths }}`.trim(); + const body = [ + "Zip files are not allowed in `samples/**`. Please remove the following:", + "", + paths ? paths.split("\n").map(p => `- ${p}`).join("\n") : "- (no paths reported)" + ].join("\n"); + + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: context.issue.number, + body + }); From 5154b971da9daa3968fa24f79f415ceef63a3a8b Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 11:07:42 +0000 Subject: [PATCH 03/20] Moved schema file --- {templates => .github}/metadata-schema.json | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {templates => .github}/metadata-schema.json (100%) diff --git a/templates/metadata-schema.json b/.github/metadata-schema.json similarity index 100% rename from templates/metadata-schema.json rename to .github/metadata-schema.json From b6d221ae167d17a0fcf3ac7c2f51e42407d559bf Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 11:26:47 +0000 Subject: [PATCH 04/20] Added templates for mcs samples --- templates/copilot-studio/README-template.md | 136 ++++++++++++++++++ .../assets}/pending-image.png | Bin .../assets/template-sample.json | 70 +++++++++ .../README-template.md | 13 +- .../assets/pending-image.png | Bin 0 -> 84311 bytes .../assets/template-sample.json} | 12 +- 6 files changed, 220 insertions(+), 11 deletions(-) create mode 100644 templates/copilot-studio/README-template.md rename templates/{ => copilot-studio/assets}/pending-image.png (100%) create mode 100644 templates/copilot-studio/assets/template-sample.json rename templates/{ => declarative-agent}/README-template.md (91%) create mode 100644 templates/declarative-agent/assets/pending-image.png rename templates/{sample-template.json => declarative-agent/assets/template-sample.json} (86%) diff --git a/templates/copilot-studio/README-template.md b/templates/copilot-studio/README-template.md new file mode 100644 index 000000000..821dcd125 --- /dev/null +++ b/templates/copilot-studio/README-template.md @@ -0,0 +1,136 @@ + + +# Title of the sample + + + +## Summary + +Short summary on the contents of the sample. What does the agent do? How does it help users? What type of skills and knowledge does it have? + + + +## Contributors + + +* [Author Name](LinkToYourGitHubProfile) + +## Version history + +Version|Date|Comments +-------|----|-------- +1.0|Feburary 01, 2026|Initial release + +## Prerequisites + +* Microsoft 365 tenant with Microsoft 365 Copilot +* ...add more prerequisites + +## Minimal path to awesome + +**Import Solution into Copilot Studio** + +This sample uses the Power Platform CLI to import samples, for documenation and installation instructions please visit: [What is Microsoft Power Platform CLI? | Microsoft Learn](https://learn.microsoft.com/en-us/power-platform/developer/cli/introduction) + +- Ensure you are authenticated with ```pac auth``` + + +```powershell + +# Package up the solution +pac solution pack --zipfile .zip --folder ./mcs-YOUR_AGENT_FOLDER/src + +# Import into Power Platform (default enviroment) +pac solution import --path .zip + +# Import into specific environment +pac env list +pac solution import --path .zip -env + +``` + + + +## Features + +Extended description of the contents of the sample. What elements does it include? What concepts does illustrate? + +Using this sample you can extend Microsoft 365 Copilot with an agent that: + +* objective 1 +* objective 2 +* objective 3 + + + +## Help + + + +We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues. + +You can try looking at [issues related to this sample](https://github.com/pnp/copilot-pro-dev-samples/issues?q=label%3A%22sample%3A%20YOUR_AGENT_FOLDER%22) to see if anybody else is having the same issues. + +If you encounter any issues using this sample, [create a new issue](https://github.com/pnp/copilot-pro-dev-samples/issues/new). + +Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/copilot-pro-dev-samples/issues/new). + +## Disclaimer + +**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** + +![](https://m365-visitor-stats.azurewebsites.net/copilot-pro-dev-samples/YOUR_AGENT_FOLDER) diff --git a/templates/pending-image.png b/templates/copilot-studio/assets/pending-image.png similarity index 100% rename from templates/pending-image.png rename to templates/copilot-studio/assets/pending-image.png diff --git a/templates/copilot-studio/assets/template-sample.json b/templates/copilot-studio/assets/template-sample.json new file mode 100644 index 000000000..a7c3d481d --- /dev/null +++ b/templates/copilot-studio/assets/template-sample.json @@ -0,0 +1,70 @@ +[ + { + "name": "pnp-copilot-pro-dev-YOUR_AGENT_FOLDER", + "source": "pnp", + "title": "YOUR-SAMPLE-TITLE", + "shortDescription": "YOUR-SHORT-DESCRIPTION", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR_AGENT_FOLDER", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR_AGENT_FOLDER", + "longDescription": [ + "YOUR-SHORT-DESCRIPTION" + ], + "creationDateTime": "2026-02-14", + "updateDateTime": "2026-02-14", + "products": [ + "Microsoft 365 Copilot", + "Microsoft Copilot Studio" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": "Copilot Studio" + }, + { + "key": "LANGUAGE", + "value": "None" + }, + { + "key": "API-PLUGIN", + "value": "No" + }, + { + "key": "GRAPH-CONNECTOR", + "value": "No" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 100, + "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/YOUR_AGENT_FOLDER/assets/YOUR-IMAGE-NAME-HERE", + "alt": "Copilot Studio agent doing x" + }, + { + "type": "video", + "order": 101, + "url": "https://www.youtube.com/embed/FS-_0KENJkI", + "alt": "Copilot Studio agent doing x" + } + ], + "authors": [ + { + "gitHubAccount": "YOUR-GITHUB-ACCOUNT", + "pictureUrl": "https://github.com/YOUR-GITHUB-ACCOUNT.png", + "name": "YOUR-NAME" + } + ], + "references": [ + { + "name": "Microsoft 365 Copilot extensibility", + "description": "Learn more about what Microsoft 365 Copilot and how you can extend it.", + "url": "https://learn.microsoft.com/microsoft-365-copilot/extensibility/" + }, + { + "name": "Microsoft Copilot Studio", + "description": "Discover how to build AI-driven agents and workflows easily with Microsoft Copilot Studio with online training courses, docs, and videos. Learn how to quickly and simply integrate chat into your website.", + "url": "https://learn.microsoft.com/en-us/microsoft-copilot-studio/" + } + ] + } +] \ No newline at end of file diff --git a/templates/README-template.md b/templates/declarative-agent/README-template.md similarity index 91% rename from templates/README-template.md rename to templates/declarative-agent/README-template.md index a6f04ca3b..3ca4aaea8 100644 --- a/templates/README-template.md +++ b/templates/declarative-agent/README-template.md @@ -1,3 +1,7 @@ + + # Title of the sample -* Clone this repository (or [download this solution as a .ZIP file](https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR-SOLUTION-NAME) then unzip it) +* Clone this repository (or [download this solution as a .ZIP file](https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR_AGENT_FOLDER) then unzip it) * ...provide further instructions ## Features @@ -114,7 +117,7 @@ Or: We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues. -You can try looking at [issues related to this sample](https://github.com/pnp/copilot-pro-dev-samples/issues?q=label%3A%22sample%3A%20YOUR-SOLUTION-NAME%22) to see if anybody else is having the same issues. +You can try looking at [issues related to this sample](https://github.com/pnp/copilot-pro-dev-samples/issues?q=label%3A%22sample%3A%20YOUR_AGENT_FOLDER%22) to see if anybody else is having the same issues. If you encounter any issues using this sample, [create a new issue](https://github.com/pnp/copilot-pro-dev-samples/issues/new). @@ -124,4 +127,4 @@ Finally, if you have an idea for improvement, [make a suggestion](https://github **THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** -![](https://m365-visitor-stats.azurewebsites.net/copilot-pro-dev-samples/OUR-SAMPLE-FOLDER-NAME) +![](https://m365-visitor-stats.azurewebsites.net/copilot-pro-dev-samples/YOUR_AGENT_FOLDER) diff --git a/templates/declarative-agent/assets/pending-image.png b/templates/declarative-agent/assets/pending-image.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf8e844592b32a6bbc4f5a2b2a1c4cd053e62b3 GIT binary patch literal 84311 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ξKJO6#&wIu%T$uK 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 LlWOUz=WqN6I_=&o literal 0 HcmV?d00001 diff --git a/templates/sample-template.json b/templates/declarative-agent/assets/template-sample.json similarity index 86% rename from templates/sample-template.json rename to templates/declarative-agent/assets/template-sample.json index 8d373c2b5..76c83d0b1 100644 --- a/templates/sample-template.json +++ b/templates/declarative-agent/assets/template-sample.json @@ -1,16 +1,16 @@ [ { - "name": "pnp-copilot-pro-dev-YOUR-SAMPLE-NAME", + "name": "pnp-copilot-pro-dev-YOUR_AGENT_FOLDER", "source": "pnp", "title": "YOUR-SAMPLE-TITLE", "shortDescription": "YOUR-SHORT-DESCRIPTION", - "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR-SAMPLE-NAME", - "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR-SAMPLE-NAME", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR_AGENT_FOLDER", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR_AGENT_FOLDER", "longDescription": [ "YOUR-SHORT-DESCRIPTION" ], - "creationDateTime": "2024-10-03", - "updateDateTime": "2024-10-03", + "creationDateTime": "2026-02-14", + "updateDateTime": "2026-02-14", "products": [ "Microsoft 365 Copilot" ], @@ -36,7 +36,7 @@ { "type": "image", "order": 100, - "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/YOUR-SAMPLE-NAME/assets/YOUR-IMAGE-NAME-HERE", + "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/YOUR_AGENT_FOLDER/assets/YOUR-IMAGE-NAME-HERE", "alt": "Declarative agent doing x" }, { From 2f244520c3b043e3302c9bd828625afd722d1453 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 11:28:15 +0000 Subject: [PATCH 05/20] Folder rename as example --- .../README-template.md | 0 .../assets/pending-image.png | Bin .../assets/template-sample.json | 0 .../README-template.md | 0 .../assets/pending-image.png | Bin .../assets/template-sample.json | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename templates/{declarative-agent => da-declarative-agent}/README-template.md (100%) rename templates/{copilot-studio => da-declarative-agent}/assets/pending-image.png (100%) rename templates/{declarative-agent => da-declarative-agent}/assets/template-sample.json (100%) rename templates/{copilot-studio => mcs-copilot-studio}/README-template.md (100%) rename templates/{declarative-agent => mcs-copilot-studio}/assets/pending-image.png (100%) rename templates/{copilot-studio => mcs-copilot-studio}/assets/template-sample.json (100%) diff --git a/templates/declarative-agent/README-template.md b/templates/da-declarative-agent/README-template.md similarity index 100% rename from templates/declarative-agent/README-template.md rename to templates/da-declarative-agent/README-template.md diff --git a/templates/copilot-studio/assets/pending-image.png b/templates/da-declarative-agent/assets/pending-image.png similarity index 100% rename from templates/copilot-studio/assets/pending-image.png rename to templates/da-declarative-agent/assets/pending-image.png diff --git a/templates/declarative-agent/assets/template-sample.json b/templates/da-declarative-agent/assets/template-sample.json similarity index 100% rename from templates/declarative-agent/assets/template-sample.json rename to templates/da-declarative-agent/assets/template-sample.json diff --git a/templates/copilot-studio/README-template.md b/templates/mcs-copilot-studio/README-template.md similarity index 100% rename from templates/copilot-studio/README-template.md rename to templates/mcs-copilot-studio/README-template.md diff --git a/templates/declarative-agent/assets/pending-image.png b/templates/mcs-copilot-studio/assets/pending-image.png similarity index 100% rename from templates/declarative-agent/assets/pending-image.png rename to templates/mcs-copilot-studio/assets/pending-image.png diff --git a/templates/copilot-studio/assets/template-sample.json b/templates/mcs-copilot-studio/assets/template-sample.json similarity index 100% rename from templates/copilot-studio/assets/template-sample.json rename to templates/mcs-copilot-studio/assets/template-sample.json From 5dfe555828856bcc66add7c085061de5ca66aee0 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 11:41:52 +0000 Subject: [PATCH 06/20] Fixed sample title --- samples/da-microsoftdocssearchagent/assets/sample.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/da-microsoftdocssearchagent/assets/sample.json b/samples/da-microsoftdocssearchagent/assets/sample.json index 83148819e..8f76841b8 100644 --- a/samples/da-microsoftdocssearchagent/assets/sample.json +++ b/samples/da-microsoftdocssearchagent/assets/sample.json @@ -2,7 +2,7 @@ { "name": "pnp-copilot-pro-dev-da-microsoftdocssearchagent", "source": "pnp", - "title": "YOUR-SAMPLE-TITLE", + "title": "Microsoft Learn Search Agent", "shortDescription": "An agent that helps users search and retrieve content from Microsoft Learn. ", "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-microsoftdocssearchagent", "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-microsoftdocssearchagent", @@ -10,7 +10,7 @@ "An agent that helps users search and retrieve content from Microsoft Learn. " ], "creationDateTime": "2025-12-15", - "updateDateTime": "2024-10-03", + "updateDateTime": "2025-12-15", "products": [ "Microsoft 365 Copilot" ], From 44075ef673eb60ad6ca02245f78cfc65e13099df Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 11:42:19 +0000 Subject: [PATCH 07/20] Corrected paths for all OS --- .github/Generate-SampleList.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/Generate-SampleList.ps1 b/.github/Generate-SampleList.ps1 index a77a46490..b3fb21390 100644 --- a/.github/Generate-SampleList.ps1 +++ b/.github/Generate-SampleList.ps1 @@ -30,7 +30,7 @@ param ( ) begin { - $sourceFile = "$(Get-Location)\..\README.md" + $sourceFile = Join-Path -Path (Get-Location) -ChildPath ".." | Join-Path -ChildPath "README.md" # ------------------------------------------------------------------------------ @@ -65,7 +65,7 @@ begin { exit } - $BaseDir = "$(Get-Location)\.." + $BaseDir = Join-Path -Path (Get-Location) -ChildPath ".." $assetsFolder = "assets" $samplesFolderName = "samples" $content = Get-Content -Path $sourceFile -Raw @@ -203,7 +203,7 @@ process { '@ - $sampleFiles = Get-ChildItem -Path "$(Get-Location)\Samples" -Filter "sample.json" -Recurse + $sampleFiles = Get-ChildItem -Path (Join-Path -Path (Get-Location) -ChildPath "Samples") -Filter "sample.json" -Recurse From a99954ac4a21abf9c98ab57e2d53974cb1c6b626 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 11:42:26 +0000 Subject: [PATCH 08/20] Updated inventory --- .github/samples.json | 368 +++++++++++++++++++++++++++++++++++++++++++ README.md | 14 +- 2 files changed, 380 insertions(+), 2 deletions(-) diff --git a/.github/samples.json b/.github/samples.json index 0f4684d9f..afa4bf588 100644 --- a/.github/samples.json +++ b/.github/samples.json @@ -1,4 +1,176 @@ [ + { + "name": "pnp-copilot-pro-dev-cea-techpulse", + "title": "TechPulse - Custom Engine Agent for Real-Time Technology News", + "shortDescription": "An intelligent tech news companion powered by Microsoft 365 Agents SDK and Model Context Protocol (MCP)", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/cea-techpulse", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/cea-techpulse", + "creationDateTime": "2025-09-26", + "updateDateTime": "2025-10-16", + "products": [ + "Microsoft 365 Copilot" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": "Node.js" + }, + { + "key": "LANGUAGE", + "value": "TypeScript, JavaScript" + }, + { + "key": "API-PLUGIN", + "value": "No" + }, + { + "key": "GRAPH-CONNECTOR", + "value": "No" + } + ], + "thumbnails": [ + { + "type": "gif", + "order": 100, + "url": "https://raw.githubusercontent.com/pnp/copilot-pro-dev-samples/refs/heads/main/samples/cea-techpulse/assets/techPulse.gif", + "alt": "Declarative Agent with API Plugin for Microsoft 365 Copilot Sample" + } + ], + "authors": [ + { + "gitHubAccount": "AjayJ12-MSFT", + "pictureUrl": "https://github.com/AjayJ12-MSFT.png", + "name": "Ajay Jadhav" + } + ], + "Folder": "cea-techpulse" + }, + { + "name": "officedev-microsoft-365-copilot-samples-cext-trey-research-csharp", + "title": "Trey Research C#", + "shortDescription": "This sample demonstrates how to create an agent that interacts with a consulting API to provide information about consultants and projects.", + "url": "https://github.com/OfficeDev/Microsoft-365-Copilot-Samples/tree/main/samples/cext-trey-research-csharp", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/OfficeDev/Microsoft-365-Copilot-Samples/tree/main/samples/cext-trey-research-csharp", + "creationDateTime": "2025-04-16", + "updateDateTime": "2025-04-16", + "products": [ + "Microsoft 365 Copilot" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": ".NET" + }, + { + "key": "LANGUAGE", + "value": "csharp" + }, + { + "key": "TEAMS-PACKAGE", + "value": "Yes" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 50, + "url": "https://github.com/OfficeDev/Microsoft-365-Copilot-Samples/raw/main/samples/cext-trey-research-csharp/assets/preview.png", + "alt": "Screenshot of the Trey Research sample" + } + ], + "authors": [ + { + "gitHubAccount": "bobgerman", + "pictureUrl": "https://github.com/bobgerman.png", + "name": "Bob German" + } + ], + "Folder": "cext-trey-research-csharp" + }, + { + "name": "officedev-microsoft-365-copilot-samples-cext-trey-research-python", + "title": "Trey Research Python", + "shortDescription": "This sample demonstrates how to create an agent that interacts with a consulting API to provide information about consultants and projects.", + "url": "https://github.com/OfficeDev/Microsoft-365-Copilot-Samples/tree/main/samples/cext-trey-research-python", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/OfficeDev/Microsoft-365-Copilot-Samples/tree/main/samples/cext-trey-research-python", + "creationDateTime": "2025-04-16", + "updateDateTime": "2025-04-16", + "products": [ + "Microsoft 365 Copilot" + ], + "metadata": [ + { + "key": "LANGUAGE", + "value": "python" + }, + { + "key": "TEAMS-PACKAGE", + "value": "Yes" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 50, + "url": "https://github.com/OfficeDev/Microsoft-365-Copilot-Samples/raw/main/samples/cext-trey-research-python/assets/preview.png", + "alt": "Screenshot of the Trey Research sample" + } + ], + "authors": [ + { + "gitHubAccount": "bobgerman", + "pictureUrl": "https://github.com/bobgerman.png", + "name": "Bob German" + } + ], + "Folder": "cext-trey-research-python" + }, + { + "name": "pnp-copilot-pro-dev-da-adaptive-card-dialog", + "title": "Adaptive Card dialog", + "shortDescription": "A declarative agent demonstrating how to open dialog boxes from Adaptive Cards in Microsoft 365 Copilot", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-adaptive-card-dialog", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-adaptive-card-dialog", + "creationDateTime": "2026-01-06", + "updateDateTime": "2026-01-06", + "products": [ + "Microsoft 365 Copilot" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": "Copilot" + }, + { + "key": "LANGUAGE", + "value": "JavaScript" + }, + { + "key": "API-PLUGIN", + "value": "Yes" + }, + { + "key": "GRAPH-CONNECTOR", + "value": "No" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 100, + "url": "https://raw.githubusercontent.com/pnp/copilot-pro-dev-samples/refs/heads/main/samples/da-adaptive-card-dialog/assets/AdaptiveCardsDialogBox.gif", + "alt": "Declarative Agent with API Plugin for Microsoft 365 Copilot Sample" + } + ], + "authors": [ + { + "gitHubAccount": "v-ypradhan", + "pictureUrl": "https://github.com/v-ypradhan.png", + "name": "Yugal Pradhan" + } + ], + "Folder": "da-adaptive-card-dialog" + }, { "name": "pnp-copilot-pro-dev-da-azureopenai", "title": "Call chat completions from Azure Open AI - No code!", @@ -309,6 +481,52 @@ ], "Folder": "da-CLIForM365-helper" }, + { + "name": "pnp-copilot-pro-dev-da-community-samples-agent", + "title": "Microsoft 365 Community Sample Agent", + "shortDescription": "Agent that connects to the Sample Solution Gallery APIs, using MCP to allow users to find samples within an agent.", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-community-samples-agent", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-community-samples-agent", + "creationDateTime": "2025-12-07", + "updateDateTime": "2025-12-07", + "products": [ + "Microsoft 365 Copilot" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": "Declarative Agent" + }, + { + "key": "LANGUAGE", + "value": "JSON" + }, + { + "key": "API-PLUGIN", + "value": "Yes" + }, + { + "key": "GRAPH-CONNECTOR", + "value": "No" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 100, + "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/da-community-samples-agent/assets/Example.png", + "alt": "Declarative agent doing that connects to the Sample Solution Gallery APIs, using MCP to allow users to find samples within an agent." + } + ], + "authors": [ + { + "gitHubAccount": "pkbullock", + "pictureUrl": "https://github.com/pkbullock.png", + "name": "Paul Bullock" + } + ], + "Folder": "da-community-samples-agent" + }, { "name": "pnp-copilot-pro-dev-da-docfinder", "title": "Document Finder Declarative Agent for Microsoft 365 Copilot Sample", @@ -457,6 +675,58 @@ ], "Folder": "da-geolocator-game" }, + { + "name": "pnp-copilot-pro-dev-da-HRHelpdesk", + "title": "HR Heldpdesk Declarative Agent", + "shortDescription": "HR Helpdesk is a template Declarative Agent designed to help employees troubleshoot their issues using insights from ServiceNow KB, and if not successful create a case in the right Centre of Excellence/table without much burden on the end user.", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-HRHelpdesk", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-HRHelpdesk", + "creationDateTime": "2025-10-14", + "updateDateTime": "2025-10-14", + "products": [ + "Microsoft 365 Copilot" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": "Node.js" + }, + { + "key": "API-PLUGIN", + "value": "Yes" + }, + { + "key": "GRAPH-CONNECTOR", + "value": "No" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 100, + "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/da-HRHelpdesk/assets/hrhelpdesk.png", + "alt": "HR Helpdesk" + } + ], + "authors": [ + { + "gitHubAccount": "sebastienlevert", + "pictureUrl": "https://github.com/sebastienlevert.png", + "name": "Sébastien Levert" + }, + { + "gitHubAccount": "akhilsaivalluri", + "pictureUrl": "https://github.com/akhilsaivalluri.png", + "name": "Akhil Sai Valluri" + }, + { + "gitHubAccount": "garrytrinder", + "pictureUrl": "https://github.com/garrytrinder.png", + "name": "Garry Trinder" + } + ], + "Folder": "da-HRHelpdesk" + }, { "name": "pnp-copilot-pro-dev-IdeaCoach", "title": "Idea Coach Declarative Agent for Microsoft 365 Copilot Sample", @@ -503,6 +773,58 @@ ], "Folder": "da-IdeaCoach" }, + { + "name": "pnp-copilot-pro-dev-da-ITHelpdesk", + "title": "IT Helpdesk Declarative Agent", + "shortDescription": "IT Helpdesk Agent is a Declarative Agent designed to assist employees with IT issues through (a) guided, conversational troubleshooting, (b) outage detection, and ticket creation for escalation – powered through ServiceNow offerings (Knowledge, Catalogue and Tickets). ", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-ITHelpdesk", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-ITHelpdesk", + "creationDateTime": "2025-10-14", + "updateDateTime": "2025-10-14", + "products": [ + "Microsoft 365 Copilot" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": "Node.js" + }, + { + "key": "API-PLUGIN", + "value": "Yes" + }, + { + "key": "GRAPH-CONNECTOR", + "value": "No" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 100, + "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/da-ITHelpdesk/assets/ithelpdesk.png", + "alt": "IT Helpdesk" + } + ], + "authors": [ + { + "gitHubAccount": "sebastienlevert", + "pictureUrl": "https://github.com/sebastienlevert.png", + "name": "Sébastien Levert" + }, + { + "gitHubAccount": "akhilsaivalluri", + "pictureUrl": "https://github.com/akhilsaivalluri.png", + "name": "Akhil Sai Valluri" + }, + { + "gitHubAccount": "garrytrinder", + "pictureUrl": "https://github.com/garrytrinder.png", + "name": "Garry Trinder" + } + ], + "Folder": "da-ITHelpdesk" + }, { "name": "pnp-copilot-pro-dev-LearningCoach", "title": "Learning Coach Declarative Agent for Microsoft 365 Copilot Sample", @@ -602,6 +924,52 @@ ], "Folder": "da-m365-roadmap-tracker" }, + { + "name": "pnp-copilot-pro-dev-da-microsoftdocssearchagent", + "title": "Microsoft Learn Search Agent", + "shortDescription": "An agent that helps users search and retrieve content from Microsoft Learn. ", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-microsoftdocssearchagent", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/da-microsoftdocssearchagent", + "creationDateTime": "2025-12-15", + "updateDateTime": "2025-12-15", + "products": [ + "Microsoft 365 Copilot" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": "Node.js" + }, + { + "key": "LANGUAGE", + "value": "JSON" + }, + { + "key": "API-PLUGIN", + "value": "Yes" + }, + { + "key": "GRAPH-CONNECTOR", + "value": "No" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 100, + "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/da-microsoftdocssearchagent/assets/preview.png", + "alt": "Declarative agent that helps users search and retrieve content from Microsoft Learn." + } + ], + "authors": [ + { + "gitHubAccount": "pkbullock", + "pictureUrl": "https://github.com/pkbullock.png", + "name": "Paul Bullock" + } + ], + "Folder": "da-microsoftdocssearchagent" + }, { "name": "pnp-copilot-pro-dev-myadvancedcommsbuddy", "title": "My Advanced Communication Buddy - Declarative Agent with API Plugin for Microsoft 365 Copilot Sample", diff --git a/README.md b/README.md index 21a287cde..74aff86a3 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ This repository contains [Microsoft 365 Copilot](https://learn.microsoft.com/mic | Title | Description | Author | |-------|-------------|--------| +| [Adaptive Card dialog](./samples/da-adaptive-card-dialog) | A declarative agent demonstrating how to open dialog boxes from Adaptive Cards in Microsoft 365 Copilot | Yugal Pradhan | | [Agent PostPilot](./samples/da-PostPilotAgent) | Agent helps write LinkedIn post to announce Prompt of the week | Rabia Williams | | [Azure Open AI Agent using TypeSpec for Microsoft 365 Copilot](./samples/da-typespec-azureopenai) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot using TypeSpec for Microsoft 365 Copilot that allows to connect to Azure Open AI API as an API plugin to send queries. | Reshmee | | [Blog Post Helper Declarative Agent for Microsoft 365 Copilot Sample](./samples/da-BlogPostHelper) | Blog post helper declarative agent to help in the creation process. | Paul Bullock | @@ -27,16 +28,20 @@ This repository contains [Microsoft 365 Copilot](https://learn.microsoft.com/mic | [Declarative for Microsoft 365 Copilot with an API plugin connected to an API secured with OAuth](./samples/da-repairs-oauth) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot that answers questions about repairs. The agent uses an API plugin to connect to an API secured with OAuth. The project contains an Azure Function that serves as the API and uses the built-in Azure App Service authentication and authorization capabilities (also referred to as Easy Auth) to secure access to APIs. | Waldek Mastykarz | | [Document Finder Declarative Agent for Microsoft 365 Copilot Sample](./samples/da-DocFinder) | First Party Declarative Agent Document Finder shared as a sample | Jeremy Thake | | [ESA, The Environment Sustainability Agent using Microsoft 365 Copilot](./samples/da-environmentSustainability) | This sample showcases how to build a declarative agent for Microsoft 365 Copilot connected to a SharePoint site as knowledge base, named ESA, the Environment Sustainability Agent. ESA is an intelligent assistant developed to assist organizations in monitoring and optimizing their environmental impact. | Rabia Williams | -| [Finding and apply for volunteer opportunities using Microsoft 365 Copilot with SharePoint List and Azure Ai Search - No code!](./samples/da-volunteeringapp) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot that allows you to find and apply for volunteer opportunities using Microsoft 365 Copilot with SharePoint List and Azure Ai Search integration and authentication. | Reshmee Auckloo, Lee Ford | | [Finding and apply for volunteer opportunities using Microsoft 365 Copilot with SharePoint List and Azure Ai Search - No code!](./samples/da-typespec-AzureAISearch_MsGraph-volunteeringapp) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot using TypeSpec that allows you to find and apply for volunteer opportunities using Microsoft 365 Copilot with SharePoint List and Azure Ai Search integration and authentication. | Reshmee Auckloo, Lee Ford | +| [Finding and apply for volunteer opportunities using Microsoft 365 Copilot with SharePoint List and Azure Ai Search - No code!](./samples/da-volunteeringapp) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot that allows you to find and apply for volunteer opportunities using Microsoft 365 Copilot with SharePoint List and Azure Ai Search integration and authentication. | Reshmee Auckloo, Lee Ford | | [Geo Locator Game](./samples/da-geolocator-game) | This sample demonstrates how to create a Geo Locator Game declarative agent using Microsoft 365 Copilot. | Ayca Bas, Garry Trinder | | [GitHub Issues Agent using TypeSpec for Microsoft 365 Copilot](./samples/da-typespec-github) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot using TypeSpec for Microsoft 365 Copilot that allows you ground responses in WebSearch, use CodeInterpreter and use the GitHub API as an API plugin to retrieve issues. | Sébastien Levert | | [Graph QnA agent for Microsoft 365 Copilot](./samples/da-qna-graphapi-plugin) | Copilot declarative agent makes direct calls to Microsoft Graph | Franck Cornu | +| [HR Heldpdesk Declarative Agent](./samples/da-HRHelpdesk) | HR Helpdesk is a template Declarative Agent designed to help employees troubleshoot their issues using insights from ServiceNow KB, and if not successful create a case in the right Centre of Excellence/table without much burden on the end user. | Sébastien Levert, Akhil Sai Valluri, Garry Trinder | | [Idea Coach Declarative Agent for Microsoft 365 Copilot Sample](./samples/da-IdeaCoach) | First Party Declarative Agent Idea Coach shared as a sample | Eric Scherlinger | +| [IT Helpdesk Declarative Agent](./samples/da-ITHelpdesk) | IT Helpdesk Agent is a Declarative Agent designed to assist employees with IT issues through (a) guided, conversational troubleshooting, (b) outage detection, and ticket creation for escalation – powered through ServiceNow offerings (Knowledge, Catalogue and Tickets). | Sébastien Levert, Akhil Sai Valluri, Garry Trinder | | [Learning Coach Declarative Agent for Microsoft 365 Copilot Sample](./samples/da-LearningCoach) | First Party Declarative Agent Learning Coach shared as a sample | Julie Chudakova | -| [Manage repairs using Microsoft 365 Copilot](./samples/da-typespec-repairs-apikey) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot using TypeSpec for Microsoft 365 Copilot that allows you to read, create, update and delete items from a Repairs system. The agent uses an API plugin to connect to an API-key protected API. | Sébastien Levert | | [Manage repairs using Microsoft 365 Copilot](./samples/da-typespec-repairs) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot using TypeSpec for Microsoft 365 Copilot that allows you to read, create, update and delete items from a Repairs system. The agent uses an API plugin to connect to an anonymous API. | Sébastien Levert | +| [Manage repairs using Microsoft 365 Copilot](./samples/da-typespec-repairs-apikey) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot using TypeSpec for Microsoft 365 Copilot that allows you to read, create, update and delete items from a Repairs system. The agent uses an API plugin to connect to an API-key protected API. | Sébastien Levert | | [Manage repairs using Microsoft 365 Copilot using OAuth 2.0 authentication](./samples/da-typespec-repairs-oauth) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot using TypeSpec for Microsoft 365 Copilot that allows you to read, create, update and delete items from a Repairs system. The agent uses an API plugin to connect to an OAuth protected API. This sample is connecting to an already configured API. | Sébastien Levert | +| [Microsoft 365 Community Sample Agent](./samples/da-community-samples-agent) | Agent that connects to the Sample Solution Gallery APIs, using MCP to allow users to find samples within an agent. | Paul Bullock | +| [Microsoft Learn Search Agent](./samples/da-microsoftdocssearchagent) | An agent that helps users search and retrieve content from Microsoft Learn. | Paul Bullock | | [My Advanced Communication Buddy - Declarative Agent with API Plugin for Microsoft 365 Copilot Sample](./samples/da-MyAdvancedCommsBuddy) | First Party Declarative Agent Career Coach shared as a sample | Paul Bullock | | [My Communication Buddy](./samples/da-MyCommsBuddy) | Declarative Agent designed to assist user in creating corporate communications | Paul Bullock | | [PM Spec Reviewer](./samples/da-PMSpecReviewer) | A Microsoft Teams app that helps Product Managers review product specifications using AI assistance. | Sid Mathur | @@ -54,7 +59,10 @@ This repository contains [Microsoft 365 Copilot](https://learn.microsoft.com/mic | [SharePoint Agents Finder declarative agent](./samples/da-sp-agents-finder) | SharePoint Agents Finder uses the Microsoft Graph API as a Copilot plugin in a declarative agent, leveraging the Microsoft Graph Search API /search/query endpoint to retrieve information about SharePoint Agents and event any file in Microsoft 365. | Mohammad Amer | | [Tasks Agent using TypeSpec for Microsoft 365 Copilot that connects to the Microsoft Graph APIs](./samples/da-typespec-todo) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot using TypeSpec for Microsoft 365 Copilot that connects to the Tasks endpoints of the Microsoft Graph API through an API plugin. | Sébastien Levert | | [Tech Support agent using TypeSpec for Microsoft 365 Copilot](./samples/da-typespec-tech-support) | This sample demonstrates how to build a declarative agent for Microsoft 365 Copilot using TypeSpec for Microsoft 365 Copilot that allows you ground responses in WebSearch, SharePoint and Copilot connectors | Sébastien Levert | +| [TechPulse - Custom Engine Agent for Real-Time Technology News](./samples/cea-techpulse) | An intelligent tech news companion powered by Microsoft 365 Agents SDK and Model Context Protocol (MCP) | Ajay Jadhav | | [The M365 Roadmap Features Tracker agent shows how users can easily stay up to date with the latest Microsoft 365 roadmap features.](./samples/da-m365-roadmap-tracker) | The M365 Roadmap Features Tracker agent shows how users can easily stay up to date with the latest Microsoft 365 roadmap features. It integrates a Microsoft Graph Connector to monitor and deliver the latest updates, offering a hands-free solution for staying informed. | Mohammad Amer | +| [Trey Research C#](./samples/cext-trey-research-csharp) | This sample demonstrates how to create an agent that interacts with a consulting API to provide information about consultants and projects. | Bob German | +| [Trey Research Python](./samples/cext-trey-research-python) | This sample demonstrates how to create an agent that interacts with a consulting API to provide information about consultants and projects. | Bob German | | [Trey Research TS Auth](./samples/da-trey-research-auth) | This sample demonstrates how to create an agent that interacts with a protected consulting API to provide information about consultants and projects. | Bob German, Garry Trinder | | [Trey Research TypeScript](./samples/da-trey-research) | This sample demonstrates how to create an agent that interacts with a consulting API to provide information about consultants and projects. | Bob German, Garry Trinder | | [Trey Research TypeSpec](./samples/da-typespec-trey-research) | This sample demonstrates how to create an agent that interacts with a consulting API to provide information about consultants and projects. | Bob German, Rabia Williams | @@ -87,3 +95,5 @@ This repository has adopted the [Microsoft Open Source Code of Conduct](https:// + + From 318e1e37cc7303a627eb690337eecba7dd34c989 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 16:31:21 +0000 Subject: [PATCH 09/20] Imported agent sample for MCS --- .../BlogHelperAgent.cdsproj | 54 +++++++++++ samples/mcs-BlogPostHelper/README.md | 70 +++++++++++++++ .../assets/pending-image.png | Bin 0 -> 84311 bytes .../assets/template-sample.json | 70 +++++++++++++++ .../mcs-BlogPostHelper/mcs-BlogPostHelper.zip | Bin 0 -> 30357 bytes .../src/Other/Customizations.xml | 17 ++++ .../mcs-BlogPostHelper/src/Other/Solution.xml | 83 +++++++++++++++++ .../botcomponent.xml | 9 ++ .../data | 2 + .../botcomponent.xml | 11 +++ .../cr7f7_blogHelperAgent.gpt.default/data | 84 ++++++++++++++++++ .../botcomponent.xml | 11 +++ .../data | 4 + .../botcomponent.xml | 11 +++ .../data | 12 +++ .../botcomponent.xml | 12 +++ .../data | 75 ++++++++++++++++ .../botcomponent.xml | 13 +++ .../cr7f7_blogHelperAgent.topic.Escalate/data | 60 +++++++++++++ .../botcomponent.xml | 11 +++ .../cr7f7_blogHelperAgent.topic.Fallback/data | 19 ++++ .../botcomponent.xml | 11 +++ .../cr7f7_blogHelperAgent.topic.Goodbye/data | 39 ++++++++ .../botcomponent.xml | 11 +++ .../cr7f7_blogHelperAgent.topic.Greeting/data | 25 ++++++ .../botcomponent.xml | 11 +++ .../data | 43 +++++++++ .../botcomponent.xml | 11 +++ .../cr7f7_blogHelperAgent.topic.OnError/data | 45 ++++++++++ .../botcomponent.xml | 10 +++ .../data | 16 ++++ .../botcomponent.xml | 11 +++ .../cr7f7_blogHelperAgent.topic.Search/data | 20 +++++ .../botcomponent.xml | 11 +++ .../cr7f7_blogHelperAgent.topic.Signin/data | 19 ++++ .../botcomponent.xml | 10 +++ .../data | 35 ++++++++ .../botcomponent.xml | 11 +++ .../cr7f7_blogHelperAgent.topic.ThankYou/data | 17 ++++ .../src/bots/cr7f7_blogHelperAgent/bot.xml | 12 +++ .../cr7f7_blogHelperAgent/configuration.json | 33 +++++++ 41 files changed, 1029 insertions(+) create mode 100644 samples/mcs-BlogPostHelper/BlogHelperAgent.cdsproj create mode 100644 samples/mcs-BlogPostHelper/README.md create mode 100644 samples/mcs-BlogPostHelper/assets/pending-image.png create mode 100644 samples/mcs-BlogPostHelper/assets/template-sample.json create mode 100644 samples/mcs-BlogPostHelper/mcs-BlogPostHelper.zip create mode 100644 samples/mcs-BlogPostHelper/src/Other/Customizations.xml create mode 100644 samples/mcs-BlogPostHelper/src/Other/Solution.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.BotSettingsComponent.Feedback/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.BotSettingsComponent.Feedback/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.gpt.default/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.gpt.default/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.knowledge.PublicSiteSearchSource.0/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.knowledge.PublicSiteSearchSource.0/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ConversationStart/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ConversationStart/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.EndofConversation/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.EndofConversation/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Escalate/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Escalate/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Fallback/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Fallback/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Goodbye/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Goodbye/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Greeting/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Greeting/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.MultipleTopicsMatched/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.MultipleTopicsMatched/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.OnError/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.OnError/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ResetConversation/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ResetConversation/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Search/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Search/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Signin/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Signin/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.StartOver/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.StartOver/data create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ThankYou/botcomponent.xml create mode 100644 samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ThankYou/data create mode 100644 samples/mcs-BlogPostHelper/src/bots/cr7f7_blogHelperAgent/bot.xml create mode 100644 samples/mcs-BlogPostHelper/src/bots/cr7f7_blogHelperAgent/configuration.json diff --git a/samples/mcs-BlogPostHelper/BlogHelperAgent.cdsproj b/samples/mcs-BlogPostHelper/BlogHelperAgent.cdsproj new file mode 100644 index 000000000..0c94dfe18 --- /dev/null +++ b/samples/mcs-BlogPostHelper/BlogHelperAgent.cdsproj @@ -0,0 +1,54 @@ + + + + $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\PowerApps + + + + + + + 03feaf8e-5c2a-4fd7-8060-129e4dc5875f + v4.6.2 + + net462 + PackageReference + src + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + + + + + diff --git a/samples/mcs-BlogPostHelper/README.md b/samples/mcs-BlogPostHelper/README.md new file mode 100644 index 000000000..f2fafeb05 --- /dev/null +++ b/samples/mcs-BlogPostHelper/README.md @@ -0,0 +1,70 @@ + + +# Blog Post Helper for Copilot Studio + +## Summary + +This agent is built with Copilot Studio, as an equivelant variation of ```da-BlogPostHelper``` sample and and advising example of how to import a studio agent + +## Contributors + +* [Paul Bullock](https://github.com/pkbullock.png) + +## Version history + +Version|Date|Comments +-------|----|-------- +1.0|Feburary 01, 2026|Initial release + +## Prerequisites + +* Microsoft 365 tenant with Microsoft 365 Copilot +* Access to Copilot Studio + +## Minimal path to awesome + +**Import Solution into Copilot Studio** + +This sample uses the Power Platform CLI to import samples, for documenation and installation instructions please visit: [What is Microsoft Power Platform CLI? | Microsoft Learn](https://learn.microsoft.com/en-us/power-platform/developer/cli/introduction) + +- Ensure you are authenticated with ```pac auth``` + +```powershell + +cd samples/mcs-BlogPostHelper + +# Package up the solution, note the SRC part is important to pack. +pac solution pack --zipfile mcs-BlogPostHelper.zip --folder ./src + +# Import into specific environment use -env, or leave blank for defualt environment +pac env list +pac solution import --path ./mcs-BlogPostHelper.zip -env ba171802-488b-ed1b-b121-e778530363a2 + +``` + +## Features + +Extended description of the contents of the sample. What elements does it include? What concepts does illustrate? + +Using this sample you can extend Microsoft 365 Copilot with an agent that: + +* Helps build blog posts +* This is just a simple agent for testing the Copilot Samples process. + +## Help + +We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues. + +You can try looking at [issues related to this sample](https://github.com/pnp/copilot-pro-dev-samples/issues?q=label%3A%22sample%3A%20mcs-BlogPostHelper%22) to see if anybody else is having the same issues. + +If you encounter any issues using this sample, [create a new issue](https://github.com/pnp/copilot-pro-dev-samples/issues/new). + +Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/copilot-pro-dev-samples/issues/new). + +## Disclaimer + +**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** + +![](https://m365-visitor-stats.azurewebsites.net/copilot-pro-dev-samples/mcs-BlogPostHelper) diff --git a/samples/mcs-BlogPostHelper/assets/pending-image.png b/samples/mcs-BlogPostHelper/assets/pending-image.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf8e844592b32a6bbc4f5a2b2a1c4cd053e62b3 GIT binary patch literal 84311 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ξKJO6#&wIu%T$uK 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 LlWOUz=WqN6I_=&o literal 0 HcmV?d00001 diff --git a/samples/mcs-BlogPostHelper/assets/template-sample.json b/samples/mcs-BlogPostHelper/assets/template-sample.json new file mode 100644 index 000000000..a7c3d481d --- /dev/null +++ b/samples/mcs-BlogPostHelper/assets/template-sample.json @@ -0,0 +1,70 @@ +[ + { + "name": "pnp-copilot-pro-dev-YOUR_AGENT_FOLDER", + "source": "pnp", + "title": "YOUR-SAMPLE-TITLE", + "shortDescription": "YOUR-SHORT-DESCRIPTION", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR_AGENT_FOLDER", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR_AGENT_FOLDER", + "longDescription": [ + "YOUR-SHORT-DESCRIPTION" + ], + "creationDateTime": "2026-02-14", + "updateDateTime": "2026-02-14", + "products": [ + "Microsoft 365 Copilot", + "Microsoft Copilot Studio" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": "Copilot Studio" + }, + { + "key": "LANGUAGE", + "value": "None" + }, + { + "key": "API-PLUGIN", + "value": "No" + }, + { + "key": "GRAPH-CONNECTOR", + "value": "No" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 100, + "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/YOUR_AGENT_FOLDER/assets/YOUR-IMAGE-NAME-HERE", + "alt": "Copilot Studio agent doing x" + }, + { + "type": "video", + "order": 101, + "url": "https://www.youtube.com/embed/FS-_0KENJkI", + "alt": "Copilot Studio agent doing x" + } + ], + "authors": [ + { + "gitHubAccount": "YOUR-GITHUB-ACCOUNT", + "pictureUrl": "https://github.com/YOUR-GITHUB-ACCOUNT.png", + "name": "YOUR-NAME" + } + ], + "references": [ + { + "name": "Microsoft 365 Copilot extensibility", + "description": "Learn more about what Microsoft 365 Copilot and how you can extend it.", + "url": "https://learn.microsoft.com/microsoft-365-copilot/extensibility/" + }, + { + "name": "Microsoft Copilot Studio", + "description": "Discover how to build AI-driven agents and workflows easily with Microsoft Copilot Studio with online training courses, docs, and videos. Learn how to quickly and simply integrate chat into your website.", + "url": "https://learn.microsoft.com/en-us/microsoft-copilot-studio/" + } + ] + } +] \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/mcs-BlogPostHelper.zip b/samples/mcs-BlogPostHelper/mcs-BlogPostHelper.zip new file mode 100644 index 0000000000000000000000000000000000000000..efa45be92b9fe76a014f2ec71f9fa92f8594403e GIT binary patch literal 30357 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 F`yYF+*dzb| literal 0 HcmV?d00001 diff --git a/samples/mcs-BlogPostHelper/src/Other/Customizations.xml b/samples/mcs-BlogPostHelper/src/Other/Customizations.xml new file mode 100644 index 000000000..37b3487bb --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/Other/Customizations.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + 1033 + + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/Other/Solution.xml b/samples/mcs-BlogPostHelper/src/Other/Solution.xml new file mode 100644 index 000000000..b277c1f41 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/Other/Solution.xml @@ -0,0 +1,83 @@ + + + + BlogHelperAgent + + + + + 1.0.0.0 + 0 + + paulbullock + + + + + + + pkbagent + 89470 + +
+ 1 + 1 + + + + + + + + + + + + + + + + 1 + + + + + + + + +
+
+ 2 + 1 + + + + + + + + + + + + + + + + 1 + + + + + + + + +
+
+
+ + +
+
\ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.BotSettingsComponent.Feedback/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.BotSettingsComponent.Feedback/botcomponent.xml new file mode 100644 index 000000000..be0d87fbe --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.BotSettingsComponent.Feedback/botcomponent.xml @@ -0,0 +1,9 @@ + + 18 + 0 + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.BotSettingsComponent.Feedback/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.BotSettingsComponent.Feedback/data new file mode 100644 index 000000000..39c71d46d --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.BotSettingsComponent.Feedback/data @@ -0,0 +1,2 @@ +kind: DefaultFeedbackCollection +disclaimer: \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.gpt.default/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.gpt.default/botcomponent.xml new file mode 100644 index 000000000..6602ff601 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.gpt.default/botcomponent.xml @@ -0,0 +1,11 @@ + + 15 + Declarative agent that supports the authoring, reviews and creation of blog posts. + 0 + Blog helper agent (CS) + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.gpt.default/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.gpt.default/data new file mode 100644 index 000000000..717d53a38 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.gpt.default/data @@ -0,0 +1,84 @@ +kind: GptComponentMetadata +displayName: Blog helper agent (CS) +instructions: |- + You are a declarative agent that assists users in authoring, reviewing, and creating blog posts. You should support image creation and code interpretation to enhance the content creation process. + + Examples of Capabilities and kinds of requests from the user: + + Blog Post Authoring + + - Assist users in drafting blog posts by providing writing prompts, structure suggestions, and content ideas. + - Offer grammar and style suggestions to improve readability and engagement. + - Generate introductory and concluding paragraphs based on the main content. + + Blog Post Reviewing: + + - Review and provide feedback on draft blog posts, focusing on clarity, coherence, and overall quality. + - Highlight areas for improvement and suggest edits. + - Check for plagiarism and ensure originality. + + Image Creation such as blog post headers: + + - Generate relevant images based on the blog post content. + - Provide options for different styles and formats (e.g., infographics, illustrations, charts). + - Ensure images are high-quality and appropriately licensed for use. + + Code Interpretation: + + - Interpret and format code snippets included in blog posts. + - Provide syntax highlighting and error checking for various programming languages. + - Suggest improvements or optimizations for the code. + + Instructions for Use + + Starting a New Blog Post: + + - Prompt the user to provide a topic or main idea. + - Offer a structured outline to guide the writing process. + - Suggest relevant keywords and phrases to include. + + Reviewing a Draft: + + - Analyze the draft for grammar, style, and coherence. + - Provide detailed feedback and suggest specific edits. + - Highlight any potential plagiarism issues and suggest rephrasing. + + Interpreting Code + + - Detect code snippets within the blog post. + - Apply syntax highlighting and check for errors. + - Offer suggestions for improving the code's efficiency and readability. + + Example Workflow + User: "I want to write a blog post about the benefits of using AI in Microsoft 365." + Agent: "Great! Here's a suggested outline: Introduction, Benefits of AI in Microsoft 365, Case Studies, Challenges and Considerations, Conclusion. Would you like to start with the introduction?" + User: "Yes, please." + Agent: "Here's a draft introduction: 'Artificial Intelligence (AI) is revolutionizing the IT industry by improving diagnostics, plans, and outcomes. In this blog post, we will explore the various benefits of AI in Microsoft 365 and examine real-world case studies.' How does this sound?" + User: "Looks good. Can you add an image of a blog robot?" + Agent: "Sure! Here are three options for images of blog robots. Which one would you like to use?" + User: "I'll go with the second one." + Agent: "Image added. Now, let's move on to the next section: Benefits of AI in Microsoft 365. Here are some key points to include..." +gptCapabilities: + webBrowsing: false + codeInterpreter: true + +conversationStarters: + - title: Example of blog post summary + text: Summerise the blog post called `Understanding the user experience of using an agent in SharePoint in Teams chat` + + - title: Show a code sample + text: In the blog post titled 'The many ways to set UK Locale in SharePoint', get a list of code samples and display in table format with title and description of each sample + + - title: Find a blog about... + text: Find a blog post titled 'Understanding the user experience of using an agent in SharePoint in Teams chat' and show a list of sample code? + + - title: Find and Review + text: Find & Review the blog post titled 'Extending your Graph Connector to a Microsoft 365 Copilot Agent', check for grammer errors + + - title: Create an Introduction + text: I want to create a new post and would like you to suggest an introduction about to [post about declarative agents] + +aISettings: + model: {} + extensionData: + lastUsedCustomModel: {} \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.knowledge.PublicSiteSearchSource.0/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.knowledge.PublicSiteSearchSource.0/botcomponent.xml new file mode 100644 index 000000000..be13c0432 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.knowledge.PublicSiteSearchSource.0/botcomponent.xml @@ -0,0 +1,11 @@ + + 16 + This knowledge source searches information on the web found in https://pkbullock.com/ website + 0 + https://pkbullock.com/ + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.knowledge.PublicSiteSearchSource.0/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.knowledge.PublicSiteSearchSource.0/data new file mode 100644 index 000000000..9513c4362 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.knowledge.PublicSiteSearchSource.0/data @@ -0,0 +1,4 @@ +kind: KnowledgeSourceConfiguration +source: + kind: PublicSiteSearchSource + site: https://pkbullock.com/ \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ConversationStart/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ConversationStart/botcomponent.xml new file mode 100644 index 000000000..c1c669a9f --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ConversationStart/botcomponent.xml @@ -0,0 +1,11 @@ + + 9 + This system topic triggers when the agent receives an Activity indicating the beginning of a new conversation. If you do not want the agent to initiate the conversation, disable this topic. + 0 + Conversation Start + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ConversationStart/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ConversationStart/data new file mode 100644 index 000000000..d1c6cd6d0 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ConversationStart/data @@ -0,0 +1,12 @@ +kind: AdaptiveDialog +beginDialog: + kind: OnConversationStart + id: main + actions: + - kind: SendActivity + id: sendMessage_M0LuhV + activity: + text: + - Hello, I'm {System.Bot.Name}, a virtual assistant. Just so you are aware, I sometimes use AI to answer your questions. If you provided a website during creation, try asking me about it! Next try giving me some more knowledge by setting up generative AI. + speak: + - Hello and thank you for calling {System.Bot.Name}. Please note that some responses are generated by AI and may require verification for accuracy. How may I help you today? \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.EndofConversation/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.EndofConversation/botcomponent.xml new file mode 100644 index 000000000..0b9ca709e --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.EndofConversation/botcomponent.xml @@ -0,0 +1,12 @@ + + 9 + This system topic is only triggered by a redirect action, +and guides the user through rating their conversation with the agent. + 0 + End of Conversation + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.EndofConversation/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.EndofConversation/data new file mode 100644 index 000000000..a8ae38e2c --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.EndofConversation/data @@ -0,0 +1,75 @@ +kind: AdaptiveDialog +startBehavior: CancelOtherTopics +beginDialog: + kind: OnSystemRedirect + id: main + actions: + - kind: Question + id: 41d42054-d4cb-4e90-b922-2b16b37fe379 + conversationOutcome: ResolvedImplied + alwaysPrompt: true + variable: init:Topic.SurveyResponse + prompt: Did that answer your question? + entity: BooleanPrebuiltEntity + + - kind: ConditionGroup + id: condition-0 + conditions: + - id: condition-0-item-0 + condition: =Topic.SurveyResponse = true + actions: + - kind: CSATQuestion + id: csat_1 + conversationOutcome: ResolvedConfirmed + + - kind: SendActivity + id: sendMessage_8r29O0 + activity: Thanks for your feedback. + + - kind: Question + id: question_1 + alwaysPrompt: true + variable: init:Topic.Continue + prompt: Can I help with anything else? + entity: BooleanPrebuiltEntity + + - kind: ConditionGroup + id: condition-1 + conditions: + - id: condition-1-item-0 + condition: =Topic.Continue = true + actions: + - kind: SendActivity + id: sendMessage_4eOE6h + activity: Go ahead. I'm listening. + + elseActions: + - kind: SendActivity + id: yHBz55 + activity: Ok, goodbye. + + - kind: EndConversation + id: jh1GMT + + elseActions: + - kind: Question + id: PM68ot + alwaysPrompt: true + variable: init:Topic.TryAgain + prompt: Sorry I wasn't able to help better. Would you like to try again? + entity: BooleanPrebuiltEntity + + - kind: ConditionGroup + id: KNxYBf + conditions: + - id: DPveFP + condition: =Topic.TryAgain = false + actions: + - kind: BeginDialog + id: cngqi4 + dialog: cr7f7_blogHelperAgent.topic.Escalate + + elseActions: + - kind: SendActivity + id: GrVHEW + activity: Go ahead. I'm listening. \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Escalate/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Escalate/botcomponent.xml new file mode 100644 index 000000000..e7165ad7d --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Escalate/botcomponent.xml @@ -0,0 +1,13 @@ + + 9 + This system topic is triggered when the user indicates they would like to speak to a representative. +You can configure how the agent will handle human hand-off scenarios in the agent settings.. +If your agent does not handle escalations, this topic should be disabled. + 0 + Escalate + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Escalate/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Escalate/data new file mode 100644 index 000000000..5e3cab082 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Escalate/data @@ -0,0 +1,60 @@ +kind: AdaptiveDialog +startBehavior: CancelOtherTopics +beginDialog: + kind: OnEscalate + id: main + intent: + displayName: Escalate + includeInOnSelectIntent: false + triggerQueries: + - Talk to agent + - Talk to a person + - Talk to someone + - Call back + - Call customer service + - Call me please + - Call support + - Call technical support + - Can an agent call me + - Can I call + - Can I get in touch with someone else + - Can I get real agent support + - Can I get transferred to a person to call + - Can I have a call in number Or can I be called + - Can I have a representative call me + - Can I schedule a call + - Can I speak to a representative + - Can I talk to a human + - Can I talk to a human assistant + - Can someone call me + - Chat with a human + - Chat with a representative + - Chat with agent + - Chat with someone please + - Connect me to a live agent + - Connect me to a person + - Could some one contact me by phone + - Customer agent + - Customer representative + - Customer service + - I need a manager to contact me + - I need customer service + - I need help from a person + - I need to speak with a live argent + - I need to talk to a specialist please + - I want to talk to customer service + - I want to proceed with live support + - I want to speak with a consultant + - I want to speak with a live tech + - I would like to speak with an associate + - I would like to talk to a technician + - Talk with tech support member + + actions: + - kind: SendActivity + id: sendMessage_s39DCt + conversationOutcome: Escalated + activity: |- + Escalating to a representative is not currently configured for this agent, however this is where the agent could provide information about how to get in touch with someone another way. + + Is there anything else I can help you with? \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Fallback/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Fallback/botcomponent.xml new file mode 100644 index 000000000..5320f1872 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Fallback/botcomponent.xml @@ -0,0 +1,11 @@ + + 9 + This system topic triggers when the user's utterance does not match any existing topics. + 0 + Fallback + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Fallback/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Fallback/data new file mode 100644 index 000000000..7ac34fab2 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Fallback/data @@ -0,0 +1,19 @@ +kind: AdaptiveDialog +beginDialog: + kind: OnUnknownIntent + id: main + actions: + - kind: ConditionGroup + id: conditionGroup_LktzXw + conditions: + - id: conditionItem_tlGIVo + condition: =System.FallbackCount < 3 + actions: + - kind: SendActivity + id: sendMessage_QZreqo + activity: I'm sorry, I'm not sure how to help with that. Can you try rephrasing? + + elseActions: + - kind: BeginDialog + id: 5aXj5M + dialog: cr7f7_blogHelperAgent.topic.Escalate \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Goodbye/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Goodbye/botcomponent.xml new file mode 100644 index 000000000..1b59b8f58 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Goodbye/botcomponent.xml @@ -0,0 +1,11 @@ + + 9 + This topic triggers when the user says goodbye. By default, it does not end the conversation. If you would like to end the conversation when the user says goodbye, you can add an "End of Conversation" action to this topic, or redirect to the "End of Conversation" system topic. + 0 + Goodbye + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Goodbye/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Goodbye/data new file mode 100644 index 000000000..f91603951 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Goodbye/data @@ -0,0 +1,39 @@ +kind: AdaptiveDialog +startBehavior: CancelOtherTopics +beginDialog: + kind: OnRecognizedIntent + id: main + intent: + displayName: Goodbye + includeInOnSelectIntent: false + triggerQueries: + - Bye + - Bye for now + - Bye now + - Good bye + - No thank you. Goodbye. + - See you later + + actions: + - kind: Question + id: question_zf2HhP + variable: Topic.EndConversation + prompt: Would you like to end our conversation? + entity: BooleanPrebuiltEntity + + - kind: ConditionGroup + id: condition_DGc1Wy + conditions: + - id: condition_DGc1Wy-item-0 + condition: =Topic.EndConversation = true + actions: + - kind: BeginDialog + id: dn94DC + dialog: cr7f7_blogHelperAgent.topic.EndofConversation + + - id: condition_DGc1Wy-item-1 + condition: =Topic.EndConversation = false + actions: + - kind: SendActivity + id: sendMessage_LdLhmf + activity: Go ahead. I'm listening. \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Greeting/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Greeting/botcomponent.xml new file mode 100644 index 000000000..f7d3dd2ac --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Greeting/botcomponent.xml @@ -0,0 +1,11 @@ + + 9 + This topic is triggered when the user greets the agent. + 0 + Greeting + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Greeting/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Greeting/data new file mode 100644 index 000000000..ce02e8fbc --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Greeting/data @@ -0,0 +1,25 @@ +kind: AdaptiveDialog +beginDialog: + kind: OnRecognizedIntent + id: main + intent: + displayName: Greeting + includeInOnSelectIntent: false + triggerQueries: + - Good afternoon + - Good morning + - Hello + - Hey + - Hi + + actions: + - kind: SendActivity + id: sendMessage_abmysR + activity: + text: + - Hello, how can I help you today? + speak: + - Hello, how can I help? + + - kind: CancelAllDialogs + id: cancelAllDialogs_01At22 \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.MultipleTopicsMatched/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.MultipleTopicsMatched/botcomponent.xml new file mode 100644 index 000000000..ee7d92cf3 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.MultipleTopicsMatched/botcomponent.xml @@ -0,0 +1,11 @@ + + 9 + This system topic triggers when the agent matches multiple Topics with the incoming message and needs to clarify which one should be triggered. + 0 + Multiple Topics Matched + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.MultipleTopicsMatched/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.MultipleTopicsMatched/data new file mode 100644 index 000000000..0fbd798ec --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.MultipleTopicsMatched/data @@ -0,0 +1,43 @@ +kind: AdaptiveDialog +beginDialog: + kind: OnSelectIntent + id: main + triggerBehavior: Always + actions: + - kind: SetVariable + id: setVariable_M6434i + variable: init:Topic.IntentOptions + value: =System.Recognizer.IntentOptions + + - kind: SetTextVariable + id: setTextVariable_0 + variable: Topic.NoneOfTheseDisplayName + value: None of these + + - kind: EditTable + id: sendMessage_g5Ls09 + changeType: Add + itemsVariable: Topic.IntentOptions + value: "={ DisplayName: Topic.NoneOfTheseDisplayName, TopicId: \"NoTopic\", TriggerId: \"NoTrigger\", Score: 1.0 }" + + - kind: Question + id: question_zf2HhP + interruptionPolicy: + allowInterruption: false + + alwaysPrompt: true + variable: System.Recognizer.SelectedIntent + prompt: "To clarify, did you mean:" + entity: + kind: DynamicClosedListEntity + items: =Topic.IntentOptions + + - kind: ConditionGroup + id: conditionGroup_60PuXb + conditions: + - id: conditionItem_rs7GgM + condition: =System.Recognizer.SelectedIntent.TopicId = "NoTopic" + actions: + - kind: ReplaceDialog + id: YZXRDb + dialog: cr7f7_blogHelperAgent.topic.Fallback \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.OnError/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.OnError/botcomponent.xml new file mode 100644 index 000000000..93fe0fba7 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.OnError/botcomponent.xml @@ -0,0 +1,11 @@ + + 9 + This system topic triggers when the agent encounters an error. When using the test chat pane, the full error description is displayed. + 0 + On Error + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.OnError/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.OnError/data new file mode 100644 index 000000000..29bec5995 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.OnError/data @@ -0,0 +1,45 @@ +kind: AdaptiveDialog +startBehavior: UseLatestPublishedContentAndCancelOtherTopics +beginDialog: + kind: OnError + id: main + actions: + - kind: SetVariable + id: setVariable_timestamp + variable: init:Topic.CurrentTime + value: =Text(Now(), DateTimeFormat.UTC) + + - kind: ConditionGroup + id: condition_1 + conditions: + - id: bL4wmY + condition: =System.Conversation.InTestMode = true + actions: + - kind: SendActivity + id: sendMessage_XJBYMo + activity: |- + Error Message: {System.Error.Message} + Error Code: {System.Error.Code} + Conversation Id: {System.Conversation.Id} + Time (UTC): {Topic.CurrentTime} + + elseActions: + - kind: SendActivity + id: sendMessage_dZ0gaF + activity: + text: + - |- + An error has occurred. + Error code: {System.Error.Code} + Conversation Id: {System.Conversation.Id} + Time (UTC): {Topic.CurrentTime}. + speak: + - An error has occurred, please try again. + + - kind: LogCustomTelemetryEvent + id: 9KwEAn + eventName: OnErrorLog + properties: "={ErrorMessage: System.Error.Message, ErrorCode: System.Error.Code, TimeUTC: Topic.CurrentTime, ConversationId: System.Conversation.Id}" + + - kind: CancelAllDialogs + id: NW7NyY \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ResetConversation/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ResetConversation/botcomponent.xml new file mode 100644 index 000000000..d21b91093 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ResetConversation/botcomponent.xml @@ -0,0 +1,10 @@ + + 9 + 0 + Reset Conversation + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ResetConversation/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ResetConversation/data new file mode 100644 index 000000000..3d427e1db --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ResetConversation/data @@ -0,0 +1,16 @@ +kind: AdaptiveDialog +startBehavior: UseLatestPublishedContentAndCancelOtherTopics +beginDialog: + kind: OnSystemRedirect + id: main + actions: + - kind: SendActivity + id: sendMessage_OPsT1O + activity: What can I help you with? + + - kind: ClearAllVariables + id: clearAllVariables_73bTFR + variables: ConversationScopedVariables + + - kind: CancelAllDialogs + id: cancelAllDialogs_12Gt21 \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Search/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Search/botcomponent.xml new file mode 100644 index 000000000..d590c7d29 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Search/botcomponent.xml @@ -0,0 +1,11 @@ + + 9 + Create generative answers from knowledge sources. + 0 + Conversational boosting + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Search/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Search/data new file mode 100644 index 000000000..9081f12fe --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Search/data @@ -0,0 +1,20 @@ +kind: AdaptiveDialog +beginDialog: + kind: OnUnknownIntent + id: main + priority: -1 + actions: + - kind: SearchAndSummarizeContent + id: search-content + variable: Topic.Answer + userInput: =System.Activity.Text + + - kind: ConditionGroup + id: has-answer-conditions + conditions: + - id: has-answer + condition: =!IsBlank(Topic.Answer) + actions: + - kind: EndDialog + id: end-topic + clearTopicQueue: true \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Signin/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Signin/botcomponent.xml new file mode 100644 index 000000000..ebdec740e --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Signin/botcomponent.xml @@ -0,0 +1,11 @@ + + 9 + This system topic triggers when the agent needs to sign in the user or require the user to sign in + 0 + Sign in + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Signin/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Signin/data new file mode 100644 index 000000000..c4067bc3a --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.Signin/data @@ -0,0 +1,19 @@ +kind: AdaptiveDialog +beginDialog: + kind: OnSignIn + id: main + actions: + - kind: ConditionGroup + id: conditionGroup_ypjGKL + conditions: + - id: conditionItem_7XYIIR + condition: =System.SignInReason = SignInReason.SignInRequired + actions: + - kind: SendActivity + id: sendMessage_1jHUNO + activity: Hello! To be able to help you, I'll need you to sign in. + + - kind: OAuthInput + id: gOjhZA + title: Login + text: To continue, please login \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.StartOver/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.StartOver/botcomponent.xml new file mode 100644 index 000000000..0c144544d --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.StartOver/botcomponent.xml @@ -0,0 +1,10 @@ + + 9 + 0 + Start Over + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.StartOver/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.StartOver/data new file mode 100644 index 000000000..badd72d7f --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.StartOver/data @@ -0,0 +1,35 @@ +kind: AdaptiveDialog +beginDialog: + kind: OnRecognizedIntent + id: main + intent: + displayName: Start Over + includeInOnSelectIntent: false + triggerQueries: + - let's begin again + - start over + - start again + - restart + + actions: + - kind: Question + id: question_zguoVV + alwaysPrompt: false + variable: init:Topic.Confirm + prompt: Are you sure you want to restart the conversation? + entity: BooleanPrebuiltEntity + + - kind: ConditionGroup + id: conditionGroup_lvx2zV + conditions: + - id: conditionItem_sVQtHa + condition: =Topic.Confirm = true + actions: + - kind: BeginDialog + id: 0YKYsy + dialog: cr7f7_blogHelperAgent.topic.ResetConversation + + elseActions: + - kind: SendActivity + id: sendMessage_lk2CyQ + activity: Ok. Let's carry on. \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ThankYou/botcomponent.xml b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ThankYou/botcomponent.xml new file mode 100644 index 000000000..ad2ef47b3 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ThankYou/botcomponent.xml @@ -0,0 +1,11 @@ + + 9 + This topic triggers when the user says thank you. + 0 + Thank you + + cr7f7_blogHelperAgent + + 0 + 1 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ThankYou/data b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ThankYou/data new file mode 100644 index 000000000..9b816ed3d --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/botcomponents/cr7f7_blogHelperAgent.topic.ThankYou/data @@ -0,0 +1,17 @@ +kind: AdaptiveDialog +beginDialog: + kind: OnRecognizedIntent + id: main + intent: + displayName: Thank you + includeInOnSelectIntent: false + triggerQueries: + - thanks + - thank you + - thanks so much + - ty + + actions: + - kind: SendActivity + id: sendMessage_9iz6v7 + activity: You're welcome. \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/bots/cr7f7_blogHelperAgent/bot.xml b/samples/mcs-BlogPostHelper/src/bots/cr7f7_blogHelperAgent/bot.xml new file mode 100644 index 000000000..8c54ac650 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/bots/cr7f7_blogHelperAgent/bot.xml @@ -0,0 +1,12 @@ + + 2 + 1 + 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 + 0 + 1033 + Blog helper agent (CS) + 0 + {"lastFinishedPublishOperation":{"$kind":"PublishResultDetails","operationStart":"2026-02-15T12:15:15.4125417Z","operationEnd":"2026-02-15T12:15:24.2164594Z","status":"Succeeded"},"contentVersion":2,"$kind":"BotSynchronizationDetails","lastPublishedDetails":{"$kind":"SuccessfulPublishResultDetails","authenticationMode":"Integrated"},"lastPublishedOnUtc":"2026-02-15T12:15:20.2832058","currentSynchronizationState":{"$kind":"SynchronizationState","botRegistration":{"$kind":"BotRegistrationDetails","botRegistrationIdConsumptionTime":"2026-02-15T12:15:01Z","applicationId":"d78436b3-f9c3-4b24-8296-01c086a88dfc","isAppAvailableInTenant":true},"provisioningStatus":"Provisioned","state":"Synchronizing"},"lastSynchronizedOnUtc":"2026-02-15T12:15:13.3045903Z"} + + 4 + \ No newline at end of file diff --git a/samples/mcs-BlogPostHelper/src/bots/cr7f7_blogHelperAgent/configuration.json b/samples/mcs-BlogPostHelper/src/bots/cr7f7_blogHelperAgent/configuration.json new file mode 100644 index 000000000..615798ad0 --- /dev/null +++ b/samples/mcs-BlogPostHelper/src/bots/cr7f7_blogHelperAgent/configuration.json @@ -0,0 +1,33 @@ +{ + "$kind": "BotConfiguration", + "channels": [ + { + "$kind": "ChannelDefinition", + "channelId": "MsTeams" + } + ], + "settings": { + "GenerativeActionsEnabled": true + }, + "isAgentConnectable": true, + "gPTSettings": { + "$kind": "GPTSettings", + "defaultSchemaName": "cr7f7_blogHelperAgent.gpt.default" + }, + "isLightweightBot": false, + "aISettings": { + "$kind": "AISettings", + "useModelKnowledge": true, + "isFileAnalysisEnabled": true, + "isSemanticSearchEnabled": true, + "contentModeration": "High", + "optInUseLatestModels": false + }, + "recognizer": { + "$kind": "GenerativeAIRecognizer" + }, + "analyticsSettings": { + "$kind": "AnalyticsSettings", + "includeNodeLevelDetailsInTranscript": true + } +} \ No newline at end of file From 814b04ab2554dee1a7e043be837715df44e952e6 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 16:42:36 +0000 Subject: [PATCH 10/20] Updated sample template --- .../{template-sample.json => sample.json} | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) rename samples/mcs-BlogPostHelper/assets/{template-sample.json => sample.json} (70%) diff --git a/samples/mcs-BlogPostHelper/assets/template-sample.json b/samples/mcs-BlogPostHelper/assets/sample.json similarity index 70% rename from samples/mcs-BlogPostHelper/assets/template-sample.json rename to samples/mcs-BlogPostHelper/assets/sample.json index a7c3d481d..9533cbc22 100644 --- a/samples/mcs-BlogPostHelper/assets/template-sample.json +++ b/samples/mcs-BlogPostHelper/assets/sample.json @@ -1,13 +1,13 @@ [ { - "name": "pnp-copilot-pro-dev-YOUR_AGENT_FOLDER", + "name": "pnp-copilot-pro-dev-mcs-BlogPostHelper", "source": "pnp", - "title": "YOUR-SAMPLE-TITLE", - "shortDescription": "YOUR-SHORT-DESCRIPTION", - "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR_AGENT_FOLDER", - "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/YOUR_AGENT_FOLDER", + "title": "Blog Post Helper", + "shortDescription": "A Copilot Studio agent that assists in creating and managing blog posts.", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/mcs-BlogPostHelper", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/mcs-BlogPostHelper", "longDescription": [ - "YOUR-SHORT-DESCRIPTION" + "A Copilot Studio agent that assists in creating and managing blog posts." ], "creationDateTime": "2026-02-14", "updateDateTime": "2026-02-14", @@ -37,21 +37,15 @@ { "type": "image", "order": 100, - "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/YOUR_AGENT_FOLDER/assets/YOUR-IMAGE-NAME-HERE", - "alt": "Copilot Studio agent doing x" - }, - { - "type": "video", - "order": 101, - "url": "https://www.youtube.com/embed/FS-_0KENJkI", - "alt": "Copilot Studio agent doing x" + "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/mcs-BlogPostHelper/assets/pending-image.png", + "alt": "Copilot Studio agent placeholder image for the moment" } ], "authors": [ { - "gitHubAccount": "YOUR-GITHUB-ACCOUNT", - "pictureUrl": "https://github.com/YOUR-GITHUB-ACCOUNT.png", - "name": "YOUR-NAME" + "gitHubAccount": "pkbullock", + "pictureUrl": "https://github.com/pkbullock.png", + "name": "Paul Bullock" } ], "references": [ From 7ba19074503557b885193eb1f7138a6da2fbba26 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 16:49:08 +0000 Subject: [PATCH 11/20] Added permission to the flow --- .github/workflows/no-zip-in-samples.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/no-zip-in-samples.yml b/.github/workflows/no-zip-in-samples.yml index 84fc61394..264e5d839 100644 --- a/.github/workflows/no-zip-in-samples.yml +++ b/.github/workflows/no-zip-in-samples.yml @@ -8,6 +8,7 @@ on: permissions: contents: read pull-requests: write + issues: write jobs: check-zip-files: From acbd88189d476ee645df39a51e36f5d64e320104 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 15 Feb 2026 17:02:21 +0000 Subject: [PATCH 12/20] Disable workflow --- .github/workflows/no-zip-in-samples.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/no-zip-in-samples.yml b/.github/workflows/no-zip-in-samples.yml index 264e5d839..0de595dd4 100644 --- a/.github/workflows/no-zip-in-samples.yml +++ b/.github/workflows/no-zip-in-samples.yml @@ -5,6 +5,9 @@ on: paths: - "samples/**" +env: + WORKFLOW_DISABLED: true + permissions: contents: read pull-requests: write From 7a6b171c84d2bacdb78ab7fd7f41ad79bb24247f Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 22 Feb 2026 10:53:07 +0000 Subject: [PATCH 13/20] Updated contributor guidance for new method --- CONTRIBUTING.md | 62 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 413e8c4cf..87f62b3d0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -165,33 +165,81 @@ Your sample should include a clearly marked folder containing a Teams/M365 `mani ### 7. Microsoft Copilot Studio Samples -Since Microsoft Copilot Studio (MCS) Samples are a package/zip file, for security reasons we will only accept the contents of these packages rather than the package files. +There are two types of Copilot Studio Agents within this repository: + +1. Copilot Studio using Solution Export +2. Copilot Studio using Cloned with Visual Studio Code. + +#### Sample Setup applies to both methods The intended folder structure for a MCS samples would look like this: -- mcs-MyCoolSample +- mcs-MyNewAgent - assets - src - README.md +Quick way to scaffold the sample: + + ```powershell + # Navigste to samples folder + cd samples + cp -R ../templates/mcs-copilot-studio mcs-MyNewAgent + cd mcs-MyNewAgent +``` + +#### Copilot Studio using Solution Export + +Submitting a Microsoft Copilot Studio (MCS) Samples using the Clone Method + +> Note: Package/zip files, for security reasons we will only accept the contents of these packages rather than the package files. + To get the source quickly, please use the following commands using the [Power Platform CLI](https://learn.microsoft.com/en-us/power-platform/developer/cli/introduction): - Ensure you are authenticated with [```pac auth```](https://learn.microsoft.com/en-us/power-platform/developer/cli/reference/auth) - - Add your agent to a solution package + - Add your agent to a solution package e.g. MyAgent - Export Solution Contents ```powershell # Navigste to samples folder - - mkdir mcs-MyNewAgent + cd samples + cp -R ../templates/mcs-copilot-studio mcs-MyNewAgent cd mcs-MyNewAgent - pac solution clone --name --outputDirectory . --packagetype Unmanaged + pac solution clone --name --outputDirectory . --packagetype Unmanaged ``` -Use the template ```template/mcs/README.md``` and complete a template of ```sample.json``` and place this in your assets folder. + +Ensure that all the solution files are located in the root of the scaffolded sample location e.g. /samples/mcs-MyNewAgent +See example agent: [mcs-BlogPostHelper](/samples/mcs-BlogPostHelper) + +Thats it, proceed to Finalising the sample + +#### Copilot Studio using Copilot Studio for Visual Studio Code clone method + +This method assumes you have the Copilot Studio Extension for Visual Studio Code installed; found in the market place [Copilot Studio | Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-CopilotStudio.vscode-copilotstudio) + +Steps + +- Ensure you have followed the Sample setup instructions +- Clone the agent in the folder (e.g. mcs-MyNewAgent) using the extension, this will create a new folder with the Yaml files in, rename the folder to `src` + +Thats it, proceed to Finalising the sample + +#### Finalising the sample + +**Updating the Readme.md file** + +- Rename the file from ```README-template.md``` to ```README.md``` +- Read and complete the commented out sections within README file. + +**Updating the assets/sample.json file** + +- Rename the file from ```template-sample.json``` to ```sample.json``` +- Complete the sections within the sample.json file. Tip: there are tokens such as ```YOUR_AGENT_FOLDER``` that will help you complete this quicker. + ### 8. Telemetry From 8f33d506cd58409180ec3e3f6d8d72a24333e1e6 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 22 Feb 2026 10:53:28 +0000 Subject: [PATCH 14/20] Small improvement to sample summary --- samples/mcs-BlogPostHelper/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/samples/mcs-BlogPostHelper/README.md b/samples/mcs-BlogPostHelper/README.md index f2fafeb05..241e934eb 100644 --- a/samples/mcs-BlogPostHelper/README.md +++ b/samples/mcs-BlogPostHelper/README.md @@ -6,7 +6,14 @@ This template is for Copilot Studio samples only. Please update mcs-BlogPostHelp ## Summary -This agent is built with Copilot Studio, as an equivelant variation of ```da-BlogPostHelper``` sample and and advising example of how to import a studio agent +This sample helps users that often create blog post to help with elements of the creation process to get posts created quicker using capabilities within Declarative Agents. + +Common features that the agent can help with: + + - Suggest an introduction based on a topic + - Review existing articles, or Find content that I would reference quickly. + +> Note: This agent is built with Copilot Studio, as an equivelant variation of ```da-BlogPostHelper``` sample and and advising example of how to import a Copilot Studio agent ## Contributors From a16f1047f302ba7b7d6abdf6654e5e93110f8c91 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 22 Feb 2026 10:54:04 +0000 Subject: [PATCH 15/20] Updated README template for Copilot Studio to reduce submission burden --- .../mcs-copilot-studio/README-template.md | 40 +++++++++++++++---- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/templates/mcs-copilot-studio/README-template.md b/templates/mcs-copilot-studio/README-template.md index 821dcd125..25ff72cf3 100644 --- a/templates/mcs-copilot-studio/README-template.md +++ b/templates/mcs-copilot-studio/README-template.md @@ -53,7 +53,27 @@ Version|Date|Comments ## Minimal path to awesome -**Import Solution into Copilot Studio** + + +### Copilot Studio using Solution Import This sample uses the Power Platform CLI to import samples, for documenation and installation instructions please visit: [What is Microsoft Power Platform CLI? | Microsoft Learn](https://learn.microsoft.com/en-us/power-platform/developer/cli/introduction) @@ -74,16 +94,22 @@ pac solution import --path .zip -env ``` - ## Features From 37faea2760b9452acabf86d0195bace9cd5a9b21 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Sun, 22 Feb 2026 10:54:47 +0000 Subject: [PATCH 16/20] Sample Agent using VSC method --- samples/mcs-PositivityAgent/README.md | 66 +++++++++++++++ .../assets/pending-image.png | Bin 0 -> 84311 bytes .../mcs-PositivityAgent/assets/sample.json | 70 ++++++++++++++++ samples/mcs-PositivityAgent/src/agent.mcs.yml | 32 +++++++ samples/mcs-PositivityAgent/src/icon.png | Bin 0 -> 14577 bytes .../mcs-PositivityAgent/src/settings.mcs.yml | 25 ++++++ .../src/topics/ConversationStart.mcs.yml | 14 ++++ .../src/topics/EndofConversation.mcs.yml | 78 ++++++++++++++++++ .../src/topics/Escalate.mcs.yml | 64 ++++++++++++++ .../src/topics/Fallback.mcs.yml | 21 +++++ .../src/topics/Goodbye.mcs.yml | 41 +++++++++ .../src/topics/Greeting.mcs.yml | 27 ++++++ .../src/topics/MultipleTopicsMatched.mcs.yml | 45 ++++++++++ .../src/topics/OnError.mcs.yml | 47 +++++++++++ .../src/topics/ResetConversation.mcs.yml | 17 ++++ .../src/topics/Search.mcs.yml | 22 +++++ .../src/topics/Signin.mcs.yml | 21 +++++ .../src/topics/StartOver.mcs.yml | 36 ++++++++ .../src/topics/ThankYou.mcs.yml | 19 +++++ 19 files changed, 645 insertions(+) create mode 100644 samples/mcs-PositivityAgent/README.md create mode 100644 samples/mcs-PositivityAgent/assets/pending-image.png create mode 100644 samples/mcs-PositivityAgent/assets/sample.json create mode 100644 samples/mcs-PositivityAgent/src/agent.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/icon.png create mode 100644 samples/mcs-PositivityAgent/src/settings.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/ConversationStart.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/EndofConversation.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/Escalate.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/Fallback.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/Goodbye.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/Greeting.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/MultipleTopicsMatched.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/OnError.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/ResetConversation.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/Search.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/Signin.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/StartOver.mcs.yml create mode 100644 samples/mcs-PositivityAgent/src/topics/ThankYou.mcs.yml diff --git a/samples/mcs-PositivityAgent/README.md b/samples/mcs-PositivityAgent/README.md new file mode 100644 index 000000000..a61783a98 --- /dev/null +++ b/samples/mcs-PositivityAgent/README.md @@ -0,0 +1,66 @@ + +# Copilot Studio: Positivity Sample + +## Summary + +This agent, named Positivity Agent for Microsoft Copilot. +Its purpose is to provide users with positivity, motivation, and confidence-building support. The agent is designed to offer encouraging and uplifting responses to help users maintain a positive mindset and build their self-esteem. + +> Note: This agent is built with Copilot Studio, as an equivelant variation of ```da-PositivityAgent``` sample and and advising example of how to import a Copilot Studio agent with Copilot Studio Visual Studio Code Extension. + +## Contributors + +* [Paul Bullock](https://github.com/pkbullock.png) + +## Version history + +Version|Date|Comments +-------|----|-------- +1.0|Feburary 01, 2026|Initial release + +## Prerequisites + +* Microsoft 365 tenant with Microsoft 365 Copilot +* Access to Copilot Studio +* Visual Studio Code Extension - https://marketplace.visualstudio.com/items?itemName=ms-CopilotStudio.vscode-copilotstudio + +## Minimal path to awesome + +### Copilot Studio using Copilot Studio for Visual Studio Code extension + +This method assumes you have the Copilot Studio Extension for Visual Studio Code installed; found in the market place [Copilot Studio | Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-CopilotStudio.vscode-copilotstudio) - this will use the reattach agent feature. + +- Ensure you are signed into the tenant and have access to the environment you are apply this solution to. +- In the sample folder, **important** - ensure you open Visual Studio Code with the ```src``` folder as the root folder +- The Copilot Studio extension may show "clone agent" button, use the F1 tool + - Run ```Copilot Studio: Reattach Agent``` + - Select the target environment + - You should see a message "New Agent reattached" toast notification. + - Check in Copilot Studio portal, for the sample + +That's it. + +## Features + +Extended description of the contents of the sample. What elements does it include? What concepts does illustrate? + +Using this sample you can extend Microsoft 365 Copilot with an agent that: + +* Build up the user in a positivity way +* Help with motiviation + +## Help + +We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues. + +You can try looking at [issues related to this sample](https://github.com/pnp/copilot-pro-dev-samples/issues?q=label%3A%22sample%3A%20mcs-PositivityAgent%22) to see if anybody else is having the same issues. + +If you encounter any issues using this sample, [create a new issue](https://github.com/pnp/copilot-pro-dev-samples/issues/new). + +Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/copilot-pro-dev-samples/issues/new). + +## Disclaimer + +**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** + +![](https://m365-visitor-stats.azurewebsites.net/copilot-pro-dev-samples/mcs-PositivityAgent) diff --git a/samples/mcs-PositivityAgent/assets/pending-image.png b/samples/mcs-PositivityAgent/assets/pending-image.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf8e844592b32a6bbc4f5a2b2a1c4cd053e62b3 GIT binary patch literal 84311 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ξKJO6#&wIu%T$uK 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 LlWOUz=WqN6I_=&o literal 0 HcmV?d00001 diff --git a/samples/mcs-PositivityAgent/assets/sample.json b/samples/mcs-PositivityAgent/assets/sample.json new file mode 100644 index 000000000..2732d392c --- /dev/null +++ b/samples/mcs-PositivityAgent/assets/sample.json @@ -0,0 +1,70 @@ +[ + { + "name": "pnp-copilot-pro-dev-mcs-PositivityAgent", + "source": "pnp", + "title": "YOUR-SAMPLE-TITLE", + "shortDescription": "YOUR-SHORT-DESCRIPTION", + "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/mcs-PositivityAgent", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/mcs-PositivityAgent", + "longDescription": [ + "YOUR-SHORT-DESCRIPTION" + ], + "creationDateTime": "2026-02-14", + "updateDateTime": "2026-02-14", + "products": [ + "Microsoft 365 Copilot", + "Microsoft Copilot Studio" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": "Copilot Studio" + }, + { + "key": "LANGUAGE", + "value": "None" + }, + { + "key": "API-PLUGIN", + "value": "No" + }, + { + "key": "GRAPH-CONNECTOR", + "value": "No" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 100, + "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/mcs-PositivityAgent/assets/YOUR-IMAGE-NAME-HERE", + "alt": "Copilot Studio agent doing x" + }, + { + "type": "video", + "order": 101, + "url": "https://www.youtube.com/embed/FS-_0KENJkI", + "alt": "Copilot Studio agent doing x" + } + ], + "authors": [ + { + "gitHubAccount": "YOUR-GITHUB-ACCOUNT", + "pictureUrl": "https://github.com/YOUR-GITHUB-ACCOUNT.png", + "name": "YOUR-NAME" + } + ], + "references": [ + { + "name": "Microsoft 365 Copilot extensibility", + "description": "Learn more about what Microsoft 365 Copilot and how you can extend it.", + "url": "https://learn.microsoft.com/microsoft-365-copilot/extensibility/" + }, + { + "name": "Microsoft Copilot Studio", + "description": "Discover how to build AI-driven agents and workflows easily with Microsoft Copilot Studio with online training courses, docs, and videos. Learn how to quickly and simply integrate chat into your website.", + "url": "https://learn.microsoft.com/en-us/microsoft-copilot-studio/" + } + ] + } +] \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/agent.mcs.yml b/samples/mcs-PositivityAgent/src/agent.mcs.yml new file mode 100644 index 000000000..e47647755 --- /dev/null +++ b/samples/mcs-PositivityAgent/src/agent.mcs.yml @@ -0,0 +1,32 @@ +# Name: Positivity Agent (MCS) +# An agent designed to provide positivity, motivation, and confidence-building support to users. It offers encouraging and uplifting responses to help users maintain a positive mindset and build their self-esteem. +kind: GptComponentMetadata +instructions: |- + You are an agent to generate positive statements, to help a user find a quote they can use in their day to build a positive mindset. + + - Provide positive and motivational responses to user queries. + - Encourage users to build their confidence through supportive and uplifting messages. + - Avoid negative or discouraging language. + - Offer practical advice and tips for maintaining a positive mindset. + - Respond in a friendly, warm, gentle and empathetic tone. + + Ensure all interactions are aimed at boosting the user's self-esteem and motivation. +gptCapabilities: {} +conversationStarters: + - title: Motivational Quote + text: Can you share a motivational quote with me? + + - title: Confidence Boost + text: I need a confidence boost. Can you help? + + - title: Positive Mindset + text: How can I maintain a positive mindset? + + - title: Overcoming Challenges + text: I'm facing a challenge. Can you give me some advice? + + - title: Daily Motivation + text: Can you give me some daily motivation? + + - title: Encouragement + text: I need some encouragement. What can you say to lift my spirits? \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/icon.png b/samples/mcs-PositivityAgent/src/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b3c9944bfa80286a3a70ed7be537bbfc7247eb20 GIT binary patch literal 14577 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 literal 0 HcmV?d00001 diff --git a/samples/mcs-PositivityAgent/src/settings.mcs.yml b/samples/mcs-PositivityAgent/src/settings.mcs.yml new file mode 100644 index 000000000..00725fa96 --- /dev/null +++ b/samples/mcs-PositivityAgent/src/settings.mcs.yml @@ -0,0 +1,25 @@ +displayName: Positivity Agent (MCS) +schemaName: ca_agent +accessControlPolicy: GroupMembership +authenticationMode: Integrated +authenticationTrigger: Always +configuration: + settings: + GenerativeActionsEnabled: true + + isAgentConnectable: true + gPTSettings: + defaultSchemaName: ca_agent.gpt.default + + aISettings: + useModelKnowledge: true + isFileAnalysisEnabled: true + isSemanticSearchEnabled: true + optInUseLatestModels: false + + recognizer: + kind: GenerativeAIRecognizer + +publishedOn: 2026-02-03T21:34:59.0000000Z +template: default-2.1.0 +language: 1033 \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/ConversationStart.mcs.yml b/samples/mcs-PositivityAgent/src/topics/ConversationStart.mcs.yml new file mode 100644 index 000000000..f9b2b3a9a --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/ConversationStart.mcs.yml @@ -0,0 +1,14 @@ +# Name: Conversation Start +# This system topic triggers when the agent receives an Activity indicating the beginning of a new conversation. If you do not want the agent to initiate the conversation, disable this topic. +kind: AdaptiveDialog +beginDialog: + kind: OnConversationStart + id: main + actions: + - kind: SendActivity + id: sendMessage_M0LuhV + activity: + text: + - Hello, I'm {System.Bot.Name}. How can I help? + speak: + - Hello and thank you for calling {System.Bot.Name}. Please note that some responses are generated by AI and may require verification for accuracy. How may I help you today? \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/EndofConversation.mcs.yml b/samples/mcs-PositivityAgent/src/topics/EndofConversation.mcs.yml new file mode 100644 index 000000000..681a42138 --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/EndofConversation.mcs.yml @@ -0,0 +1,78 @@ +# Name: End of Conversation +# This system topic is only triggered by a redirect action, +# and guides the user through rating their conversation with the agent. +kind: AdaptiveDialog +startBehavior: CancelOtherTopics +beginDialog: + kind: OnSystemRedirect + id: main + actions: + - kind: Question + id: 41d42054-d4cb-4e90-b922-2b16b37fe379 + conversationOutcome: ResolvedImplied + alwaysPrompt: true + variable: init:Topic.SurveyResponse + prompt: Did that answer your question? + entity: BooleanPrebuiltEntity + + - kind: ConditionGroup + id: condition-0 + conditions: + - id: condition-0-item-0 + condition: =Topic.SurveyResponse = true + actions: + - kind: CSATQuestion + id: csat_1 + conversationOutcome: ResolvedConfirmed + + - kind: SendActivity + id: sendMessage_8r29O0 + activity: Thanks for your feedback. + + - kind: Question + id: question_1 + alwaysPrompt: true + variable: init:Topic.Continue + prompt: Can I help with anything else? + entity: BooleanPrebuiltEntity + + - kind: ConditionGroup + id: condition-1 + conditions: + - id: condition-1-item-0 + condition: =Topic.Continue = true + actions: + - kind: SendActivity + id: sendMessage_4eOE6h + activity: Go ahead. I'm listening. + + elseActions: + - kind: SendActivity + id: yHBz55 + activity: Ok, goodbye. + + - kind: EndConversation + id: jh1GMT + + elseActions: + - kind: Question + id: PM68ot + alwaysPrompt: true + variable: init:Topic.TryAgain + prompt: Sorry I wasn't able to help better. Would you like to try again? + entity: BooleanPrebuiltEntity + + - kind: ConditionGroup + id: KNxYBf + conditions: + - id: DPveFP + condition: =Topic.TryAgain = false + actions: + - kind: BeginDialog + id: cngqi4 + dialog: ca_agent.topic.Escalate + + elseActions: + - kind: SendActivity + id: GrVHEW + activity: Go ahead. I'm listening. \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Escalate.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Escalate.mcs.yml new file mode 100644 index 000000000..41645399d --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/Escalate.mcs.yml @@ -0,0 +1,64 @@ +# Name: Escalate +# This system topic is triggered when the user indicates they would like to speak to a representative. +# You can configure how the agent will handle human hand-off scenarios in the agent settings.. +# If your agent does not handle escalations, this topic should be disabled. +kind: AdaptiveDialog +startBehavior: CancelOtherTopics +beginDialog: + kind: OnEscalate + id: main + intent: + displayName: Escalate + includeInOnSelectIntent: false + triggerQueries: + - Talk to agent + - Talk to a person + - Talk to someone + - Call back + - Call customer service + - Call me please + - Call support + - Call technical support + - Can an agent call me + - Can I call + - Can I get in touch with someone else + - Can I get real agent support + - Can I get transferred to a person to call + - Can I have a call in number Or can I be called + - Can I have a representative call me + - Can I schedule a call + - Can I speak to a representative + - Can I talk to a human + - Can I talk to a human assistant + - Can someone call me + - Chat with a human + - Chat with a representative + - Chat with agent + - Chat with someone please + - Connect me to a live agent + - Connect me to a person + - Could some one contact me by phone + - Customer agent + - Customer representative + - Customer service + - I need a manager to contact me + - I need customer service + - I need help from a person + - I need to speak with a live argent + - I need to talk to a specialist please + - I want to talk to customer service + - I want to proceed with live support + - I want to speak with a consultant + - I want to speak with a live tech + - I would like to speak with an associate + - I would like to talk to a technician + - Talk with tech support member + + actions: + - kind: SendActivity + id: sendMessage_s39DCt + conversationOutcome: Escalated + activity: |- + Escalating to a representative is not currently configured for this agent, however this is where the agent could provide information about how to get in touch with someone another way. + + Is there anything else I can help you with? \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Fallback.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Fallback.mcs.yml new file mode 100644 index 000000000..ff9956e9d --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/Fallback.mcs.yml @@ -0,0 +1,21 @@ +# Name: Fallback +# This system topic triggers when the user's utterance does not match any existing topics. +kind: AdaptiveDialog +beginDialog: + kind: OnUnknownIntent + id: main + actions: + - kind: ConditionGroup + id: conditionGroup_LktzXw + conditions: + - id: conditionItem_tlGIVo + condition: =System.FallbackCount < 3 + actions: + - kind: SendActivity + id: sendMessage_QZreqo + activity: I'm sorry, I'm not sure how to help with that. Can you try rephrasing? + + elseActions: + - kind: BeginDialog + id: 5aXj5M + dialog: ca_agent.topic.Escalate \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Goodbye.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Goodbye.mcs.yml new file mode 100644 index 000000000..3103b28b9 --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/Goodbye.mcs.yml @@ -0,0 +1,41 @@ +# Name: Goodbye +# This topic triggers when the user says goodbye. By default, it does not end the conversation. If you would like to end the conversation when the user says goodbye, you can add an "End of Conversation" action to this topic, or redirect to the "End of Conversation" system topic. +kind: AdaptiveDialog +startBehavior: CancelOtherTopics +beginDialog: + kind: OnRecognizedIntent + id: main + intent: + displayName: Goodbye + includeInOnSelectIntent: false + triggerQueries: + - Bye + - Bye for now + - Bye now + - Good bye + - No thank you. Goodbye. + - See you later + + actions: + - kind: Question + id: question_zf2HhP + variable: Topic.EndConversation + prompt: Would you like to end our conversation? + entity: BooleanPrebuiltEntity + + - kind: ConditionGroup + id: condition_DGc1Wy + conditions: + - id: condition_DGc1Wy-item-0 + condition: =Topic.EndConversation = true + actions: + - kind: BeginDialog + id: dn94DC + dialog: ca_agent.topic.EndofConversation + + - id: condition_DGc1Wy-item-1 + condition: =Topic.EndConversation = false + actions: + - kind: SendActivity + id: sendMessage_LdLhmf + activity: Go ahead. I'm listening. \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Greeting.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Greeting.mcs.yml new file mode 100644 index 000000000..f8715eaae --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/Greeting.mcs.yml @@ -0,0 +1,27 @@ +# Name: Greeting +# This topic is triggered when the user greets the agent. +kind: AdaptiveDialog +beginDialog: + kind: OnRecognizedIntent + id: main + intent: + displayName: Greeting + includeInOnSelectIntent: false + triggerQueries: + - Good afternoon + - Good morning + - Hello + - Hey + - Hi + + actions: + - kind: SendActivity + id: sendMessage_abmysR + activity: + text: + - Hello, how can I help you today? + speak: + - Hello, how can I help? + + - kind: CancelAllDialogs + id: cancelAllDialogs_01At22 \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/MultipleTopicsMatched.mcs.yml b/samples/mcs-PositivityAgent/src/topics/MultipleTopicsMatched.mcs.yml new file mode 100644 index 000000000..542f749ee --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/MultipleTopicsMatched.mcs.yml @@ -0,0 +1,45 @@ +# Name: Multiple Topics Matched +# This system topic triggers when the agent matches multiple Topics with the incoming message and needs to clarify which one should be triggered. +kind: AdaptiveDialog +beginDialog: + kind: OnSelectIntent + id: main + triggerBehavior: Always + actions: + - kind: SetVariable + id: setVariable_M6434i + variable: init:Topic.IntentOptions + value: =System.Recognizer.IntentOptions + + - kind: SetTextVariable + id: setTextVariable_0 + variable: Topic.NoneOfTheseDisplayName + value: None of these + + - kind: EditTable + id: sendMessage_g5Ls09 + changeType: Add + itemsVariable: Topic.IntentOptions + value: "={ DisplayName: Topic.NoneOfTheseDisplayName, TopicId: \"NoTopic\", TriggerId: \"NoTrigger\", Score: 1.0 }" + + - kind: Question + id: question_zf2HhP + interruptionPolicy: + allowInterruption: false + + alwaysPrompt: true + variable: System.Recognizer.SelectedIntent + prompt: "To clarify, did you mean:" + entity: + kind: DynamicClosedListEntity + items: =Topic.IntentOptions + + - kind: ConditionGroup + id: conditionGroup_60PuXb + conditions: + - id: conditionItem_rs7GgM + condition: =System.Recognizer.SelectedIntent.TopicId = "NoTopic" + actions: + - kind: ReplaceDialog + id: YZXRDb + dialog: ca_agent.topic.Fallback \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/OnError.mcs.yml b/samples/mcs-PositivityAgent/src/topics/OnError.mcs.yml new file mode 100644 index 000000000..562c75b69 --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/OnError.mcs.yml @@ -0,0 +1,47 @@ +# Name: On Error +# This system topic triggers when the agent encounters an error. When using the test chat pane, the full error description is displayed. +kind: AdaptiveDialog +startBehavior: UseLatestPublishedContentAndCancelOtherTopics +beginDialog: + kind: OnError + id: main + actions: + - kind: SetVariable + id: setVariable_timestamp + variable: init:Topic.CurrentTime + value: =Text(Now(), DateTimeFormat.UTC) + + - kind: ConditionGroup + id: condition_1 + conditions: + - id: bL4wmY + condition: =System.Conversation.InTestMode = true + actions: + - kind: SendActivity + id: sendMessage_XJBYMo + activity: |- + Error Message: {System.Error.Message} + Error Code: {System.Error.Code} + Conversation Id: {System.Conversation.Id} + Time (UTC): {Topic.CurrentTime} + + elseActions: + - kind: SendActivity + id: sendMessage_dZ0gaF + activity: + text: + - |- + An error has occurred. + Error code: {System.Error.Code} + Conversation Id: {System.Conversation.Id} + Time (UTC): {Topic.CurrentTime}. + speak: + - An error has occurred, please try again. + + - kind: LogCustomTelemetryEvent + id: 9KwEAn + eventName: OnErrorLog + properties: "={ErrorMessage: System.Error.Message, ErrorCode: System.Error.Code, TimeUTC: Topic.CurrentTime, ConversationId: System.Conversation.Id}" + + - kind: CancelAllDialogs + id: NW7NyY \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/ResetConversation.mcs.yml b/samples/mcs-PositivityAgent/src/topics/ResetConversation.mcs.yml new file mode 100644 index 000000000..cc0deefe1 --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/ResetConversation.mcs.yml @@ -0,0 +1,17 @@ +# Name: Reset Conversation +kind: AdaptiveDialog +startBehavior: UseLatestPublishedContentAndCancelOtherTopics +beginDialog: + kind: OnSystemRedirect + id: main + actions: + - kind: SendActivity + id: sendMessage_OPsT1O + activity: What can I help you with? + + - kind: ClearAllVariables + id: clearAllVariables_73bTFR + variables: ConversationScopedVariables + + - kind: CancelAllDialogs + id: cancelAllDialogs_12Gt21 \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Search.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Search.mcs.yml new file mode 100644 index 000000000..f70fab3e4 --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/Search.mcs.yml @@ -0,0 +1,22 @@ +# Name: Conversational boosting +# Create generative answers from knowledge sources. +kind: AdaptiveDialog +beginDialog: + kind: OnUnknownIntent + id: main + priority: -1 + actions: + - kind: SearchAndSummarizeContent + id: search-content + variable: Topic.Answer + userInput: =System.Activity.Text + + - kind: ConditionGroup + id: has-answer-conditions + conditions: + - id: has-answer + condition: =!IsBlank(Topic.Answer) + actions: + - kind: EndDialog + id: end-topic + clearTopicQueue: true \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Signin.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Signin.mcs.yml new file mode 100644 index 000000000..573c09466 --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/Signin.mcs.yml @@ -0,0 +1,21 @@ +# Name: Sign in +# This system topic triggers when the agent needs to sign in the user or require the user to sign in +kind: AdaptiveDialog +beginDialog: + kind: OnSignIn + id: main + actions: + - kind: ConditionGroup + id: conditionGroup_ypjGKL + conditions: + - id: conditionItem_7XYIIR + condition: =System.SignInReason = SignInReason.SignInRequired + actions: + - kind: SendActivity + id: sendMessage_1jHUNO + activity: Hello! To be able to help you, I'll need you to sign in. + + - kind: OAuthInput + id: gOjhZA + title: Login + text: To continue, please login \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/StartOver.mcs.yml b/samples/mcs-PositivityAgent/src/topics/StartOver.mcs.yml new file mode 100644 index 000000000..8cc1dd4cc --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/StartOver.mcs.yml @@ -0,0 +1,36 @@ +# Name: Start Over +kind: AdaptiveDialog +beginDialog: + kind: OnRecognizedIntent + id: main + intent: + displayName: Start Over + includeInOnSelectIntent: false + triggerQueries: + - let's begin again + - start over + - start again + - restart + + actions: + - kind: Question + id: question_zguoVV + alwaysPrompt: false + variable: init:Topic.Confirm + prompt: Are you sure you want to restart the conversation? + entity: BooleanPrebuiltEntity + + - kind: ConditionGroup + id: conditionGroup_lvx2zV + conditions: + - id: conditionItem_sVQtHa + condition: =Topic.Confirm = true + actions: + - kind: BeginDialog + id: 0YKYsy + dialog: ca_agent.topic.ResetConversation + + elseActions: + - kind: SendActivity + id: sendMessage_lk2CyQ + activity: Ok. Let's carry on. \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/ThankYou.mcs.yml b/samples/mcs-PositivityAgent/src/topics/ThankYou.mcs.yml new file mode 100644 index 000000000..bed9939b4 --- /dev/null +++ b/samples/mcs-PositivityAgent/src/topics/ThankYou.mcs.yml @@ -0,0 +1,19 @@ +# Name: Thank you +# This topic triggers when the user says thank you. +kind: AdaptiveDialog +beginDialog: + kind: OnRecognizedIntent + id: main + intent: + displayName: Thank you + includeInOnSelectIntent: false + triggerQueries: + - thanks + - thank you + - thanks so much + - ty + + actions: + - kind: SendActivity + id: sendMessage_9iz6v7 + activity: You're welcome. \ No newline at end of file From 79dfe810cfa0772e398e2666a117f13473320ac4 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Fri, 13 Mar 2026 11:17:01 +0000 Subject: [PATCH 17/20] Removed Guidance --- templates/mcs-copilot-studio/README-template.md | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/templates/mcs-copilot-studio/README-template.md b/templates/mcs-copilot-studio/README-template.md index 25ff72cf3..fdb406824 100644 --- a/templates/mcs-copilot-studio/README-template.md +++ b/templates/mcs-copilot-studio/README-template.md @@ -96,21 +96,6 @@ pac solution import --path .zip -env That's it. -### Copilot Studio using Copilot Studio for Visual Studio Code extension - -This method assumes you have the Copilot Studio Extension for Visual Studio Code installed; found in the market place [Copilot Studio | Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-CopilotStudio.vscode-copilotstudio) - this will use the reattach agent feature. - -- Ensure you are signed into the tenant and have access to the environment you are apply this solution to. -- In the sample folder, important - ensure you open Visual Studio Code with the ```src``` folder as the root folder -- The Copilot Studio extension may show "clone agent" button, use the F1 tool - - Run ```Copilot Studio: Reattach Agent``` - - Select the target environment - - You should see a message "New Agent reattached" toast notification. - - Check in Copilot Studio portal, for the sample - -That's it. - - ## Features Extended description of the contents of the sample. What elements does it include? What concepts does illustrate? From cf9cad6594112ff9418cd7cfc437c05d02622312 Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Fri, 13 Mar 2026 11:17:16 +0000 Subject: [PATCH 18/20] Removed sample --- .../mcs-BlogPostHelper/mcs-BlogPostHelper.zip | Bin 30357 -> 0 bytes samples/mcs-PositivityAgent/README.md | 66 --------------- .../assets/pending-image.png | Bin 84311 -> 0 bytes .../mcs-PositivityAgent/assets/sample.json | 70 ---------------- samples/mcs-PositivityAgent/src/agent.mcs.yml | 32 ------- samples/mcs-PositivityAgent/src/icon.png | Bin 14577 -> 0 bytes .../mcs-PositivityAgent/src/settings.mcs.yml | 25 ------ .../src/topics/ConversationStart.mcs.yml | 14 ---- .../src/topics/EndofConversation.mcs.yml | 78 ------------------ .../src/topics/Escalate.mcs.yml | 64 -------------- .../src/topics/Fallback.mcs.yml | 21 ----- .../src/topics/Goodbye.mcs.yml | 41 --------- .../src/topics/Greeting.mcs.yml | 27 ------ .../src/topics/MultipleTopicsMatched.mcs.yml | 45 ---------- .../src/topics/OnError.mcs.yml | 47 ----------- .../src/topics/ResetConversation.mcs.yml | 17 ---- .../src/topics/Search.mcs.yml | 22 ----- .../src/topics/Signin.mcs.yml | 21 ----- .../src/topics/StartOver.mcs.yml | 36 -------- .../src/topics/ThankYou.mcs.yml | 19 ----- 20 files changed, 645 deletions(-) delete mode 100644 samples/mcs-BlogPostHelper/mcs-BlogPostHelper.zip delete mode 100644 samples/mcs-PositivityAgent/README.md delete mode 100644 samples/mcs-PositivityAgent/assets/pending-image.png delete mode 100644 samples/mcs-PositivityAgent/assets/sample.json delete mode 100644 samples/mcs-PositivityAgent/src/agent.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/icon.png delete mode 100644 samples/mcs-PositivityAgent/src/settings.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/ConversationStart.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/EndofConversation.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/Escalate.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/Fallback.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/Goodbye.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/Greeting.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/MultipleTopicsMatched.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/OnError.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/ResetConversation.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/Search.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/Signin.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/StartOver.mcs.yml delete mode 100644 samples/mcs-PositivityAgent/src/topics/ThankYou.mcs.yml diff --git a/samples/mcs-BlogPostHelper/mcs-BlogPostHelper.zip b/samples/mcs-BlogPostHelper/mcs-BlogPostHelper.zip deleted file mode 100644 index efa45be92b9fe76a014f2ec71f9fa92f8594403e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30357 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 F`yYF+*dzb| diff --git a/samples/mcs-PositivityAgent/README.md b/samples/mcs-PositivityAgent/README.md deleted file mode 100644 index a61783a98..000000000 --- a/samples/mcs-PositivityAgent/README.md +++ /dev/null @@ -1,66 +0,0 @@ - -# Copilot Studio: Positivity Sample - -## Summary - -This agent, named Positivity Agent for Microsoft Copilot. -Its purpose is to provide users with positivity, motivation, and confidence-building support. The agent is designed to offer encouraging and uplifting responses to help users maintain a positive mindset and build their self-esteem. - -> Note: This agent is built with Copilot Studio, as an equivelant variation of ```da-PositivityAgent``` sample and and advising example of how to import a Copilot Studio agent with Copilot Studio Visual Studio Code Extension. - -## Contributors - -* [Paul Bullock](https://github.com/pkbullock.png) - -## Version history - -Version|Date|Comments --------|----|-------- -1.0|Feburary 01, 2026|Initial release - -## Prerequisites - -* Microsoft 365 tenant with Microsoft 365 Copilot -* Access to Copilot Studio -* Visual Studio Code Extension - https://marketplace.visualstudio.com/items?itemName=ms-CopilotStudio.vscode-copilotstudio - -## Minimal path to awesome - -### Copilot Studio using Copilot Studio for Visual Studio Code extension - -This method assumes you have the Copilot Studio Extension for Visual Studio Code installed; found in the market place [Copilot Studio | Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-CopilotStudio.vscode-copilotstudio) - this will use the reattach agent feature. - -- Ensure you are signed into the tenant and have access to the environment you are apply this solution to. -- In the sample folder, **important** - ensure you open Visual Studio Code with the ```src``` folder as the root folder -- The Copilot Studio extension may show "clone agent" button, use the F1 tool - - Run ```Copilot Studio: Reattach Agent``` - - Select the target environment - - You should see a message "New Agent reattached" toast notification. - - Check in Copilot Studio portal, for the sample - -That's it. - -## Features - -Extended description of the contents of the sample. What elements does it include? What concepts does illustrate? - -Using this sample you can extend Microsoft 365 Copilot with an agent that: - -* Build up the user in a positivity way -* Help with motiviation - -## Help - -We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues. - -You can try looking at [issues related to this sample](https://github.com/pnp/copilot-pro-dev-samples/issues?q=label%3A%22sample%3A%20mcs-PositivityAgent%22) to see if anybody else is having the same issues. - -If you encounter any issues using this sample, [create a new issue](https://github.com/pnp/copilot-pro-dev-samples/issues/new). - -Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/copilot-pro-dev-samples/issues/new). - -## Disclaimer - -**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** - -![](https://m365-visitor-stats.azurewebsites.net/copilot-pro-dev-samples/mcs-PositivityAgent) diff --git a/samples/mcs-PositivityAgent/assets/pending-image.png b/samples/mcs-PositivityAgent/assets/pending-image.png deleted file mode 100644 index aaf8e844592b32a6bbc4f5a2b2a1c4cd053e62b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84311 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ξKJO6#&wIu%T$uK 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 LlWOUz=WqN6I_=&o diff --git a/samples/mcs-PositivityAgent/assets/sample.json b/samples/mcs-PositivityAgent/assets/sample.json deleted file mode 100644 index 2732d392c..000000000 --- a/samples/mcs-PositivityAgent/assets/sample.json +++ /dev/null @@ -1,70 +0,0 @@ -[ - { - "name": "pnp-copilot-pro-dev-mcs-PositivityAgent", - "source": "pnp", - "title": "YOUR-SAMPLE-TITLE", - "shortDescription": "YOUR-SHORT-DESCRIPTION", - "url": "https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/mcs-PositivityAgent", - "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/copilot-pro-dev-samples/tree/main/samples/mcs-PositivityAgent", - "longDescription": [ - "YOUR-SHORT-DESCRIPTION" - ], - "creationDateTime": "2026-02-14", - "updateDateTime": "2026-02-14", - "products": [ - "Microsoft 365 Copilot", - "Microsoft Copilot Studio" - ], - "metadata": [ - { - "key": "PLATFORM", - "value": "Copilot Studio" - }, - { - "key": "LANGUAGE", - "value": "None" - }, - { - "key": "API-PLUGIN", - "value": "No" - }, - { - "key": "GRAPH-CONNECTOR", - "value": "No" - } - ], - "thumbnails": [ - { - "type": "image", - "order": 100, - "url": "https://github.com/pnp/copilot-pro-dev-samples/raw/main/samples/mcs-PositivityAgent/assets/YOUR-IMAGE-NAME-HERE", - "alt": "Copilot Studio agent doing x" - }, - { - "type": "video", - "order": 101, - "url": "https://www.youtube.com/embed/FS-_0KENJkI", - "alt": "Copilot Studio agent doing x" - } - ], - "authors": [ - { - "gitHubAccount": "YOUR-GITHUB-ACCOUNT", - "pictureUrl": "https://github.com/YOUR-GITHUB-ACCOUNT.png", - "name": "YOUR-NAME" - } - ], - "references": [ - { - "name": "Microsoft 365 Copilot extensibility", - "description": "Learn more about what Microsoft 365 Copilot and how you can extend it.", - "url": "https://learn.microsoft.com/microsoft-365-copilot/extensibility/" - }, - { - "name": "Microsoft Copilot Studio", - "description": "Discover how to build AI-driven agents and workflows easily with Microsoft Copilot Studio with online training courses, docs, and videos. Learn how to quickly and simply integrate chat into your website.", - "url": "https://learn.microsoft.com/en-us/microsoft-copilot-studio/" - } - ] - } -] \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/agent.mcs.yml b/samples/mcs-PositivityAgent/src/agent.mcs.yml deleted file mode 100644 index e47647755..000000000 --- a/samples/mcs-PositivityAgent/src/agent.mcs.yml +++ /dev/null @@ -1,32 +0,0 @@ -# Name: Positivity Agent (MCS) -# An agent designed to provide positivity, motivation, and confidence-building support to users. It offers encouraging and uplifting responses to help users maintain a positive mindset and build their self-esteem. -kind: GptComponentMetadata -instructions: |- - You are an agent to generate positive statements, to help a user find a quote they can use in their day to build a positive mindset. - - - Provide positive and motivational responses to user queries. - - Encourage users to build their confidence through supportive and uplifting messages. - - Avoid negative or discouraging language. - - Offer practical advice and tips for maintaining a positive mindset. - - Respond in a friendly, warm, gentle and empathetic tone. - - Ensure all interactions are aimed at boosting the user's self-esteem and motivation. -gptCapabilities: {} -conversationStarters: - - title: Motivational Quote - text: Can you share a motivational quote with me? - - - title: Confidence Boost - text: I need a confidence boost. Can you help? - - - title: Positive Mindset - text: How can I maintain a positive mindset? - - - title: Overcoming Challenges - text: I'm facing a challenge. Can you give me some advice? - - - title: Daily Motivation - text: Can you give me some daily motivation? - - - title: Encouragement - text: I need some encouragement. What can you say to lift my spirits? \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/icon.png b/samples/mcs-PositivityAgent/src/icon.png deleted file mode 100644 index b3c9944bfa80286a3a70ed7be537bbfc7247eb20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14577 zcmbVT<98*_&%d{}ZQHhO+uqv7t+%$_Zf&<)cWZm=c59nkJ^TIr3D1ipXXeGsIWtKn z$tM$~q9lz7hX)4$01#zmB-H-N!v6>c>K~7pwPyS$V4Y=j-2ec1^#2G5$j-(2Hwko8 zlNJNi%@Caa8$ei#DvAOCjS2AYrjP&tPlT+5sD?N2GQcj@a4l^`@9pPinpZf5+UKJK zBKQOX%M5ZzNah1488{+>CL>Us;)iRAY$iaiixd_Xb`>)M)(piVQko2G^%Iz6lDLQ~ z7BdB-tsF)MB=>>}UtyuC`~1y9sHV71IQk?Q)AQ_mb*|K8SU1YaSKZ}*E%=-p@U-@} zvE!TX29(0JOjZ5=vd$fdKVRTJAHwg<&Hj|SQ{TIj~S-6l2Uo*xAPSUyp)_ zL(nO`6T*Lkgxb2P#_A7Q_S#-h9F?D|FU7uLd)b6gJLL*?g8L=5HfQ{<``THKgYEyt zfk5rrR}SkOms6f`=Tmp+HG5p=@6yEPb2QQ^?YS$I@rDJm!>+4CX!Z&rc& zSo1mG{&aI3upc4e-;DqDb8+>zJP(B03xMtCeoy)OnI!!smLJXuu9j6G@ZS=|ITB^{ zaCkZvObt<75$H@Q*O&Yi_7jRKkS^Q!&_MpLysxX-ucSq1Y&D$gF6O=?1)&!XoRvU1I&nEW0+|5j8Yx%GFcpw8}r_7UDp^*J1P5( zCiTPM(w}4Ij?TVYZr9gAt@#yB0~gbl3%UeC-xRLs0ll{cpMS#GAsXpczp&!Jgldvc-hl?a^qn=7AgOzV52$I1`Ttl!WZOyjEK`A@Tj<%CFXGjFNHS zSMN$wl(`i4Q(%8#qW@wm)m(;) zW=E~r;f4JDe1H-A6W!RzQqnr*)!Ffo*-!}h9K4AQ_(5t2;+r|)7}`zBay74mi~cL= zgDem_Jk7FA0Y&PE<*MVRrosXzl%z4)yngJ-ZtN)f9KQK8F(;cWB^`}zyYf3tullTP z?7&HIs>2w497LD^nw>K~Q-1)7JaRwxXLEJJ@t?dEx`3xMjz~VGoORm%>P;z|eCc3vye>`D22t_o-7~!K zc~Fmyri+J?NBSBGhNkS_vhwl9%!tu-&|>#yW%Vtch7 z8Fpx$w3L9FYvRbojNc|vmX$!B8U*X;39x%z@Bj@uGZ5ktW1#|Ri;=B6waRLoz|3e4 z>)8;%j71sRJmvM}VoCs<@NPZf>kLYy1L<3^wu(gB`0MYv=WYM{%>wU}qgUbAqf{#7 zLnT9vYEh=;TuKB|N@MTGt@R0d%ollj7CW>+}5Lw20A*aG*WaeQ@t z+^6j@ZNVRaN0w=FDhK`b`hjCn)aLuG=78<%v(dmuvH0^`vRi+6%VRgT$E4=wlRf3F zcj$!NfL71=pp%T*qm%+%85=j2YTzNCh`(8>x+BK`aqmZ`bh|06~a3 zTm{n-eJ90XOWQ0&V1N>{S7wWYa5&P_$4LsF>Y4`j!Vot79XHN8EL$OwQbl11fQjyl zrh0)F?w0hG%SABr!zd*rwbPzr6L_SvPCym_2ic84Mv|%<3!}A|M3&Jb13HxnOONZ(nmgjDd1URF2(D8nk6)t3htZBRfF{ zk!@L=&&?*HfMm|0Iu5fG^MmsPZ?*iB@f2se{`?Ycuk9vQG+sWf!pz}fnQhc{ZfOga=O?E}E&P%P`J@B`uaO-t~ow*U=6E)_eD*N|OPK(8fh zD$w-^Vwa@ZC%M}=8C`bur+?>G&c_(^)YYa9-72?>6)mk9))u%FE@#=U^%TwmWW9c zi;3I>kY(#nVNK10W*@@+c-e1a+aiGJ1Nx7ko!-~yPaAC+YE(xw$b9&40RUEGbiTTC zw|lr|51YQv*P(g?gzEu-;o0*bxQc#Z-#H(D80VP0iA@pdmVLJ&3+SS^1dnve4>z|z zOKLR2RqO*B2d*)1*e^4C5!l^))3QxMNrZ+Cr}HAY=jB^4TJO=Sof~QPr3;6YH#7XP zz=e5nq>*KwHU`iaGnC&=BoG8Ak{>?LOU~eLyh~gq48I6nbvmOcTyxT+n*H+juMhM@ z2-cFN7eNi}Iq>h0Q7b&HP5r5Hc(z8r`0hHm?*@f(Yp@J8eN9~%^P#o-5@BSnRc%s4 z;Y^a9Q>NeqkM)jc(5{fsH;5Wpl1dJ_yN;bdX{#MFBkBW!ikk+GMFruSHSKW&CVZ6!Oi&Qe18vhIwP4U6ju@SPr(F9cs4L*Tc-k+U43O(jH zZyAtYr7nqAA!Blc8-#vCZt*zr&CKXO{VzfYCr>T0?APDnFCmIhz>-HmDT&ajc=SXa zH)9z1gMyF3=ub}6%tonKoc|0}hnPqal}M^Orzh(~x7|5k8F-KTJG3eTObbeG@VnpU zw&2@|qjJvh8|O;P3#nWjQg#rq;wSFGHfpL&3g$^RXNo0bq)R*pgPR3ls%s%snt?gop}T8nNS0nM_Pf`e9}DzFvsUpzruBcPu`E?z>P*bi*$U{H}g2DA~tu< zF$16<|1(;F&p*ud$Kt>Bprj#Nx0S<5kF2>!PkOY79Kb9^0%P!{eYm&gS$8Q6SJtE| z!9{WcLQuFGGxJ#h8<9ly?E6LwE;i}8h#fo_TIFZ`4sPW&-?nhURPTJgI1IvwvXI%Y zir<4(dC7SzM{2$ty;^yHAaXk!)=IIa6-`QNvr!>});;w5HB@+@J;4&h;vqnGUw7O} znB?B3&3xcCMmDJKG?4Bgk~$@DSR1w8e#uNO{iGf2V%ZbPP2lid->0E{y|SwWd_VtE zD+$39CgX2IFs6vP-svOsTRi&hUq1=X14O~suO8^(hM{Vxq9l-H)IDri!4W~W5+JWR zOT+b`U1lK<3Z(HO@I*pnK6F4S$pDp12oiUlc#H&hG`bLN&iO9>tMOrRAa(;8`e-EYnV5kHzf(POC4;BJ`KR^ha@?% z{d_6P_qnC~VHiWoES$vBk{MC+>+3;GKy=7 zdh%jQ^f1-4Q>;=g^LxUaI(Iwkw>i!y%WRQw{jJOfd4nhmBKh^L_EH)eVY@T3D8xdl z%)pwY?T{2wMSSccPE7cRIR;OU)XAaC?sx7WSA0H-(iS8**o2l7TG};4*_%hBM|p7= zA^Itf_iw<Z0HqnUe`5$fa+iUNWyep4M3UcVJv26Dk4zFCOn|V_SZ+R z7^(9y+3^R^;oCVC!nYl$?iQFM6d5}&tn{grE=0m6&!-7JArtY8NS^g60oWQPvEGiQ z#iMhfyF+v<`i(S~p;N1_MV;yDI?nHsh3zfHYQ_3%hx-K7*t;l)bAXrhphtXs z9~-4pYa&e8G#eVJMdQD#u+ref%>W`IBOeWDE>$C5h6){xyZHp7gCZ!e6WcyMN^$L% zLn{}IC7Ftc42s0KI~aU++zGdYHox`mxKXaPBC(sL96h`yo8%m{X)}qwbiKrWNmzeN z`?zFWrYG&3?Ap&X?Fm!-mVR^ktGu66f5lvBGJ)S@l zu8oeAJu@_OF`X+Xr@F)np0NtHndk z1K4nkaLkBf9G7YvxqJdVDVR(EE*(gAZ9RdJ`vNf%D^~~u(0d5K!vjfDDq9mm1|ITb zv7-aP052LhL%D&>a>O${gYPaW-^FD}o8?uVB=VSHX`CSxAO+JPVDEKjm%3*58Il!9PAw_8ZzGrK-g6t{A{`rX%#I*pR7Z!ePMdJ|y=z4uC)iC{=$1{;!J31^yjBG;Hc+Fkc#v1Y27WC5?D2cDFfJ1D6j>s@ z<60IX??IX1y7E-^J7jh2KYY*K0wnSYYn}nHQnAt@;^?Y9Ir$?9t@x1`{7dW+2h4$%lXUvW^SrIDK$7-#<$0 ztcENN5+4aPat1nbhg91`VRXWlw2`#E!BkKNh;tMegTPb4!FTmPAGzV~(}WlHg6Ra@ z;cqeECV4EPsyaNW5G`p_Rj)@XFGS+?D0vn#;rVfXOp(L_{??CBZS@-m3$@`TawP>@ z5p{t7Vye%zI38L1_rm&h;--vQXfm3rj0K;XG;g*OO`4EHQtN=$an+!faT-7O>ABc% z&rU<(Ckb!>F{m+D24T_elf{j|Dw8|%4z z%X?0(i4<<ITpTcLRlYUG-bP$k2-`7(jMzouM$cZKi&6f`(6VPZ^c$fV zN+82;!_N*E)zsZC_bX7e+YN|`+H=8dt!&*VTCvag)d45Zpv+gs-|?b~+{Y|dsg3pF z@H~Q_Ma%`k;E4gyCN2VZ@^PfPdT+u)p5_QHb@E(o_d_ z?7U-Lr`|9U`Y8|c856{L0cJ0ve@Ica@n;{BG_A~zZ;HsRz<;RUHaQm&%A!JCtxPj5 z)C`(ZyK~)2^G%jot2-t zjVX9pHq`;Vl8?@VmmnSIV-SisS5;_=FHazBZ?dIK80vju-nLVug)z_@emBH5cAX52 zrbH<5(z0CC5M4gXM;y=?G!S?VBaM31m6^Nm1 zv|LhQ>LR`CABalV_<)@|C%4}A%~(bvrzTr-SeV~EVBixI%P}i{TzjoKwdjmC_7@n+ zf0p~*$(rf6v|9eW3B^O7Al|$lzMc~YXloaVw8e6ni9ZTdIvDf(;4jQe2>O@#9Bsi_ zQbJO3*F8pD{4KF(heqTl>4X@xl4HPV@_-X^>?go|U}LtX>g-WNa^|H81FD(N%^6p zS%a?HIl!-Wz3LG-$EEs+Lv!E8`zPfv63dj>!Wi(fQXbemcZV_corL`bmqIUztS(Z# z!l)UNYYjDUAJAl&Z6VWiMbj(Z4=6209Qz zy)*G_pd43L_T7&!;TpSV7QVf5I7v1|A4d!XK=VaBzY@$oY)>h<9_P$!n$SQ-t+(tQ zjAyA^xS14=lPT!wY&Vr}j7eo$Ev$aZ_O;1Vki$bA@4pR%JR|h$r?^vj9Z#RVzCw~Q z_`23;k~(S@Xpe|sFmi&A?y?Pn^DC?Lk%~)?;Hg5|^^n*K{OTwBBzs!^)V#)a(OOlv zmp%<8HLP8`qiK&3bm+ahNW1HDTpTk;8B`ZZr>{Af<-#9!)BmO==U6-Tg2KSirk7fE z0~cGpFXf8#sc>~O_DP@~)~a3Cca#sWeGLoZJW+6;fZ94O^z=;3M1w3Bw=o*zn9l}U zvVK6UXSW@*@~bwuHXZ#iDWI(y{6VdTlH3gIEOmtDK4!r-HDwjMmbT#C$Syn0FqEeB zm~)5`29c=nSR7pnNR>KYUo8}+e*jV8krZi^vdsuew?`Uxt`>p>C|r_vd}#!-I+%lWv^ zZfagP@jFJH<6};O!SgOlxJEPsaTM5ro8ZP9O*`;bunIW%9pWPsOa~&ME?w2`?cuK- zi-_-}A=ZtE_k_-_EVLi`k95;TPtn}m!pX^|u+*s`677OEf#@xv|QkMr!-?ye~tdMt?moSfwLW!>`jr-QWCsk3w6 zfE7mvz9g37+|K%3dE&z(O51U@Z&=V8&BaE_bKq?>AE+eDc%&{A-kDPoQ0^>Aytn|z zI>1Qy%uCF!`-pp4+1kJAo+XrDsvvmcg2kfmx_dUi?KdXdG&q~7C^16SE#*8JZFW6( zTakxgGRsjL=rbl)?D%AL2vRW?=xC%$bm43GzNus6DV3_iJ-(#Rk}S*4zSGs(%X}`E zoaBqeIE0-iRn^}eq zYC!MDsoi3T{~RAbd_9f1>ZI*EFOJ6%xyjNpr}xBwC4WZnDzL7Q3_u^oE=3;wwo1}8 zGBmL<2Mkp!0d|tE2B`|l^!3?TZ&&| zF3FRt@7%UoXrh+M;)cG7{ys6;fR@?CSUnD%vOJ=~4q>+9)fBOmr9$N1tAY-g76ad2B4xdn*CUcA5>OOr97529QNy<5u5qkRrq13SDrc8KO&B z%#oX<@e^0Hhn9?QsE45%CEe@sKH`L7)oEcTwRy9cXW3xcZKsy6a=yqI8_PKvDQ;4 zJ42OtbGORugGOS&_z26#v=E9LZo)bcIL?H}Xdv6fzi%G6G=L1vQ3xLeQa8GkyPK<3 zNYdDRmgFRsIEdD8H&uPh%6pcTjkDBx?x!!!|KJg^-*9RQ+V3+%frvyx@;WBAN<1|w z&c1W-0h7&*WOOEWLkX?FX|PudW)T>>l|)*D-wgv#OBSH$tC6WPQE{mf}wZ;!D_*A*i|ivFC7h?&`gV9kRl4hWuhx+sW+DAw7~Pc*r_Be z4K;UA{b@#vg|W0pQhn@0QmhM)ZRZ2;r{CgGbYM8pAKoX4eV#p)b6!CnFg274`*eaK zzfMMP;a2-G4s>)g-^VjmvP2>|CHgMR=F;h&mAh@Wd3{dc5QmE0ScG5>>nxp=VEShW zQ|nK8P_SG-fD`V%h(8rY2OQRQ#;bwUo2t~;9{oeSE_8_>Kh|}rNvbgUjVl-5cKN*u zm96H7U>?+GQU1`Kj458Rg^JU=5k5CNl&rQO1Y_HnHe)PC*jw9Squ)1CR{?c>CL} zVmZup!A3Do`n0Lj(s>GmFWx5h1XboCdCEOOTf(2Sr5Ay=g5b^`Lxt>SN^{tAfxnpF zv)@k;PSx?g+uxDKgSR_Tfp=6@KgO-TFk&>T^7W1w)E84hrY^wH?rRB9n&3-c3u}!$ z4qFG+JQcBDtxas>Bu3OvLaMmw(h5K+p5k>VI;3P|w^|ror6k7*`xTIm=B0atsje^=3xfcCNgH-l4nJb2IpNG$hUV2~g~f zn|aBC+T-)%@H^8zNXpwZ;DLB^IHDA~RUS~hWZ*^c_KKQ4o`s=vbc0BwZ$=+ak%;>g1%l77KVphg|W z4Pn|i zn(BR@i^kKtCEw6-O_GtM2uv(!UmbYh977WHePm^E=Oemd9mX>utP>Q;5Gh?Up~-Yu zLwKL4vm)+aoX%pXy0b5ELG8w}$8Pmr1AIhGcwpzIFkKWLQZT4N&TrF5!K5DixDjig z7X2weoRCMR{04!>LX);@?C1#IJEvY!J)3eSrbANqNe{5qhQ0y85{jaf{`y67^s%Z9&mHbvRTPPslEb^^wV zPYC^6(!}f2zSi)z<<&$#P%P5%X!F>Y%1JXVPvlv_rp55B3`(jI*Qh((Ej(jN8({SG z@wc#ci=a2xK16o%oW|O+S4gr%ev}`2 z{w8um@*!dJ9-Jr4cmLP;{fyySSd-CY>>C?tz1oi=`?3JluC@OC-DIRSV$N+R7+u_$ z);5NrKMSs{VMMwxtjq6SF7<5%6M{SF$$pd2;+!iJLo(5u(|V*WT|R8&{uo2e-eS4->#*s z=CJkt?8*UeaQx~PZWNl-d9c&;D)0<2}cg}5oV&rv~Sr$qpDZi~;Xf_y6w$!Puzd1oSVeb2UT z4a2%eGsjOOWyxPaE}v16)$HpZh9+@H9?4h#MFt7L_FFdyX!2g-IgGbK()C>fA-WS} zxv1@XpESE6A|}1!%?@DaA$?Q0t=zJQD&qalnVV9a?X+?5dC`3rRj?TnkQe|oF%_+1 zSTzfm)D<`KZ`dI0&#Y0L*G-q8mq0OtKhRAXUUmd&&XpC_tC%2-T9iQ zBYqEn=%DiMJIR5=*p`pvqR(S16r{3C}XKITQc=~Mk z`wPgY7TqPMK;Bb$H5BUW*KD*%FLz+MiEzmf@UR*BKvkT1rH(VMmqs-X6EU<1(RaV5 z6W79CuB{K@0z5OyirCVac-HeR*j&G}i@EZOO-YT8nJi({`B*{%nvaF7L-&_ap`-0N zlI%rqzlzB+$&Wtxh1U{xw~)xm&g7O8Iy42rs(+B8ptq}~TGh8XdY_9km}x6Y+7%fi z3)B%skAfz&B*C7lr*!+d&4Hx3IB?yW6{sPO$XKG^?uz2`{7h;5*w4Rizc$2N0T`)VkHhQf)=z&LG5b7>!DFQWqA% zc7}#4kY^i!oAb&{k0X5!+8TNvy-%c0+!I~Du2^i1{c3SN!u4=ddp2|RYtX$(#sjn3 zHJYomJ0K8}O21*Y={n)0Ct!c|buh%Li}gih$M#)U$WMrqSNu-<#PS+vL6ej8x?Qx0 zm3oy9dzrLG&r{xbGoXf9J!!Vjl)dyU#^3{Q@IQ#B1S-*3)hYQMpl1uII!$?h@>oV; zCCFQA1IA0WSq6KA8Y#e}%&ZqCx2{|m4_}%6xC}pVwXZ(jIqN0-^M%P`2dJawo;5N9 zh1INWbZ}*QYl2pxHlI{gy(QD%U{S{P6A|2MHmsbcP`P5L^w{u>dn2e>z{hFN_!7c= za}IpY4Jl7qFmES&3PZ#fu?+G755m3h7ezQ+Va?<*#gd;>|6no>6lAi7k$0?ySz~du zB|NiX%g?{QOlr%7nF;oF&c}a^zr>Gs0S6+1Wq;bgRugh(wL5>sAWcU&zmXmJ5#-%s zhRU&`($5ki%|bL}#S7J@c@IZqJ%652I%a3souTGh3JUvP9wI+Mw#d>KumW^uv9QQ8 z@4x}<>JT+|>a9oKl#F6?&Tu-$uSiTR^|+P<4?0i1f@X)3sC9vw`e!lM|*T27W+XeVz&P?0J(Zd#l2ju?4%0+r0eA zeEHV6`}2>NaR_)aIJgO{(y^&G)Ihg3hKH0DM^`DcQKpRG_o4UXG`P7iN{WXCsb|qf z>TLrb{!>3GW7WRST3P@Hl%Ng@jwr6c^xNII(~GqBZ^Z6RDqUey(*D>vh-E`^p3D~< z(cKzfAdoPnVY2SR71z4 zR@C5OIP!@fBATjwqmfo-#DZOq^&wib4gR`pAbNS)4cQJ2@xCP?NT7j+6H%OBF1nc( zT5W|MC#EwJF1f@*kc2Yh(-p6asXm#dzt&?&bU8C!j7G&f{o z9Ke>;E?ZGO_$MV=CP{iAtQ?151~LVcRt6n!i6Z_2tsPk?#PIV5c0xikK!1iVb4nh2 zc{J+a!4#J-BQ&jw$2AY$|51i*7)Ni~^-S_lZ2bKunDq8is7joTNT+^mpGWi9`s$;3 zioi6zB6F;w0H?P2W4tdSP-caCAv+El0&7tR?qv@agaA)lwMG%_L&}wZJW5zc zK|xSzdz&D_gto#rJ8$dx@ZCM(ramRcQba8n+$=a81@5WZ_`voou^zQKRA8I-chr2k zc!Pg!W6sDIOT1uPy0QqPpM0X=~7Z0=G zATl}To=2PD<>o51-7E#PwS=mPd=2IawYZ#a>w>EH!DZT1{+%Uq5Ae<3;tSG1@%F!^ z#ewr|>?r0jR|9MmttY{RfJXzx{bEhP@`wM#nLeaDgB-|YnMc0r543NPJj_nv2>!q3 zzDJ=3H{k;nfX>0uS)r@1`xJjr z5zTc+(KkIy=vLStvMnIbW4EuSJ8RLj< z+NQoRD`LUIZ~Fn^V6-2!zaO@xS||_SF1P(%%Njf&unaVPS%WoMHc+p= zo4O$-MqDl|_cV$&xJXoniZW`XiP~=N-7yWU{c`?y&Uk0RZ(Y0|QMT?Qa>&#@-#&aiT{K;x7|Hg`?#H z+RJ6mfgWo4Wn2_HX$sl=ue|U3$zm#am-9rPp}bHVXky*02=M@Z0d1=B#Shdv!mfbs zbG&DDButQGldu2Oxr?AIvvEo3XGu}rq%i^>IXLVdp0~Gq}GanBZYN_f*@cd zlfv^j1$wn&g0Vt;37Tr{3$Hz;t*8?@!z6efV=QTSsg9$AGFFpeZb(|vAqEy;w!oA4 zIw;)wCgC;ZzH=}K)VVI61e%ox+5q~^32DX<4rSyqFwltc2U+=okGls=r-%*|uKrpzzX4N1s>^Wsr zhTbPZw=#_`CH(n8!(`;P2Wq?s5+O*E%5D8l#1@cQQL=01T$JA3{wg!R2!E#zMuU(j z_{-Y&ugVg0`sfu{%kGHC2v|r>36p1Q*0Ph-;;*9mtK$tY_;MGl14)bpkiSvk5iTQ~ z9DO~Roq>5tuoiC^MGWVVQe1#XFd`sf5Oq8Wa1)+fyq}pp+8>=b(htBwaK+WMzae$H zNOJZt;SX{zdq1EX5?h5qQT1x;xu4-qbSH{Tos&PS^@qFg3Hp~3xdZQ7p=PnOr8|H; zrGLRa*NY+gkPz1SU+bAqAJ^Up7&|^Qc3R7=-!3BwU;!}-M=7Hdc6ki4KDQ;aWM4oD zC{)SiP4HsR*o&68THz1#JY-lp;m%SePBHkQ{-N))p4B_Dv^EW&h2dU9N9s2qF#sx- zqXyb?RYosBE)Lr_ps-!1&&^tTgEYVh;cuX=Q~EX9Wl+|~)>snoCS00meLU1fiF%M| zA*Dql_gQ^T^nju?v>^uJoy&b}{jl23XUBsP17Pn+jR^)(sd4%?&5dNUZ?Aetr#_57 zHcW(YhCP6-QF9P%Ma)4GX>SDgU<2|>Gm@UBGm6&1RP|~0z)qkQLg8ftV0C&hIHW-v z-ci$n4v@c(An~aZb!$$p1^yNbnxpin+Ih8z*i9${G{6SqnYYA>SxwCB_=oCuDnco! zi;~mv8pM1x6dJ+nCgT2ypTJsEmaFKuPhP6f;1s<$3UEwma50!7t+ZU^KlSEAmS&KK z>qpC-A$LWx7etq!0{bor`!3ig3G>V8t;e)?J*!ej_qTsNw}~wr=B5hx`t?O~0$Yh* z&G1F_kKvM|C|hq>@k}XDai_7RP{_#-Sk;N`{0|h(>gTL6@mbhu2o|_nTYdV*=D%BK zy{hMcLm8mX!Bb;59BaTv3msR7?ROD+o0>h{OfiJc%e=d(L8Nij2E;rPN3Gcy5@m~d zxr?iuwfkQD83RW#P!{5o?w(Y7`-+{)QAtDpx_2=TVQy>xSPRl_cDoGI^`Nzu=G@;}#~zQu=7&)xkwcp# zeLZdy({eXox7d>s8Dc0dEs`*lDrA;0(+42Q2$`vO%XBJ}c@KCbYq0O%Gxydr7v`~c z0UN86KJ>IST5X4cv1+%Tl-3&@@h1sXsv=R^b`yhQ{JRQ7SYZY}mg52;*j+t;#S=>b zCP~2&qjQ)1&G$4I^4Zin1yRsbS^{yiS3(QAZ_ozi)`b8sFub(QR|-v`-p$ttRQtFs zXiw!tXTvz=5>^~WHVe2`5Fl7oR+Ie~=G>YJ`}YG~ve^9*hrU!b&-ec|ax(X}LzGYc zP}h*g8gDO#z%@h^nryzvzvh+J?1NGNu>S*d^Cl9j!FNAyXZ+&Syg8=FLR#Y!P~2T5 z?>7Za<}HgWg?X94H2>ZRRf{`d8{*t0iaEN#*y75_4ejlxNB2bE!~tMP_Bc-uCkw;3 zHR8lM?)}MGVo?-9ye%YLv`vkkOKD)K$zyarO^Fl?I3hibSpAZYgh%$j!5}DH48*ycpkN zU%x?aK|u-0;QUT`k5+%oo@K&+!_=h%V2u;4n^Q>rY>KY2DG!4YBf31*FZiroL$-ZB z9Is`s3amv7Ut%)(^qiZI>N_h$&zli|4Xh&s^ zZt3D%z{a6d?pUN^p5pRVOhGLH@l>aZjPF=DEWx9WY*tYw_*s7oUAK!+s$eV1vi(rg z?18fr+fRL6xqrSjYoSxXhk4CnyijcnT3htt^$&g@tAbobDf+Q^|89QVmA2QP z)vMDTf0{IABb+}^wk^K^*%&%ENYOWo*!_GmjdbN&jTDo%iR-aoEDlRT^0evcm-l-= zYP-BS#*@Ytz#1A%^1DZKIVCj1VTY(LNTMf#9yB~}WizU@2M9qvwN1|x6Ah3($xXJ< zlr&G4FSzs#D#PF?W5c$$zUTf=?bNFSb1{zu9}*+)UaPjI&$~V~;oCAB9P*)WbI77l{G32h>buraf$&`jR6Bagk$6PQ?K013p51p3zx2H2A`ke)4*nK zL=@XmpoAaB1&; HmeBy8L=2S;hJm6{(aM2%5*L+cxR-!a-Ibci$Y*uz9?>ow4D zJT!375df?+ONuOt@mz+cKIuMa4;5a}ZZ>WU+EU60d`sGS#Brb4U>4@?;T&*kdd~VH zgj)Vs_jH!-5g`>g8)$Ye))CD}xD3tSe^QC_`ANEG(-$umxCzMkoGo~}y*lT$)%As9 zXiB*pfCea2;V^ajP$p!l=1eRr2T(%H#!2l9zlKKMl`C%{zC>?k|6q45-c3@UQi0I= zrISjh1UBRgZ&EJn7gjZE*zQ*_fY(k2CydMt^>^w6qL=I$5?spXE$z#PZgwo|-BS<7 z1fAajt31XW@KnIxymM)Oibpe_1Tg`fj2`l3p>D~1@AR%4 zsuZqZJ77)5F=9^lySc-z*4iM|kl?1#>0>H^(V_eLZ9D+FpUkOGjg9DD7s)k`wozD3 zvy@3%1j)z| z0JTsaFpg?v^dcZ@qY`c7*3FTJzi{@tHDh~Ynev7PQf0%j_MuyWCPPB71_6>*$Sy6s zZghwKWWBNo=tmQpB&aR;bj~*~=_H!uhGE3Aj@z1a<@9ATj<)4nnRoN{OTH-yr2_(b v%f>zN90iy48`&plN@Cgm-|UU{3t31+n=iFjIq=^PMS!fNl0==DNyz^J=hvZ7 diff --git a/samples/mcs-PositivityAgent/src/settings.mcs.yml b/samples/mcs-PositivityAgent/src/settings.mcs.yml deleted file mode 100644 index 00725fa96..000000000 --- a/samples/mcs-PositivityAgent/src/settings.mcs.yml +++ /dev/null @@ -1,25 +0,0 @@ -displayName: Positivity Agent (MCS) -schemaName: ca_agent -accessControlPolicy: GroupMembership -authenticationMode: Integrated -authenticationTrigger: Always -configuration: - settings: - GenerativeActionsEnabled: true - - isAgentConnectable: true - gPTSettings: - defaultSchemaName: ca_agent.gpt.default - - aISettings: - useModelKnowledge: true - isFileAnalysisEnabled: true - isSemanticSearchEnabled: true - optInUseLatestModels: false - - recognizer: - kind: GenerativeAIRecognizer - -publishedOn: 2026-02-03T21:34:59.0000000Z -template: default-2.1.0 -language: 1033 \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/ConversationStart.mcs.yml b/samples/mcs-PositivityAgent/src/topics/ConversationStart.mcs.yml deleted file mode 100644 index f9b2b3a9a..000000000 --- a/samples/mcs-PositivityAgent/src/topics/ConversationStart.mcs.yml +++ /dev/null @@ -1,14 +0,0 @@ -# Name: Conversation Start -# This system topic triggers when the agent receives an Activity indicating the beginning of a new conversation. If you do not want the agent to initiate the conversation, disable this topic. -kind: AdaptiveDialog -beginDialog: - kind: OnConversationStart - id: main - actions: - - kind: SendActivity - id: sendMessage_M0LuhV - activity: - text: - - Hello, I'm {System.Bot.Name}. How can I help? - speak: - - Hello and thank you for calling {System.Bot.Name}. Please note that some responses are generated by AI and may require verification for accuracy. How may I help you today? \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/EndofConversation.mcs.yml b/samples/mcs-PositivityAgent/src/topics/EndofConversation.mcs.yml deleted file mode 100644 index 681a42138..000000000 --- a/samples/mcs-PositivityAgent/src/topics/EndofConversation.mcs.yml +++ /dev/null @@ -1,78 +0,0 @@ -# Name: End of Conversation -# This system topic is only triggered by a redirect action, -# and guides the user through rating their conversation with the agent. -kind: AdaptiveDialog -startBehavior: CancelOtherTopics -beginDialog: - kind: OnSystemRedirect - id: main - actions: - - kind: Question - id: 41d42054-d4cb-4e90-b922-2b16b37fe379 - conversationOutcome: ResolvedImplied - alwaysPrompt: true - variable: init:Topic.SurveyResponse - prompt: Did that answer your question? - entity: BooleanPrebuiltEntity - - - kind: ConditionGroup - id: condition-0 - conditions: - - id: condition-0-item-0 - condition: =Topic.SurveyResponse = true - actions: - - kind: CSATQuestion - id: csat_1 - conversationOutcome: ResolvedConfirmed - - - kind: SendActivity - id: sendMessage_8r29O0 - activity: Thanks for your feedback. - - - kind: Question - id: question_1 - alwaysPrompt: true - variable: init:Topic.Continue - prompt: Can I help with anything else? - entity: BooleanPrebuiltEntity - - - kind: ConditionGroup - id: condition-1 - conditions: - - id: condition-1-item-0 - condition: =Topic.Continue = true - actions: - - kind: SendActivity - id: sendMessage_4eOE6h - activity: Go ahead. I'm listening. - - elseActions: - - kind: SendActivity - id: yHBz55 - activity: Ok, goodbye. - - - kind: EndConversation - id: jh1GMT - - elseActions: - - kind: Question - id: PM68ot - alwaysPrompt: true - variable: init:Topic.TryAgain - prompt: Sorry I wasn't able to help better. Would you like to try again? - entity: BooleanPrebuiltEntity - - - kind: ConditionGroup - id: KNxYBf - conditions: - - id: DPveFP - condition: =Topic.TryAgain = false - actions: - - kind: BeginDialog - id: cngqi4 - dialog: ca_agent.topic.Escalate - - elseActions: - - kind: SendActivity - id: GrVHEW - activity: Go ahead. I'm listening. \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Escalate.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Escalate.mcs.yml deleted file mode 100644 index 41645399d..000000000 --- a/samples/mcs-PositivityAgent/src/topics/Escalate.mcs.yml +++ /dev/null @@ -1,64 +0,0 @@ -# Name: Escalate -# This system topic is triggered when the user indicates they would like to speak to a representative. -# You can configure how the agent will handle human hand-off scenarios in the agent settings.. -# If your agent does not handle escalations, this topic should be disabled. -kind: AdaptiveDialog -startBehavior: CancelOtherTopics -beginDialog: - kind: OnEscalate - id: main - intent: - displayName: Escalate - includeInOnSelectIntent: false - triggerQueries: - - Talk to agent - - Talk to a person - - Talk to someone - - Call back - - Call customer service - - Call me please - - Call support - - Call technical support - - Can an agent call me - - Can I call - - Can I get in touch with someone else - - Can I get real agent support - - Can I get transferred to a person to call - - Can I have a call in number Or can I be called - - Can I have a representative call me - - Can I schedule a call - - Can I speak to a representative - - Can I talk to a human - - Can I talk to a human assistant - - Can someone call me - - Chat with a human - - Chat with a representative - - Chat with agent - - Chat with someone please - - Connect me to a live agent - - Connect me to a person - - Could some one contact me by phone - - Customer agent - - Customer representative - - Customer service - - I need a manager to contact me - - I need customer service - - I need help from a person - - I need to speak with a live argent - - I need to talk to a specialist please - - I want to talk to customer service - - I want to proceed with live support - - I want to speak with a consultant - - I want to speak with a live tech - - I would like to speak with an associate - - I would like to talk to a technician - - Talk with tech support member - - actions: - - kind: SendActivity - id: sendMessage_s39DCt - conversationOutcome: Escalated - activity: |- - Escalating to a representative is not currently configured for this agent, however this is where the agent could provide information about how to get in touch with someone another way. - - Is there anything else I can help you with? \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Fallback.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Fallback.mcs.yml deleted file mode 100644 index ff9956e9d..000000000 --- a/samples/mcs-PositivityAgent/src/topics/Fallback.mcs.yml +++ /dev/null @@ -1,21 +0,0 @@ -# Name: Fallback -# This system topic triggers when the user's utterance does not match any existing topics. -kind: AdaptiveDialog -beginDialog: - kind: OnUnknownIntent - id: main - actions: - - kind: ConditionGroup - id: conditionGroup_LktzXw - conditions: - - id: conditionItem_tlGIVo - condition: =System.FallbackCount < 3 - actions: - - kind: SendActivity - id: sendMessage_QZreqo - activity: I'm sorry, I'm not sure how to help with that. Can you try rephrasing? - - elseActions: - - kind: BeginDialog - id: 5aXj5M - dialog: ca_agent.topic.Escalate \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Goodbye.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Goodbye.mcs.yml deleted file mode 100644 index 3103b28b9..000000000 --- a/samples/mcs-PositivityAgent/src/topics/Goodbye.mcs.yml +++ /dev/null @@ -1,41 +0,0 @@ -# Name: Goodbye -# This topic triggers when the user says goodbye. By default, it does not end the conversation. If you would like to end the conversation when the user says goodbye, you can add an "End of Conversation" action to this topic, or redirect to the "End of Conversation" system topic. -kind: AdaptiveDialog -startBehavior: CancelOtherTopics -beginDialog: - kind: OnRecognizedIntent - id: main - intent: - displayName: Goodbye - includeInOnSelectIntent: false - triggerQueries: - - Bye - - Bye for now - - Bye now - - Good bye - - No thank you. Goodbye. - - See you later - - actions: - - kind: Question - id: question_zf2HhP - variable: Topic.EndConversation - prompt: Would you like to end our conversation? - entity: BooleanPrebuiltEntity - - - kind: ConditionGroup - id: condition_DGc1Wy - conditions: - - id: condition_DGc1Wy-item-0 - condition: =Topic.EndConversation = true - actions: - - kind: BeginDialog - id: dn94DC - dialog: ca_agent.topic.EndofConversation - - - id: condition_DGc1Wy-item-1 - condition: =Topic.EndConversation = false - actions: - - kind: SendActivity - id: sendMessage_LdLhmf - activity: Go ahead. I'm listening. \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Greeting.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Greeting.mcs.yml deleted file mode 100644 index f8715eaae..000000000 --- a/samples/mcs-PositivityAgent/src/topics/Greeting.mcs.yml +++ /dev/null @@ -1,27 +0,0 @@ -# Name: Greeting -# This topic is triggered when the user greets the agent. -kind: AdaptiveDialog -beginDialog: - kind: OnRecognizedIntent - id: main - intent: - displayName: Greeting - includeInOnSelectIntent: false - triggerQueries: - - Good afternoon - - Good morning - - Hello - - Hey - - Hi - - actions: - - kind: SendActivity - id: sendMessage_abmysR - activity: - text: - - Hello, how can I help you today? - speak: - - Hello, how can I help? - - - kind: CancelAllDialogs - id: cancelAllDialogs_01At22 \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/MultipleTopicsMatched.mcs.yml b/samples/mcs-PositivityAgent/src/topics/MultipleTopicsMatched.mcs.yml deleted file mode 100644 index 542f749ee..000000000 --- a/samples/mcs-PositivityAgent/src/topics/MultipleTopicsMatched.mcs.yml +++ /dev/null @@ -1,45 +0,0 @@ -# Name: Multiple Topics Matched -# This system topic triggers when the agent matches multiple Topics with the incoming message and needs to clarify which one should be triggered. -kind: AdaptiveDialog -beginDialog: - kind: OnSelectIntent - id: main - triggerBehavior: Always - actions: - - kind: SetVariable - id: setVariable_M6434i - variable: init:Topic.IntentOptions - value: =System.Recognizer.IntentOptions - - - kind: SetTextVariable - id: setTextVariable_0 - variable: Topic.NoneOfTheseDisplayName - value: None of these - - - kind: EditTable - id: sendMessage_g5Ls09 - changeType: Add - itemsVariable: Topic.IntentOptions - value: "={ DisplayName: Topic.NoneOfTheseDisplayName, TopicId: \"NoTopic\", TriggerId: \"NoTrigger\", Score: 1.0 }" - - - kind: Question - id: question_zf2HhP - interruptionPolicy: - allowInterruption: false - - alwaysPrompt: true - variable: System.Recognizer.SelectedIntent - prompt: "To clarify, did you mean:" - entity: - kind: DynamicClosedListEntity - items: =Topic.IntentOptions - - - kind: ConditionGroup - id: conditionGroup_60PuXb - conditions: - - id: conditionItem_rs7GgM - condition: =System.Recognizer.SelectedIntent.TopicId = "NoTopic" - actions: - - kind: ReplaceDialog - id: YZXRDb - dialog: ca_agent.topic.Fallback \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/OnError.mcs.yml b/samples/mcs-PositivityAgent/src/topics/OnError.mcs.yml deleted file mode 100644 index 562c75b69..000000000 --- a/samples/mcs-PositivityAgent/src/topics/OnError.mcs.yml +++ /dev/null @@ -1,47 +0,0 @@ -# Name: On Error -# This system topic triggers when the agent encounters an error. When using the test chat pane, the full error description is displayed. -kind: AdaptiveDialog -startBehavior: UseLatestPublishedContentAndCancelOtherTopics -beginDialog: - kind: OnError - id: main - actions: - - kind: SetVariable - id: setVariable_timestamp - variable: init:Topic.CurrentTime - value: =Text(Now(), DateTimeFormat.UTC) - - - kind: ConditionGroup - id: condition_1 - conditions: - - id: bL4wmY - condition: =System.Conversation.InTestMode = true - actions: - - kind: SendActivity - id: sendMessage_XJBYMo - activity: |- - Error Message: {System.Error.Message} - Error Code: {System.Error.Code} - Conversation Id: {System.Conversation.Id} - Time (UTC): {Topic.CurrentTime} - - elseActions: - - kind: SendActivity - id: sendMessage_dZ0gaF - activity: - text: - - |- - An error has occurred. - Error code: {System.Error.Code} - Conversation Id: {System.Conversation.Id} - Time (UTC): {Topic.CurrentTime}. - speak: - - An error has occurred, please try again. - - - kind: LogCustomTelemetryEvent - id: 9KwEAn - eventName: OnErrorLog - properties: "={ErrorMessage: System.Error.Message, ErrorCode: System.Error.Code, TimeUTC: Topic.CurrentTime, ConversationId: System.Conversation.Id}" - - - kind: CancelAllDialogs - id: NW7NyY \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/ResetConversation.mcs.yml b/samples/mcs-PositivityAgent/src/topics/ResetConversation.mcs.yml deleted file mode 100644 index cc0deefe1..000000000 --- a/samples/mcs-PositivityAgent/src/topics/ResetConversation.mcs.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Name: Reset Conversation -kind: AdaptiveDialog -startBehavior: UseLatestPublishedContentAndCancelOtherTopics -beginDialog: - kind: OnSystemRedirect - id: main - actions: - - kind: SendActivity - id: sendMessage_OPsT1O - activity: What can I help you with? - - - kind: ClearAllVariables - id: clearAllVariables_73bTFR - variables: ConversationScopedVariables - - - kind: CancelAllDialogs - id: cancelAllDialogs_12Gt21 \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Search.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Search.mcs.yml deleted file mode 100644 index f70fab3e4..000000000 --- a/samples/mcs-PositivityAgent/src/topics/Search.mcs.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Name: Conversational boosting -# Create generative answers from knowledge sources. -kind: AdaptiveDialog -beginDialog: - kind: OnUnknownIntent - id: main - priority: -1 - actions: - - kind: SearchAndSummarizeContent - id: search-content - variable: Topic.Answer - userInput: =System.Activity.Text - - - kind: ConditionGroup - id: has-answer-conditions - conditions: - - id: has-answer - condition: =!IsBlank(Topic.Answer) - actions: - - kind: EndDialog - id: end-topic - clearTopicQueue: true \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/Signin.mcs.yml b/samples/mcs-PositivityAgent/src/topics/Signin.mcs.yml deleted file mode 100644 index 573c09466..000000000 --- a/samples/mcs-PositivityAgent/src/topics/Signin.mcs.yml +++ /dev/null @@ -1,21 +0,0 @@ -# Name: Sign in -# This system topic triggers when the agent needs to sign in the user or require the user to sign in -kind: AdaptiveDialog -beginDialog: - kind: OnSignIn - id: main - actions: - - kind: ConditionGroup - id: conditionGroup_ypjGKL - conditions: - - id: conditionItem_7XYIIR - condition: =System.SignInReason = SignInReason.SignInRequired - actions: - - kind: SendActivity - id: sendMessage_1jHUNO - activity: Hello! To be able to help you, I'll need you to sign in. - - - kind: OAuthInput - id: gOjhZA - title: Login - text: To continue, please login \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/StartOver.mcs.yml b/samples/mcs-PositivityAgent/src/topics/StartOver.mcs.yml deleted file mode 100644 index 8cc1dd4cc..000000000 --- a/samples/mcs-PositivityAgent/src/topics/StartOver.mcs.yml +++ /dev/null @@ -1,36 +0,0 @@ -# Name: Start Over -kind: AdaptiveDialog -beginDialog: - kind: OnRecognizedIntent - id: main - intent: - displayName: Start Over - includeInOnSelectIntent: false - triggerQueries: - - let's begin again - - start over - - start again - - restart - - actions: - - kind: Question - id: question_zguoVV - alwaysPrompt: false - variable: init:Topic.Confirm - prompt: Are you sure you want to restart the conversation? - entity: BooleanPrebuiltEntity - - - kind: ConditionGroup - id: conditionGroup_lvx2zV - conditions: - - id: conditionItem_sVQtHa - condition: =Topic.Confirm = true - actions: - - kind: BeginDialog - id: 0YKYsy - dialog: ca_agent.topic.ResetConversation - - elseActions: - - kind: SendActivity - id: sendMessage_lk2CyQ - activity: Ok. Let's carry on. \ No newline at end of file diff --git a/samples/mcs-PositivityAgent/src/topics/ThankYou.mcs.yml b/samples/mcs-PositivityAgent/src/topics/ThankYou.mcs.yml deleted file mode 100644 index bed9939b4..000000000 --- a/samples/mcs-PositivityAgent/src/topics/ThankYou.mcs.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Name: Thank you -# This topic triggers when the user says thank you. -kind: AdaptiveDialog -beginDialog: - kind: OnRecognizedIntent - id: main - intent: - displayName: Thank you - includeInOnSelectIntent: false - triggerQueries: - - thanks - - thank you - - thanks so much - - ty - - actions: - - kind: SendActivity - id: sendMessage_9iz6v7 - activity: You're welcome. \ No newline at end of file From e3c646a0b9603fec30f671680dec48232c5dba8d Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Fri, 13 Mar 2026 11:17:35 +0000 Subject: [PATCH 19/20] Removed guidance --- CONTRIBUTING.md | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 87f62b3d0..14cbf0eb2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -165,10 +165,10 @@ Your sample should include a clearly marked folder containing a Teams/M365 `mani ### 7. Microsoft Copilot Studio Samples -There are two types of Copilot Studio Agents within this repository: +There are one type of Copilot Studio Agent within this repository: -1. Copilot Studio using Solution Export -2. Copilot Studio using Cloned with Visual Studio Code. +1. ✅ Copilot Studio using Solution Export +2. ❌ Copilot Studio using Cloned with Visual Studio Code. (Not Recommended at this time) #### Sample Setup applies to both methods @@ -217,17 +217,6 @@ See example agent: [mcs-BlogPostHelper](/samples/mcs-BlogPostHelper) Thats it, proceed to Finalising the sample -#### Copilot Studio using Copilot Studio for Visual Studio Code clone method - -This method assumes you have the Copilot Studio Extension for Visual Studio Code installed; found in the market place [Copilot Studio | Visual Studio Code Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-CopilotStudio.vscode-copilotstudio) - -Steps - -- Ensure you have followed the Sample setup instructions -- Clone the agent in the folder (e.g. mcs-MyNewAgent) using the extension, this will create a new folder with the Yaml files in, rename the folder to `src` - -Thats it, proceed to Finalising the sample - #### Finalising the sample **Updating the Readme.md file** From 754e5dd1f9f935cd81bb30bb373764ec3d735dfe Mon Sep 17 00:00:00 2001 From: Paul Bullock Date: Fri, 13 Mar 2026 11:48:30 +0000 Subject: [PATCH 20/20] Added mention of Power Platform Tools extension --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 14cbf0eb2..99b0614e6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -194,7 +194,7 @@ Submitting a Microsoft Copilot Studio (MCS) Samples using the Clone Method > Note: Package/zip files, for security reasons we will only accept the contents of these packages rather than the package files. -To get the source quickly, please use the following commands using the [Power Platform CLI](https://learn.microsoft.com/en-us/power-platform/developer/cli/introduction): +To get the source quickly, please use the following commands using the [Power Platform CLI](https://learn.microsoft.com/en-us/power-platform/developer/cli/introduction), alternatively to install the CLI quickly in the terminal, you can use the [Power Platform Tools for Visual Studio Code (as this installs the Power Platform CLI as well)](https://marketplace.visualstudio.com/items?itemName=microsoft-IsvExpTools.powerplatform-vscode): - Ensure you are authenticated with [```pac auth```](https://learn.microsoft.com/en-us/power-platform/developer/cli/reference/auth)