Updates third-party dev dependencies across the Python workspace and validates that all runtime dependency bounds still hold at both ends. Dev dependency bumps (root, lab, declarative, durabletask): - uv 0.11.6 -> 0.11.17, ruff 0.15.8 -> 0.15.15, pytest-asyncio 1.3.0 -> 1.4.0, mcp 1.27.0 -> 1.27.2, azure-monitor-opentelemetry 1.8.7 -> 1.8.8, poethepoet 0.42.1 -> 0.46.0, prek 0.3.9 -> 0.4.3, types-python-dateutil and types-PyYaml stub bumps. - Transitive Dependabot items swept via lock: idna 3.11 -> 3.17, pip 26.0.1 -> 26.1.2. Deliberately excluded: - opentelemetry-sdk stays 1.40.0: azure-monitor-opentelemetry (incl. 1.8.8) hard-pins opentelemetry-sdk==1.40. - mypy stays 1.20.0 and pyright stays 1.1.408: the 2.1.0 / 1.1.409 bumps introduce new diagnostics that fail type checking and need dedicated PRs. - rich kept as a range: agentlightning (lab[lightning]) forces rich==13.9.4. Code/formatting changes driven by the ruff upgrade: - devui lifespan now uses try/finally so shutdown cleanup always runs (ruff RUF075). - Removed unused TYPE_CHECKING imports in core and foundry flagged by ruff 0.15.15. - Reapplied ruff 0.15.15 formatting to the files it changed. Validation: validate-dependency-bounds-test "*" passes (31/31 lower + 31/31 upper); typing 62/62; lint 31/31; devui tests pass. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Semantic Kernel → Microsoft Agent Framework Migration Samples
This gallery helps Semantic Kernel (SK) developers move to the Microsoft Agent Framework (AF) with minimal guesswork. Each script pairs SK code with its AF equivalent so you can compare primitives, tooling, and orchestration patterns side by side while you migrate production workloads.
What’s Included
What’s Included
Chat completion parity
- 01_basic_chat_completion.py — Minimal SK
ChatCompletionAgentand AFAgentconversation. - 02_chat_completion_with_tool.py — Adds a simple tool/function call in both SDKs.
- 03_chat_completion_thread_and_stream.py — Demonstrates session reuse and streaming prompts.
Azure AI agent parity
OpenAI Assistants API parity
OpenAI Assistants parity samples were removed alongside the deprecated Python assistants surface and are no longer part of this migration gallery.
OpenAI Responses API parity
- 01_basic_responses_agent.py — Basic responses agent migration.
- 02_responses_agent_with_tool.py — Tool-augmented responses workflows.
- 03_responses_agent_structured_output.py — Structured JSON output alignment.
Copilot Studio parity
- 01_basic_copilot_studio_agent.py — Minimal Copilot Studio agent invocation.
- 02_copilot_studio_streaming.py — Streaming responses from Copilot Studio agents.
Orchestrations
- sequential.py — Step-by-step SK Team → AF
SequentialBuildermigration. - concurrent_basic.py — Concurrent orchestration parity.
- group_chat.py — Group chat coordination with an LLM-backed manager in both SDKs.
- handoff.py - Handoff coordination between agents.
- magentic.py — Magentic Team orchestration vs. AF builder wiring.
Processes
- fan_out_fan_in_process.py — Fan-out/fan-in comparison between SK Process Framework and AF workflows.
- nested_process.py — Nested process orchestration vs. AF sub-workflows.
Each script is fully async and the main() routine runs both implementations back to back so you can observe their outputs in a single execution.
Prerequisites
- Python 3.10 or later.
- Access to the necessary model endpoints (Azure OpenAI, OpenAI, Azure AI, Copilot Studio, etc.).
- Installed SDKs:
semantic-kerneland the Microsoft Agent Framework (pip install semantic-kernel agent-framework), or the repo’s editable packages if you are developing locally. - Service credentials exposed through environment variables (for example
OPENAI_API_KEY,AZURE_OPENAI_ENDPOINT,AZURE_OPENAI_API_KEY, or Copilot Studio auth settings).
Running Single-Agent Samples
From the repository root:
python samples/semantic-kernel-migration/chat_completion/01_basic_chat_completion.py
Every script accepts no CLI arguments and will first call the SK implementation, followed by the AF version. Adjust the prompt or credentials inside the file as necessary before running.
Running Orchestration & Workflow Samples
Advanced comparisons are split between samantic-kernel-migration/orchestrations (Sequential, Concurrent, Magentic) and samantic-kernel-migration/processes (fan-out/fan-in, nested). You can run them directly, or isolate dependencies in a throwaway virtual environment:
cd samples/semantic-kernel-migration
uv venv --python 3.10 .venv-migration
source .venv-migration/bin/activate
uv pip install semantic-kernel agent-framework
uv run python orchestrations/sequential.py
uv run python processes/fan_out_fan_in_process.py
Swap the script path for any other workflow or process sample. Deactivate the sandbox with deactivate when you are finished.
Tips for Migration
- Keep the original SK sample open while iterating on the AF equivalent; the code is intentionally formatted so you can copy/paste across SDKs.
- Sessions/conversation state are explicit in AF. When porting SK code that relies on implicit session reuse, call
agent.create_session()and pass it into eachruncall. - Tools map cleanly: SK
@kernel_functionplugins translate to AF@toolcallables. Hosted tools (code interpreter, web search, MCP) are available only in AF—introduce them once parity is achieved. - For multi-agent orchestration, AF workflows expose checkpoints and resume capabilities that SK Process/Team abstractions do not. Use the workflow samples as a blueprint when modernizing complex agent graphs.