diff --git a/.github/upgrades/prompts/SemanticKernelToAgentFramework.md b/.github/upgrades/prompts/SemanticKernelToAgentFramework.md
index 1b28626ea8..a8c3dcb0a6 100644
--- a/.github/upgrades/prompts/SemanticKernelToAgentFramework.md
+++ b/.github/upgrades/prompts/SemanticKernelToAgentFramework.md
@@ -142,9 +142,9 @@ Replace these Semantic Kernel agent classes with their Agent Framework equivalen
|----------------------|----------------------------|-------------------|
| `IChatCompletionService` | `IChatClient` | Convert to `IChatClient` using `chatService.AsChatClient()` extensions |
| `ChatCompletionAgent` | `ChatClientAgent` | Remove `Kernel` parameter, add `IChatClient` parameter |
-| `OpenAIAssistantAgent` | `AIAgent` (via extension) | **New**: `OpenAIClient.GetAssistantClient().CreateAIAgent()`
**Existing**: `OpenAIClient.GetAssistantClient().GetAIAgent(assistantId)` |
+| `OpenAIAssistantAgent` | `AIAgent` (via extension) | ⚠️ **Deprecated** - Use Responses API instead.
**New**: `OpenAIClient.GetAssistantClient().CreateAIAgent()`
**Existing**: `OpenAIClient.GetAssistantClient().GetAIAgent(assistantId)` |
| `AzureAIAgent` | `AIAgent` (via extension) | **New**: `PersistentAgentsClient.CreateAIAgent()`
**Existing**: `PersistentAgentsClient.GetAIAgent(agentId)` |
-| `OpenAIResponseAgent` | `AIAgent` (via extension) | Replace with `OpenAIClient.GetOpenAIResponseClient().CreateAIAgent()` |
+| `OpenAIResponseAgent` | `AIAgent` (via extension) | Replace with `OpenAIClient.GetOpenAIResponseClient(modelId).CreateAIAgent()` |
| `A2AAgent` | `AIAgent` (via extension) | Replace with `A2ACardResolver.GetAIAgentAsync()` |
| `BedrockAgent` | Not supported | Custom implementation required |
@@ -529,14 +529,14 @@ AIAgent agent = new OpenAIClient(apiKey)
.CreateAIAgent(instructions: instructions);
```
-**OpenAI Assistants (New):**
+**OpenAI Assistants (New):** ⚠️ *Deprecated - Use Responses API instead*
```csharp
AIAgent agent = new OpenAIClient(apiKey)
.GetAssistantClient()
.CreateAIAgent(modelId, instructions: instructions);
```
-**OpenAI Assistants (Existing):**
+**OpenAI Assistants (Existing):** ⚠️ *Deprecated - Use Responses API instead*
```csharp
AIAgent agent = new OpenAIClient(apiKey)
.GetAssistantClient()
@@ -562,6 +562,20 @@ AIAgent agent = await new PersistentAgentsClient(endpoint, credential)
.GetAIAgentAsync(agentId);
```
+**OpenAI Responses:** *(Recommended for OpenAI)*
+```csharp
+AIAgent agent = new OpenAIClient(apiKey)
+ .GetOpenAIResponseClient(modelId)
+ .CreateAIAgent(instructions: instructions);
+```
+
+**Azure OpenAI Responses:** *(Recommended for Azure OpenAI)*
+```csharp
+AIAgent agent = new AzureOpenAIClient(endpoint, credential)
+ .GetOpenAIResponseClient(deploymentName)
+ .CreateAIAgent(instructions: instructions);
+```
+
**A2A:**
```csharp
A2ACardResolver resolver = new(new Uri(agentHost));
@@ -762,35 +776,57 @@ await foreach (var content in agent.InvokeAsync(userInput, thread))
**With this Agent Framework CodeInterpreter pattern:**
```csharp
+using System.Text;
+using Microsoft.Agents.AI;
+using Microsoft.Extensions.AI;
+
var result = await agent.RunAsync(userInput, thread);
Console.WriteLine(result);
-// Extract chat response MEAI type via first level breaking glass
-var chatResponse = result.RawRepresentation as ChatResponse;
+// Get the CodeInterpreterToolCallContent (code input)
+CodeInterpreterToolCallContent? toolCallContent = result.Messages
+ .SelectMany(m => m.Contents)
+ .OfType()
+ .FirstOrDefault();
+
+if (toolCallContent?.Inputs is not null)
+{
+ DataContent? codeInput = toolCallContent.Inputs.OfType().FirstOrDefault();
+ if (codeInput?.HasTopLevelMediaType("text") ?? false)
+ {
+ Console.WriteLine($"Code Input: {Encoding.UTF8.GetString(codeInput.Data.ToArray())}");
+ }
+}
-// Extract underlying SDK updates via second level breaking glass
-var underlyingStreamingUpdates = chatResponse?.RawRepresentation as IEnumerable