Plugins - Functions in Semantic Kernel
π§© Plugins
Plugins are named collections of functions (native, prompt, OpenAPI, MCP) plus metadata. They are the unit of organization, discovery, and permissioning.
Why plugins
- Compose related capabilities under a clear boundary.
- Enable/disable whole feature areas.
- Assign fineβgrained permissions and scopes per plugin.
Typical structure
/Plugins
βββ CalendarPlugin
βββ GetEvents.skprompt.txt
βββ CreateEvent.skprompt.txt
βββ manifest.json
Registering a plugin directory:
kernel.Plugins.AddFromPromptDirectory("Plugins/CalendarPlugin");
Manifests & metadata
- Name, description, function signatures, input/output schemas.
- Security notes: required permissions, data categories, PII handling.
- Owner and version; changelog for governance.
Packaging & distribution
- Keep functions cohesive; split large plugins.
- Version with semantic versioning; document breaking changes.
- Provide sample prompts/tests; CI to validate schemas.
Governance best practices
- Review boundaries regularly; minimize permissions.
- Log plugin/function usage; monitor hot paths and failures.
- Document data flows and retention; ensure compliance.
Next steps
- Revisit the overview for the decision checklist.
- Mix plugins of different function types; prefer native for critical paths.