Skip to content

feat: add teams-bot-developer skill to microsoft-365-agents-toolkit plugin#111

Open
qfai wants to merge 11 commits into
microsoft:mainfrom
qfai:feat/teams-bot-developer
Open

feat: add teams-bot-developer skill to microsoft-365-agents-toolkit plugin#111
qfai wants to merge 11 commits into
microsoft:mainfrom
qfai:feat/teams-bot-developer

Conversation

@qfai
Copy link
Copy Markdown

@qfai qfai commented Apr 30, 2026

microsoft-365-agents-toolkit Plugin — Teams Bot + CEA + DA

This PR adds a comprehensive plugin for the Microsoft 365 Agents Toolkit (ATK), covering Teams Bot, Custom Engine Agent (CEA), and Declarative Agent (DA) development lifecycles.


📚 Shared Teams Experts Library (experts/teams/)

The experts in this library are grounded in the Microsoft Teams AI Library knowledge base — sourced from the Teams AI Library SDK, Microsoft Teams developer docs, and Microsoft 365 Agents Toolkit docs.

Each expert file includes a ## research section listing the source references for validation.

Expert Coverage
bot-foundations-ts.md CloudAdapter, TurnContext, ActivityHandler
app-init-ts.md CloudAdapter setup, Express server, credential factory
routing-handlers-ts.md app.message(), app.activity(), actionExecute routing
manifest-ts.md manifest.json schema, ATK variable substitution, RSC permissions
adaptive-cards-ts.md Adaptive Card design, Universal Actions, refresh
dialogs-ts.md task/fetch + task/submit, card dialogs, URL dialogs
message-extensions-ts.md Search + action message extensions
proactive-ts.md Proactive messaging, conversation references
graph-api-ts.md @microsoft/microsoft-graph-client, OBO vs app permissions
state-storage-ts.md TurnState, MemoryStorage, BlobsStorage, CosmosDB
sso-auth-ts.md Teams SSO, OBO flow, TeamsSSOTokenExchangeMiddleware
sso-auth-cea-ts.md SSO + OBO inside AI function/action handlers (CEA)
teams-python-ts.md Python SDK — @app.on_message, ActivityContext, aiohttp
teams-dotnet-ts.md C# .NET SDK — ApplicationBuilder, ASP.NET Core

🗂️ Plugin Structure

plugins/microsoft-365-agents-toolkit/
├── skills/
│   ├── teams-bot-developer/                # Teams Bot lifecycle skill
│   └── custom-engine-agent-developer/      # CEA lifecycle skill
├── experts/
│   └── teams/                              # Shared Teams knowledge library (15 experts)
├── commands/
│   ├── new-project.md
│   └── autotest.md                         # Covers Teams Bot + CEA + DA
└── INTEGRITY.json                          # 63 files verified

🤖 Skills

teams-bot-developer — 8-phase lifecycle: Scaffold → Bot Core → Adaptive Cards → Message Extensions → SSO → Proactive → Deploy → Publish

custom-engine-agent-developer — 10-phase lifecycle: Detect Type → Scaffold → AI Model → Function Calling → RAG → SSO → Security → Debug → Deploy → Publish


🔄 Design Decisions

  • Shared expert library (experts/teams/) eliminates duplication — both skills reference via ../../experts/teams/
  • CEA-specific AI experts stay in custom-engine-agent-developer/experts/ (ActionPlanner, ChatPrompt, Streaming, RAG, SSO-CEA)
  • DA projects remain unaffected — this plugin only targets Teams Bot and CEA
  • autotest.md supports all three project types with prerequisite checks (playwright-cli, ATK CLI, devtunnel)
  • marketplace.json updated with CEA skill entry, bumped to v1.5.0

…lugin

Adds a new 	eams-bot-developer skill that covers Teams Bot and Custom
Engine Agent (CEA) development workflows not covered by the existing
declarative-agent-developer skill.

New skill and reference docs:
- SKILL.md — workspace check, phase routing, critical rules
- bot-scaffolding.md — ATK scaffold commands, project structure, AGENTS.md setup
- adaptive-cards.md — card patterns (notification, approval, input form), Action.Execute
- message-extensions.md — search and action extensions, link unfurling
- proactive-messaging.md — ConversationReference storage, Graph proactive install, retry
- slash-commands.md — manifest-based commands, Teams AI Library text handlers
- security-hardening.md — CloudAdapter config, tenant restriction, input sanitization,
  Key Vault, least-privilege Graph permissions

