Add Context-Aware Plugin Metadata Architecture Decision Record#24
Add Context-Aware Plugin Metadata Architecture Decision Record#24
Conversation
|
@copilot This issue is not about how the current solution works. But design adding support for the newly release agentic framework in semantic kernel and how that would work.!! |
Understood. I'll create a design document exploring how SemanticPluginForge could integrate with Semantic Kernel's newly released agentic framework, rather than documenting the current solution's internals. |
Co-authored-by: lsiddiquee <15940466+lsiddiquee@users.noreply.github.com>
|
@copilot this shoudl not be in docs but in adr folder |
Co-authored-by: lsiddiquee <15940466+lsiddiquee@users.noreply.github.com>
Co-authored-by: lsiddiquee <15940466+lsiddiquee@users.noreply.github.com>
Co-authored-by: lsiddiquee <15940466+lsiddiquee@users.noreply.github.com>
| var kernel = builder.Build(); | ||
|
|
||
| // Register agent context for plugin resolution | ||
| kernel.Data[AgentContextKey] = new AgentContext |
There was a problem hiding this comment.
@copilot why is this agent context required here? I assume that the agentcontext is passed when the plugin is registered.
Also generalizing, what if we create an interface IPluginContext and use that for context and we can create a concrete AgentContext which can be used for Agentic this will allow users to pass any custom metadata/context they want?
There was a problem hiding this comment.
Refactored to introduce IPluginContext interface for extensibility. Context is now passed only at plugin registration time via AddFromTypeWithContext() or AddFromTypeForAgent(). Removed kernel-level context storage entirely - no more global state. AgentContext is now just one implementation of IPluginContext, enabling custom context types for multi-tenancy, user-specific configs, or any other scenario. (commit in progress)
…egistration Co-authored-by: lsiddiquee <15940466+lsiddiquee@users.noreply.github.com>
Architecture Decision Record (ADR) exploring how SemanticPluginForge can support context-aware plugin metadata customization through a flexible, extensible interface design. While designed with Semantic Kernel's agentic framework in mind, the solution supports any context-based scenario including multi-tenancy, user-specific configurations, and session-based customizations.
Changes Made
Created ADR-0001 (
adr/0001-agentic-framework-integration.md) following Architecture Decision Record conventions with:IPluginContextinterface pattern with extensible context typesArchitecture and Design:
IPluginContextinterface as base for all context types, enabling custom implementationsAgentContextimplementsIPluginContextfor agent-specific scenariosIContextAwarePluginMetadataProviderinterface (withIAgentPluginMetadataProvideras convenience alias)API Extensions:
AddFromTypeWithContext<T>(IPluginContext context)- general method for any context typeAddFromTypeForAgent<T>(string agentName)- convenience method for agent scenariosservices.AddSingleton<IContextAwarePluginMetadataProvider>()Documented use cases:
Implementation considerations:
Simplified Design:
AgentContextcontains onlyAgentNameandProperties(removedAgentIdandAgentRole)Extensibility Features:
IPluginContextinterfaceIPluginMetadataProviderfor context-unaware scenariosMigration path: Shows how existing SemanticPluginForge users can adopt context-aware plugins while maintaining backward compatibility
Testing strategy: Includes unit tests, integration tests, and multi-agent scenario tests
ADR infrastructure: Created
adr/README.mdto document the ADR directory structure and indexThe ADR provides a complete blueprint for extending SemanticPluginForge with flexible, context-aware metadata customization that supports agents, multi-tenancy, user-specific configurations, and any custom context scenario through a clean, extensible interface design.
Fixes #23
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.