-
Notifications
You must be signed in to change notification settings - Fork 24
Community sample - A365 Teams agent with notification functionality #147
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,55 @@ | ||
| # Visual Studio temporary files, build results, and | ||
| # files generated by popular Visual Studio add-ons. | ||
|
|
||
| # User-specific files | ||
| *.suo | ||
| *.user | ||
| *.userosscache | ||
| *.sln.docstates | ||
|
|
||
| # User-specific files (MonoDevelop/Xamarin Studio) | ||
| *.userprefs | ||
|
|
||
| # Build results | ||
| [Dd]ebug/ | ||
| [Dd]ebugPublic/ | ||
| [Rr]elease/ | ||
| [Rr]eleases/ | ||
| x64/ | ||
| x86/ | ||
| bld/ | ||
| [Bb]in/ | ||
| [Oo]bj/ | ||
| [Ll]og/ | ||
|
|
||
| # Visual Studio 2015/2017 cache/options directory | ||
| .vs/ | ||
|
|
||
| # Visual Studio 2017 auto generated files | ||
| Generated\ Files/ | ||
|
|
||
| # MSTest test Results | ||
| [Tt]est[Rr]esult*/ | ||
| [Bb]uild[Ll]og.* | ||
|
|
||
| # .NET Core | ||
| project.lock.json | ||
| project.fragment.lock.json | ||
| artifacts/ | ||
|
|
||
| # NuGet Packages | ||
| *.nupkg | ||
| **/[Pp]ackages/* | ||
| !**/[Pp]ackages/build/ | ||
|
|
||
| # VS Code files | ||
| .vscode/ | ||
|
|
||
| # JetBrains Rider | ||
| *.sln.iml | ||
| .idea/ | ||
|
|
||
| # Mac files | ||
| .DS_Store | ||
|
|
||
| .claude/ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,25 @@ | ||
| | ||
| Microsoft Visual Studio Solution File, Format Version 12.00 | ||
| # Visual Studio Version 17 | ||
| VisualStudioVersion = 17.14.36623.8 | ||
| MinimumVisualStudioVersion = 10.0.40219.1 | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AgentFrameworkNotificationAgent", "notification-agent\AgentFrameworkNotificationAgent.csproj", "{C05BF552-56C0-8F74-98D5-F51053881902}" | ||
| EndProject | ||
| Global | ||
| GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
| Debug|Any CPU = Debug|Any CPU | ||
| Release|Any CPU = Release|Any CPU | ||
| EndGlobalSection | ||
| GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
| {C05BF552-56C0-8F74-98D5-F51053881902}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {C05BF552-56C0-8F74-98D5-F51053881902}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {C05BF552-56C0-8F74-98D5-F51053881902}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {C05BF552-56C0-8F74-98D5-F51053881902}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| EndGlobalSection | ||
| GlobalSection(SolutionProperties) = preSolution | ||
| HideSolutionNode = FALSE | ||
| EndGlobalSection | ||
| GlobalSection(ExtensibilityGlobals) = postSolution | ||
| SolutionGuid = {A13DF873-5DE4-4F7D-9734-FA05F32F218E} | ||
| EndGlobalSection | ||
| EndGlobal |
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,15 @@ | ||||||
| # Agent365 notification Agent | ||||||
|
|
||||||
| This is a sample that demonstrates how to implement Agent 365 notification functionality, that allows an agent to respond to comments in a Word document, as well as responding to emails. Check out [this video](https://www.youtube.com/watch?v=xKd1awTemiU) that shows how you can use Agent 365 notifications to collaborate with an agent when reviewing a Word document. | ||||||
|
|
||||||
| In addition to responding to the notifications mentioned above, the agent can also respond to Teams messages. In this [blog post](https://nullpointer.se/agent-365-notifications.html) I provide more details on how the sample was implemented. | ||||||
|
|
||||||
| ## Overview | ||||||
|
|
||||||
| This project showcases the notification system that is part of the Agent365 architecture. Before running the sample, you need to setup the infrastructure needed for deploying the agent in Agent 365. Here is a great resource that summarizes the steps necessary: | ||||||
|
|
||||||
| [https://learn.microsoft.com/en-us/microsoft-agent-365/developer/a365-dev-lifecycle](https://learn.microsoft.com/en-us/microsoft-agent-365/developer/a365-dev-lifecycle) | ||||||
|
|
||||||
| Also check out my [blog post](https://nullpointer.se/exploring-agent-365-cli.html) (written in December 2025, might be dated when you read this) that describes how to use the Agent 365 CLI to provision the infrastructure. | ||||||
|
|
||||||
| Ping me LinkedIn if you have any questions: [https://www.linkedin.com/in/andreasadner/](https://www.linkedin.com/in/andreasadner/) | ||||||
|
||||||
| Ping me LinkedIn if you have any questions: [https://www.linkedin.com/in/andreasadner/](https://www.linkedin.com/in/andreasadner/) | |
| Ping me on LinkedIn if you have any questions: [https://www.linkedin.com/in/andreasadner/](https://www.linkedin.com/in/andreasadner/) |
Copilot
AI
Jan 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The README is missing several critical sections required for Agent 365 samples:
- Prerequisites section with specific versions (e.g., .NET 8.0+, SDK versions)
- Configuration section with example appsettings.json snippets
- Step-by-step "How to run this sample" instructions with specific commands (dotnet run, etc.)
- Multiple testing options documentation (Playground, WebChat, Teams/M365)
- Troubleshooting section with common errors and solutions
- Links to official Agent 365 SDK documentation
Following the standard structure used in other Agent 365 samples would improve usability and maintainability.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,244 @@ | ||
| ## Ignore Visual Studio temporary files, build results, and | ||
| ## files generated by popular Visual Studio add-ons. | ||
| ## | ||
| ## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore | ||
|
|
||
| # User-specific files | ||
| *.suo | ||
| *.user | ||
| *.userosscache | ||
| *.sln.docstates | ||
| target/ | ||
|
|
||
| # Cake | ||
| /.cake | ||
| /version.txt | ||
| /PSRunCmds*.ps1 | ||
|
|
||
| # User-specific files (MonoDevelop/Xamarin Studio) | ||
| *.userprefs | ||
|
|
||
| # Build results | ||
| [Dd]ebug/ | ||
| [Dd]ebugPublic/ | ||
| [Rr]elease/ | ||
| [Rr]eleases/ | ||
| x64/ | ||
| x86/ | ||
| bld/ | ||
| [Bb]in/ | ||
| [Oo]bj/ | ||
| [Ll]og/ | ||
| /bin/ | ||
| /binSigned/ | ||
| /obj/ | ||
| Drop/ | ||
| target/ | ||
| Symbols/ | ||
| objd/ | ||
| .config/ | ||
|
|
||
| # Visual Studio 2015/2017 cache/options directory | ||
| .vs/ | ||
| # Uncomment if you have tasks that create the project's static files in wwwroot | ||
| #wwwroot/ | ||
|
|
||
| # Visual Studio 2017 auto generated files | ||
| Generated\ Files/ | ||
|
|
||
| # MSTest test Results | ||
| [Tt]est[Rr]esult*/ | ||
| [Bb]uild[Ll]og.* | ||
|
|
||
| # NUNIT | ||
| *.VisualState.xml | ||
| TestResult.xml | ||
|
|
||
| # Build Results of an ATL Project | ||
| [Dd]ebugPS/ | ||
| [Rr]eleasePS/ | ||
| dlldata.c | ||
|
|
||
| # Benchmark Results | ||
| BenchmarkDotNet.Artifacts/ | ||
|
|
||
| # .NET Core | ||
| project.lock.json | ||
| project.fragment.lock.json | ||
| artifacts/ | ||
| **/Properties/launchSettings.json | ||
|
|
||
| # StyleCop | ||
| StyleCopReport.xml | ||
|
|
||
| # Files built by Visual Studio | ||
| *_i.c | ||
| *_p.c | ||
| *_i.h | ||
| *.ilk | ||
| *.meta | ||
| *.obj | ||
| *.iobj | ||
| *.pch | ||
| *.pdb | ||
| *.ipdb | ||
| *.pgc | ||
| *.pgd | ||
| *.rsp | ||
| *.sbr | ||
| *.tlb | ||
| *.tli | ||
| *.tlh | ||
| *.tmp | ||
| *.tmp_proj | ||
| *.log | ||
| *.vspscc | ||
| *.vssscc | ||
| .builds | ||
| *.pidb | ||
| *.svclog | ||
| *.scc | ||
|
|
||
| # Chutzpah Test files | ||
| _Chutzpah* | ||
|
|
||
| # Visual C++ cache files | ||
| ipch/ | ||
| *.aps | ||
| *.ncb | ||
| *.opendb | ||
| *.opensdf | ||
| *.sdf | ||
| *.cachefile | ||
| *.VC.db | ||
| *.VC.VC.opendb | ||
|
|
||
| # Visual Studio profiler | ||
| *.psess | ||
| *.vsp | ||
| *.vspx | ||
| *.sap | ||
|
|
||
| # Visual Studio Trace Files | ||
| *.e2e | ||
|
|
||
| # TFS 2012 Local Workspace | ||
| $tf/ | ||
|
|
||
| # Guidance Automation Toolkit | ||
| *.gpState | ||
|
|
||
| # ReSharper is a .NET coding add-in | ||
| _ReSharper*/ | ||
| *.[Rr]e[Ss]harper | ||
| *.DotSettings.user | ||
|
|
||
| # JustCode is a .NET coding add-in | ||
| .JustCode | ||
|
|
||
| # TeamCity is a build add-in | ||
| _TeamCity* | ||
|
|
||
| # DotCover is a Code Coverage Tool | ||
| *.dotCover | ||
|
|
||
| # AxoCover is a Code Coverage Tool | ||
| .axoCover/* | ||
| !.axoCover/settings.json | ||
|
|
||
| # Visual Studio code coverage results | ||
| *.coverage | ||
| *.coveragexml | ||
|
|
||
| # NCrunch | ||
| _NCrunch_* | ||
| .*crunch*.local.xml | ||
| nCrunchTemp_* | ||
|
|
||
| # Click-Once directory | ||
| publish/ | ||
|
|
||
| # Publish Web Output | ||
| *.[Pp]ublish.xml | ||
| *.azurePubxml | ||
| # Note: Comment the next line if you want to checkin your web deploy settings, | ||
| # but database connection strings (with potential passwords) will be unencrypted | ||
| *.pubxml | ||
| *.publishproj | ||
|
|
||
| # Microsoft Azure Web App publish settings. Comment the next line if you want to | ||
| # checkin your Azure Web App publish settings, but sensitive information contained | ||
| # in these scripts will be unencrypted | ||
| PublishScripts/ | ||
|
|
||
| # NuGet Packages | ||
| *.nupkg | ||
| # The packages folder can be ignored because of Package Restore | ||
| **/[Pp]ackages/* | ||
| # except build/, which is used as an MSBuild target. | ||
| !**/[Pp]ackages/build/ | ||
| # Uncomment if necessary however generally it will be regenerated when needed | ||
| #!**/[Pp]ackages/repositories.config | ||
| # NuGet v3's project.json files produces more ignorable files | ||
| *.nuget.props | ||
| *.nuget.targets | ||
|
|
||
| # Microsoft Azure Build Output | ||
| csx/ | ||
| *.build.csdef | ||
|
|
||
| # Microsoft Azure Emulator | ||
| ecf/ | ||
| rcf/ | ||
|
|
||
| # Visual Studio cache files | ||
| # files ending in .cache can be ignored | ||
| *.[Cc]ache | ||
| # but keep track of directories ending in .cache | ||
| !*.[Cc]ache/ | ||
|
|
||
| # Others | ||
| ClientBin/ | ||
| ~$* | ||
| *~ | ||
| *.dbmdl | ||
| *.dbproj.schemaview | ||
| *.jfm | ||
| *.pfx | ||
| *.publishsettings | ||
| orleans.codegen.cs | ||
|
|
||
| #nodeJS stuff | ||
| /node_modules/ | ||
|
|
||
| #local development | ||
| appsettings.local.json | ||
| appsettings.Development.json | ||
| appsettings.Development* | ||
| appsettings.Production.json | ||
| **/[Aa]ppManifest/*.zip | ||
| .deployment | ||
|
|
||
| # JetBrains Rider | ||
| *.sln.iml | ||
| .idea | ||
|
|
||
| # Mac files | ||
| .DS_Store | ||
|
|
||
| # VS Code files | ||
| .vscode | ||
| src/samples/ModelContextProtocol/GitHubMCPServer/Properties/ServiceDependencies/GitHubMCPServer20250311143114 - Web Deploy/profile.arm.json | ||
|
|
||
| # VS Files | ||
| .vs/ | ||
|
|
||
| # Agent SDK generated files | ||
| *.transcript | ||
| a365.config.json | ||
| a365.generated.config.json | ||
| msteams/ | ||
| appPackage/ | ||
| agents_email/ | ||
| agents_Excel/ | ||
| manifest/ |
Uh oh!
There was an error while loading. Please reload this page.