Updated files:
- marketplace.json — register teams-bot-developer skill, bump version to 1.3.0
- plugin.json — bump to 1.3.0, updated description
- README.md — add teams-bot-developer to skills table, add bot example prompts
- PLUGINS.md — add skill entry and example prompts for teams-bot-developer

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@qfai qfai closed this Apr 30, 2026
qfai and others added 6 commits May 6, 2026 14:28
Commands added (/new /debug /deploy /publish /onboard /autotest):
- commands/new.md — scaffold Teams Bot with template choice
- commands/debug.md — route to Playground or Teams Direct Launch
- commands/deploy.md — Azure provision + deploy
- commands/publish.md — org catalog or Teams Store
- commands/onboard.md — add ATK to existing bot
- commands/autotest.md — Playwright e2e test in Teams

References added to skills/teams-bot-developer:
- detect-type.md — detect bot vs ME/tab
- debug.md — Playground vs Teams Direct Launch routing
- playground.md — Agents Playground setup and config
- teams-debug.md — Teams Direct Launch with devtunnel
- deploy.md / publish.md / onboard.md

SKILL.md updated:
- STEP 0 routing table (SCAFFOLD/DEBUG/DEPLOY/PUBLISH/ONBOARD/ADD FEATURE)
- Full phase sections replacing flat phase routing
- Remove CEA scope from description and triggers

Other:
- remove references/slash-commands.md (replaced by /new command)
- plugin.json v1.4.0 — describe full scope (DA + Teams Bot + slash commands)
- bot-scaffolding.md — remove CEA wording

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
app.py/main.py with bot framework imports are valid bot entry points.
Reject only when no bot framework imports AND no m365agents.yml.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add experts/ subdirectory with 5 deep-knowledge expert files:
- index.md: Teams domain router
- bot-foundations-ts.md: Teams AI library app setup, handlers, state
- adaptive-cards-ts.md: Action.Execute, card refresh, user-specific views
- message-extensions-ts.md: search/action/link-unfurl ME patterns
- proactive-ts.md: ConversationReference, continueConversationAsync, Graph webhooks
- sso-auth-ts.md: Teams SSO, OBO flow, token validation

Update SKILL.md with Teams Experts routing section.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nces

- Add SKILL.md with workspace check, STEP 0 routing, phase sections (New/Existing/Teams Experts), and critical rules
- Add references: cea-scaffolding, ai-model-setup, function-calling, rag, debug, deploy, detect-type, playground, teams-debug
- Add experts: index (router), action-planner-ts (v1 ActionPlanner), chatprompt-ts (v2 ChatPrompt), streaming-ts, rag-ts
- Update plugin.json v1.4.0 → v1.5.0: add CEA to description

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…SSO expert

- references/onboard.md: add ATK to existing AI bot
- references/publish.md: publish CEA to org catalog
- references/security-hardening.md: API key protection, prompt injection, rate limiting
- references/prompt-engineering.md: system prompt design, grounding, v1/v2 patterns
- experts/sso-auth-ts.md: SSO + OBO token inside ActionPlanner and ChatPrompt.function
- SKILL.md: add ONBOARD, PROMPT ENGINEERING, SSO AUTH, SECURITY, PUBLISH routing
- experts/index.md: add SSO Auth cluster
- plugin.json v1.5.0 (already updated)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@qfai qfai reopened this May 6, 2026
qfai and others added 4 commits May 6, 2026 17:15
- Create experts/teams/ as shared library for both teams-bot-developer and custom-engine-agent-developer
- Move adaptive-cards-ts, bot-foundations-ts, message-extensions-ts, proactive-ts, sso-auth-ts to shared location
- Add sso-auth-cea-ts.md (CEA-specific OBO-in-AI-tool version) to shared location
- Update both SKILL.md files to reference ../../experts/teams/
- Update both experts/index.md to point to shared location
- INTEGRITY.json added (55 files)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ect types

- .github/plugin/marketplace.json: add custom-engine-agent-developer skill, v1.3.0 -> v1.5.0, update description
- commands/autotest.md: cover Teams Bot, CEA, and DA
  - Add prerequisite checks (playwright-cli, ATK CLI, devtunnel)
  - DA path: m365.cloud.microsoft/chat
  - CEA: verify Azure OpenAI key before start

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…red-by: Copilot <223556219+Copilot@users.noreply.github.com>
…EGRITY 63 files

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant