microsoft/semantic-kernel-to-agents-framework
> Migrates .NET projects from Semantic Kernel to the Microsoft Agents Framework. Use when user wants to migrate Semantic Kernel agents, upgrade from SK to Agents Framework, or replace ChatCompletionAgent/OpenAIAssistantAgent with Agent Framework equivalents.
npx skills add https://github.com/microsoft/upgrade-agent-plugins --skill semantic-kernel-to-agents-framework
Scan the solution to build a complete picture of SK agent usage. Capture findings in assessment.md.
Search all project files and package management files (Directory.Packages.props) for:
Microsoft.SemanticKernel.Agents.CoreMicrosoft.SemanticKernel.Agents.OpenAIMicrosoft.SemanticKernel.Agents.AzureAIMicrosoft.SemanticKernel — check if used solely for agents or also for other SK features (prompts, memory, connectors)Search all code files across the solution for using Microsoft.SemanticKernel.Agents. Record which files in which projects contain these usings — this gives a quick per-project file count that drives planning.
For each project with SK agent references, scan code files for:
| Pattern | What to Record |
|---------|---------------|
| Agent types (ChatCompletionAgent, OpenAIAssistantAgent, AzureAIAgent, OpenAIResponseAgent, A2AAgent) | Which types, how many instances |
| Provider usage (OpenAI, Azure OpenAI, Azure AI Foundry) | Provider per agent — determines target AF package |
| Tool/function registration (KernelPlugin, KernelFunction, [KernelFunction]) | Agent-specific vs shared kernel plugins |
| Thread management (AgentGroupChat, AgentThread, manual thread passing) | Multi-agent orchestration complexity |
| InnerContent access | Breaking-glass pattern — needs RawRepresentation migration |
| DI registration of agents or SK services | How agents are wired into the application |
Flag these as higher complexity in the assessment:
Microsoft.SemanticKernel package entirelyAgentGroupChat or custom agent-to-agent patterns — thread management differs significantly in AFCreate assessment.md in the workflow folder with this structure:
# Assessment: Semantic Kernel to Agents Framework
## Affected Projects
| Project | SK Agent Packages | Agent Types | Provider | Risk |
|---------|-------------------|-------------|----------|------|
| MyApp.Agents | Agents.Core, Agents.OpenAI | ChatCompletionAgent (2) | Azure OpenAI | Low |
| MyApp.Tests | (transitive) | Mocks ChatCompletionAgent | — | Medium |
## Transitive Consumers
Projects that reference affected projects but don't directly use SK agents:
- [list or "none"]
## Key Findings
- [Notable patterns, risks, or decisions needed]
Based on the assessment, create plan.md with a task per project ordered bottom-up (leaf dependencies first, then consumers).
For each task include:
Projects that are transitive-only consumers (no direct SK agent code) still need a task if their code references types from affected projects that will change.
Execute the plan task by task. For any task that involves migrating SK agent code or packages, apply the migrating-semantic-kernel-to-agents feature skill. It provides:
ref/api-mappings.md)ref/provider-patterns.md)After completing all tasks, do a final solution-wide search for any remaining Microsoft.SemanticKernel.Agents references and fix stragglers.
Microsoft.SemanticKernel.Agents namespace references in codeTake microsoft/semantic-kernel-to-agents-framework from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.