Update Foundry branding (#6999)

Replace user-facing Azure AI Foundry branding with Microsoft Foundry across docs, samples, comments, and display text while preserving technical identifiers.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Evan Mattson <35585003+moonbox3@users.noreply.github.com>
This commit is contained in:
Nick Brady
2026-07-13 23:44:26 -07:00
committed by GitHub
parent df198005fd
commit 54617557e6
224 changed files with 332 additions and 332 deletions
@@ -23,16 +23,16 @@ For each project that needs to be migrated, you need to do the following:
- Identify the specific Semantic Kernel agent types being used:
- `ChatCompletionAgent``ChatClientAgent`
- `OpenAIAssistantAgent``assistantsClient.CreateAIAgent()` (via OpenAI Assistants client extension)
- `AzureAIAgent``persistentAgentsClient.CreateAIAgent()` (via Azure AI Foundry client extension)
- `AzureAIAgent``persistentAgentsClient.CreateAIAgent()` (via Microsoft Foundry client extension)
- `OpenAIResponseAgent``responsesClient.CreateAIAgent()` (via OpenAI Responses client extension)
- `A2AAgent``AIAgent` (via A2A card resolver)
- `BedrockAgent` → Custom implementation required (not supported)
- Determine if agents are being created new or retrieved from hosted services:
- **New agents**: Use `CreateAIAgent()` methods
- **Existing hosted agents**: Use `GetAIAgent(agentId)` methods for OpenAI Assistants and Azure AI Foundry
- **Existing hosted agents**: Use `GetAIAgent(agentId)` methods for OpenAI Assistants and Microsoft Foundry
</agent_type_identification>
- Determine the AI provider being used (OpenAI, Azure OpenAI, Azure AI Foundry, etc.)
- Determine the AI provider being used (OpenAI, Azure OpenAI, Microsoft Foundry, etc.)
- Analyze tool/function registration patterns
- Review thread management and invocation patterns
@@ -90,7 +90,7 @@ below in wrong order or skip any of them):
you generate report when migration complete. Report should contain:
- all project dependencies changes (mention what was changed, added or removed, including provider-specific packages)
- all code files that were changed (mention what was changed in the file, if it was not changed, just mention that the file was not changed)
- provider-specific migration patterns used (OpenAI, Azure OpenAI, Azure AI Foundry, A2A, ONNX, etc.)
- provider-specific migration patterns used (OpenAI, Azure OpenAI, Microsoft Foundry, A2A, ONNX, etc.)
- all cases where you could not convert the code because of unsupported features and you were unable to find a workaround
- unsupported providers that require custom implementation (Bedrock, CopilotStudio)
- breaking glass pattern migrations (InnerContent → RawRepresentation) and any CodeInterpreter or advanced tool usage
@@ -223,7 +223,7 @@ using Microsoft.Agents.AI;
// Provider-specific namespaces (add only if needed):
using OpenAI; // For OpenAI provider
using Azure.AI.OpenAI; // For Azure OpenAI provider
using Azure.AI.Agents.Persistent; // For Azure AI Foundry provider
using Azure.AI.Agents.Persistent; // For Microsoft Foundry provider
using Azure.Identity; // For Azure authentication
```
</configuration_changes>
@@ -499,7 +499,7 @@ For every thread created if there's intent to cleanup, the caller should track a
var assistantClient = new OpenAIClient(apiKey).GetAssistantClient();
await assistantClient.DeleteThreadAsync(thread.ConversationId);
// For Azure AI Foundry (when cleanup is needed):
// For Microsoft Foundry (when cleanup is needed):
var persistentClient = new PersistentAgentsClient(endpoint, credential);
await persistentClient.Threads.DeleteThreadAsync(thread.ConversationId);
@@ -514,7 +514,7 @@ await persistentClient.Threads.DeleteThreadAsync(thread.ConversationId);
1. Remove `thread.DeleteAsync()` calls
2. Use provider-specific client for cleanup when required
3. Access thread ID via `thread.ConversationId` property
4. Only implement cleanup for providers that require it (Assistants, Azure AI Foundry)
4. Only implement cleanup for providers that require it (Assistants, Microsoft Foundry)
</api_changes>
### Provider-Specific Creation Patterns
@@ -550,13 +550,13 @@ AIAgent agent = new AzureOpenAIClient(endpoint, credential)
.CreateAIAgent(instructions: instructions);
```
**Azure AI Foundry (New):**
**Microsoft Foundry (New):**
```csharp
AIAgent agent = new PersistentAgentsClient(endpoint, credential)
.CreateAIAgent(model: deploymentName, instructions: instructions);
```
**Azure AI Foundry (Existing):**
**Microsoft Foundry (Existing):**
```csharp
AIAgent agent = await new PersistentAgentsClient(endpoint, credential)
.GetAIAgentAsync(agentId);
@@ -1079,7 +1079,7 @@ AgentThread thread = agent.GetNewThread();
```
</api_changes>
### 4. Azure AI Foundry (AzureAIAgent) Migration
### 4. Microsoft Foundry (AzureAIAgent) Migration
<configuration_changes>
**Remove Semantic Kernel Packages:**
+2 -2
View File
@@ -312,7 +312,7 @@ jobs:
AZURE_OPENAI_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_DEPLOYMENT_NAME }}
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_DEPLOYMENT_NAME }}
AZURE_OPENAI_ENDPOINT: ${{ vars.AZURE_OPENAI_ENDPOINT }}
# Azure AI Foundry
# Microsoft Foundry
AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }}
AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZURE_AI_MODEL_DEPLOYMENT_NAME }}
AZURE_AI_BING_CONNECTION_ID: ${{ vars.AZURE_AI_BING_CONNECTION_ID }}
@@ -528,7 +528,7 @@ jobs:
AZURE_OPENAI_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_DEPLOYMENT_NAME }}
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_DEPLOYMENT_NAME }}
AZURE_OPENAI_ENDPOINT: ${{ vars.AZURE_OPENAI_ENDPOINT }}
# Azure AI Foundry
# Microsoft Foundry
AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }}
AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZURE_AI_MODEL_DEPLOYMENT_NAME }}
AZURE_AI_BING_CONNECTION_ID: ${{ vars.AZURE_AI_BING_CONNECTION_ID }}
+1 -1
View File
@@ -105,7 +105,7 @@ jobs:
AZURE_OPENAI_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_DEPLOYMENT_NAME }}
AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ vars.AZURE_OPENAI_DEPLOYMENT_NAME }}
AZURE_OPENAI_ENDPOINT: ${{ vars.AZURE_OPENAI_ENDPOINT }}
# Azure AI Foundry
# Microsoft Foundry
AZURE_AI_PROJECT_ENDPOINT: ${{ vars.AZURE_AI_PROJECT_ENDPOINT }}
AZURE_AI_MODEL_DEPLOYMENT_NAME: ${{ vars.AZURE_AI_MODEL_DEPLOYMENT_NAME }}
AZURE_AI_BING_CONNECTION_ID: ${{ vars.AZURE_AI_BING_CONNECTION_ID }}
+2 -2
View File
@@ -2,7 +2,7 @@
**What is Microsoft Agent Framework?**
Microsoft Agent Framework is a comprehensive multi-language (C#/.NET and Python) framework for building, orchestrating, and deploying AI agents and multi-agent workflows. The system takes user instructions and conversation inputs and produces intelligent responses through AI agents that can integrate with various LLM providers (OpenAI, Azure OpenAI, Azure AI Foundry). It provides both simple chat agents and complex multi-agent workflows with graph-based orchestration.
Microsoft Agent Framework is a comprehensive multi-language (C#/.NET and Python) framework for building, orchestrating, and deploying AI agents and multi-agent workflows. The system takes user instructions and conversation inputs and produces intelligent responses through AI agents that can integrate with various LLM providers (OpenAI, Azure OpenAI, Microsoft Foundry). It provides both simple chat agents and complex multi-agent workflows with graph-based orchestration.
**What can Microsoft Agent Framework do?**
@@ -12,7 +12,7 @@ The framework offers:
- **Multi-Agent Orchestration**: Group chat, sequential, concurrent, and handoff patterns
- **Graph-based Workflows**: Connect agents and deterministic functions using data flows with streaming, checkpointing, time-travel, and Human-in-the-loop
- **Extensibility Framework**: Extend with native functions, A2A, Model Context Protocol (MCP)
- **LLM Integration**: Support for OpenAI, Azure OpenAI, Azure AI Foundry, and other providers
- **LLM Integration**: Support for OpenAI, Azure OpenAI, Microsoft Foundry, and other providers
- **Runtime Support**: Both in-process and distributed agent execution
**What is/are Microsoft Agent Framework's intended use(s)?**
+8 -8
View File
@@ -113,7 +113,7 @@ Implement a hybrid strategy where common tools use generic `AITool`-derived abst
### AI Agent Tool Types Availability
Tool Type | Azure AI Foundry Agent Service | OpenAI Assistant API | OpenAI ChatCompletion API | OpenAI Responses API | Amazon Bedrock Agents | Google | Anthropic | Description
Tool Type | Microsoft Foundry Agent Service | OpenAI Assistant API | OpenAI ChatCompletion API | OpenAI Responses API | Amazon Bedrock Agents | Google | Anthropic | Description
-- | -- | -- | -- | -- | -- | -- | -- | --
Function Calling | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | Enables custom, stateless functions to define specific agent behaviors.
Code Interpreter | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | Allows agents to execute code for tasks like data analysis or problem-solving.
@@ -132,7 +132,7 @@ Image Generation | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | Generates or edits
#### Function Calling
<details>
<summary>Azure AI Foundry Agent Service</summary>
<summary>Microsoft Foundry Agent Service</summary>
Source: <a href="https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/function-calling?pivots=rest">https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/function-calling?pivots=rest</a>
Message Request:
@@ -401,7 +401,7 @@ Image Generation | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | Generates or edits
#### Code Interpreter
<details>
<summary>Azure AI Foundry Agent Service</summary>
<summary>Microsoft Foundry Agent Service</summary>
<p>Source: <a href="https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/code-interpreter-samples?pivots=rest-api">https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/code-interpreter-samples?pivots=rest-api</a></p>
<p>.NET Support: ✅</p>
@@ -709,7 +709,7 @@ Image Generation | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | Generates or edits
#### Search and Retrieval
<details>
<summary>Azure AI Foundry Agent Service</summary>
<summary>Microsoft Foundry Agent Service</summary>
Source: <a href="https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/file-search-upload-files?pivots=rest">https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/file-search-upload-files?pivots=rest</a>
File Search Request:
@@ -1083,7 +1083,7 @@ Image Generation | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | Generates or edits
#### Web Search
<details>
<summary>Azure AI Foundry Agent Service</summary>
<summary>Microsoft Foundry Agent Service</summary>
Source: <a href="https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/bing-code-samples?pivots=rest">https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/bing-code-samples?pivots=rest</a>
Bing Search Message Request:
@@ -1630,7 +1630,7 @@ Image Generation | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | Generates or edits
#### OpenAPI Spec Tool
<details>
<summary>Azure AI Foundry Agent Service</summary>
<summary>Microsoft Foundry Agent Service</summary>
Source: <a href="https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/openapi-spec-samples?pivots=rest-api">https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/openapi-spec-samples?pivots=rest-api</a><br>
Source: <a href="https://learn.microsoft.com/en-us/rest/api/aifoundry/aiagents/run-steps/get-run-step?view=rest-aifoundry-aiagents-v1&tabs=HTTP#runstepopenapitoolcall">https://learn.microsoft.com/en-us/rest/api/aifoundry/aiagents/run-steps/get-run-step?view=rest-aifoundry-aiagents-v1&tabs=HTTP#runstepopenapitoolcall</a>
@@ -1712,7 +1712,7 @@ Image Generation | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | Generates or edits
#### Stateful Functions
<details>
<summary>Azure AI Foundry Agent Service</summary>
<summary>Microsoft Foundry Agent Service</summary>
Source: <a href="https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/azure-functions-samples?pivots=rest">https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/azure-functions-samples?pivots=rest</a>
Message Request:
@@ -1832,7 +1832,7 @@ Image Generation | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | Generates or edits
#### Microsoft Fabric
<details>
<summary>Azure AI Foundry Agent Service</summary>
<summary>Microsoft Foundry Agent Service</summary>
Source: <a href="https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/fabric?pivots=rest">https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/fabric?pivots=rest</a>
Message Request:
+1 -1
View File
@@ -25,7 +25,7 @@ See various features that would need to be supported via this type of mechanism,
- Also see [the openai human-in-the-loop guide](https://openai.github.io/openai-agents-js/guides/human-in-the-loop/#approval-requests).
- Also see [the openai MCP guide](https://openai.github.io/openai-agents-js/guides/mcp/#optional-approval-flow).
- Also see [MCP Approval Requests from OpenAI](https://platform.openai.com/docs/guides/tools-remote-mcp#approvals).
- Also see [Azure AI Foundry MCP Approvals](https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/model-context-protocol-samples?pivots=rest#submit-your-approval).
- Also see [Microsoft Foundry MCP Approvals](https://learn.microsoft.com/en-us/azure/ai-foundry/agents/how-to/tools/model-context-protocol-samples?pivots=rest#submit-your-approval).
- Also see [MCP Elicitation requests](https://modelcontextprotocol.io/specification/draft/client/elicitation)
## Decision Drivers
@@ -57,7 +57,7 @@ This section describes different options for various aspects required to add lon
### 1. Methods for Working with Long-Running Operations
Based on the analysis of existing APIs that support long-running operations (such as OpenAI Responses, Azure AI Foundry Agents, and A2A),
Based on the analysis of existing APIs that support long-running operations (such as OpenAI Responses, Microsoft Foundry Agents, and A2A),
the following operations are used for working with long-running operations:
- Common operations:
- **Start Long-Running Execution**: Initiates a long-running operation and returns its Id.
@@ -757,7 +757,7 @@ Some of them natively support resuming streaming from a specific point in the st
| API | Can Resume Streaming | Model |
|-------------------------|--------------------------------------|------------------------------------------------------------------------------------------------------------|
| OpenAI Responses | Yes | StreamingResponseUpdate.**SequenceNumber** + GetResponseStreamingAsync(responseId, **startingAfter**, ct) |
| Azure AI Foundry Agents | Emulated<sup>2</sup> | RunStep.**Id** + custom pseudo code: client.Runs.GetRunStepsAsync(...).AllStepsAfter(**stepId**) |
| Microsoft Foundry Agents | Emulated<sup>2</sup> | RunStep.**Id** + custom pseudo code: client.Runs.GetRunStepsAsync(...).AllStepsAfter(**stepId**) |
| A2A | Implementation dependent<sup>1</sup> | |
<sup>1</sup> The [A2A specification](https://github.com/a2aproject/A2A/blob/main/docs/topics/streaming-and-async.md#1-streaming-with-server-sent-events-sse)
@@ -765,7 +765,7 @@ allows an A2A agent implementation to decide how to handle streaming resumption:
a task is still active (and the server hasn't sent a final: true event for that phase), the client can attempt to reconnect to the stream using the tasks/resubscribe RPC method.
The server's behavior regarding missed events during the disconnection period (e.g., whether it backfills or only sends new updates) is implementation-dependent._
<sup>2</sup> The Azure AI Foundry Agents API has an API to start a streaming run but does not have an API to resume streaming from a specific point in the stream.
<sup>2</sup> The Microsoft Foundry Agents API has an API to start a streaming run but does not have an API to resume streaming from a specific point in the stream.
However, it has non-streaming APIs to access already started runs, which can be used to emulate streaming resumption by accessing a run and its steps and streaming all the steps after a specific step.
#### Required Changes
@@ -828,7 +828,7 @@ Sequence of updates from OpenAI Responses API to answer the question "What time
| resp_2 | 10 | resp.output_item.done | - | InProgress | |
| resp_2 | 11 | resp.completed | Completed | Completed | |
Sequence of updates from Azure AI Foundry Agents API to answer the question "What time is it?" using a function call:
Sequence of updates from Microsoft Foundry Agents API to answer the question "What time is it?" using a function call:
| Id | SN | UpdateKind | Run.Status | Step.Status | Message.Status | ChatResponseUpdate.Status | Description |
|--------|---------|-------------------|----------------|-------------|-----------------|---------------------------|---------------------------------------------------|
| run_1 | - | RunCreated | Queued | - | - | Queued | |
@@ -852,7 +852,7 @@ Sequence of updates from Azure AI Foundry Agents API to answer the question "Wha
To support long-running operations, the following values need to be returned by the GetResponseAsync and GetStreamingResponseAsync methods:
- `ResponseId` - identifier of the long-running operation or an entity representing it, such as a task.
- `ConversationId` - identifier of the conversation or thread the long-running operation is part of. Some APIs, like Azure AI Foundry Agents, use
- `ConversationId` - identifier of the conversation or thread the long-running operation is part of. Some APIs, like Microsoft Foundry Agents, use
this identifier together with the ResponseId to identify a run.
- `SequenceNumber` - identifier of an update within a stream of updates. This is required to support streaming resumption by the GetStreamingResponseAsync method only.
- `Status` - status of the long-running operation: whether it is queued, running, failed, cancelled, completed, etc.
@@ -1203,7 +1203,7 @@ response = await agent.CancelRunAsync(response.ResponseId, new AgentCancelRunOpt
In case an agent supports either or both cancellation and deletion of long-running operations, it will override the corresponding methods.
Otherwise, it won't override them, and the base implementations will return null by default.
Some agents, for example Azure AI Foundry Agents, require the thread identifier to cancel a run. To accommodate this requirement, the `CancelRunAsync` method
Some agents, for example Microsoft Foundry Agents, require the thread identifier to cancel a run. To accommodate this requirement, the `CancelRunAsync` method
accepts an optional `AgentCancelRunOptions` parameter that allows callers to specify the thread associated with the run they want to cancel.
```csharp
@@ -1574,7 +1574,7 @@ the thread is provided with background operations consistently for all runs.
</details>
<details>
<summary>Azure AI Foundry Agents</summary>
<summary>Microsoft Foundry Agents</summary>
- Create a thread and run the agent against it and wait for it to complete using polling:
```csharp
@@ -34,11 +34,11 @@ Key changes:
1. **New `agent-framework-openai` package** with dependencies on `agent-framework-core`, `openai`, and `packaging` only.
2. **Class renames**: `OpenAIResponsesClient``OpenAIChatClient` (Responses API), `OpenAIChatClient``OpenAIChatCompletionClient` (Chat Completions API). Old names remain as deprecated aliases.
3. **Deprecated classes**: `OpenAIAssistantsClient`, all `AzureOpenAI*Client` classes, `AzureAIClient`, `AzureAIAgentClient`, and `AzureAIProjectAgentProvider` are marked deprecated.
4. **New `FoundryChatClient`** in azure-ai for Azure AI Foundry Responses API access, built on `RawFoundryChatClient(RawOpenAIChatClient)`.
4. **New `FoundryChatClient`** in azure-ai for Microsoft Foundry Responses API access, built on `RawFoundryChatClient(RawOpenAIChatClient)`.
5. **All deprecated `AzureOpenAI*` classes** consolidated into a single file (`_deprecated_azure_openai.py`) in the azure-ai package for clean future deletion.
6. **Core's `agent_framework.openai` and `agent_framework.azure` namespaces** become lazy-loading gateways, preserving backward-compatible import paths while removing hard dependencies.
7. **Unified `model` parameter** replaces `model_id` (OpenAI), `deployment_name` (Azure OpenAI), and `model_deployment_name` (Azure AI) across all client constructors. The term `model` is intentionally generic: it naturally maps to an OpenAI model name *and* to an Azure OpenAI deployment name, making it straightforward to use `OpenAIChatClient` with either OpenAI or Azure OpenAI backends (via `AsyncAzureOpenAI`). Environment variables are similarly unified (e.g., `OPENAI_MODEL` instead of separate `OPENAI_CHAT_MODEL_ID` / `OPENAI_CHAT_COMPLETION_MODEL_ID`).
8. **`FoundryAgent`** replaces the pattern of `Agent(client=AzureAIClient(...))` for connecting to pre-configured agents in Azure AI Foundry (PromptAgents and HostedAgents). The underlying `RawFoundryAgentChatClient` is an implementation detail — most users interact only with `FoundryAgent`. `AzureAIAgentClient` is separately deprecated as it refers to the V1 Agents Service API. See below for design rationale.
8. **`FoundryAgent`** replaces the pattern of `Agent(client=AzureAIClient(...))` for connecting to pre-configured agents in Microsoft Foundry (PromptAgents and HostedAgents). The underlying `RawFoundryAgentChatClient` is an implementation detail — most users interact only with `FoundryAgent`. `AzureAIAgentClient` is separately deprecated as it refers to the V1 Agents Service API. See below for design rationale.
### Foundry Agent Design: `FoundryAgentClient` vs `FoundryAgent`
@@ -7,11 +7,11 @@ consulted: Pratyush Mishra, Shivam Shrivastava, Manni Arora (Centrica eval scena
informed: Agent Framework team, Foundry Evals team
---
# Agent Evaluation Architecture with Azure AI Foundry Integration
# Agent Evaluation Architecture with Microsoft Foundry Integration
## Context and Problem Statement
Azure AI Foundry provides a rich evaluation service for AI agents — built-in evaluators for agent behavior (task adherence, intent resolution), tool usage (tool call accuracy, tool selection), quality (coherence, fluency, relevance), and safety (violence, self-harm, prohibited actions). Results are viewable in the Foundry portal with dashboards and comparison views.
Microsoft Foundry provides a rich evaluation service for AI agents — built-in evaluators for agent behavior (task adherence, intent resolution), tool usage (tool call accuracy, tool selection), quality (coherence, fluency, relevance), and safety (violence, self-harm, prohibited actions). Results are viewable in the Foundry portal with dashboards and comparison views.
However, using Foundry Evals with an agent-framework agent today requires significant manual effort. Developers must:
@@ -445,7 +445,7 @@ These factorings produce different scores for the same conversation. The framewo
### Azure AI: FoundryEvals
`Evaluator` implementation backed by Azure AI Foundry:
`Evaluator` implementation backed by Microsoft Foundry:
```python
class FoundryEvals:
@@ -812,4 +812,4 @@ public sealed class EvalItem
## More Information
- [Foundry Evals documentation](https://learn.microsoft.com/azure/ai-foundry/concepts/evaluation-approach-gen-ai) — Azure AI Foundry evaluation overview
- [Foundry Evals documentation](https://learn.microsoft.com/azure/ai-foundry/concepts/evaluation-approach-gen-ai) — Microsoft Foundry evaluation overview
@@ -9,7 +9,7 @@ deciders: evmattso
## What is the goal of this feature?
Enable Agent Framework users to consume Foundry **toolboxes** — named, versioned bundles of tool definitions stored server-side in an Azure AI Foundry project — directly from `FoundryChatClient`, without dropping to the raw `azure-ai-projects` SDK.
Enable Agent Framework users to consume Foundry **toolboxes** — named, versioned bundles of tool definitions stored server-side in a Microsoft Foundry project — directly from `FoundryChatClient`, without dropping to the raw `azure-ai-projects` SDK.
A user who has configured a toolbox in the Foundry portal (or via the raw SDK) should be able to load it into an agent with a single call:
+1 -1
View File
@@ -837,7 +837,7 @@ internal static class AgentsSamples
ProjectPath = "samples/02-agents/Agents/Agent_Step15_DeepResearch",
RequiredEnvironmentVariables = ["AZURE_AI_PROJECT_ENDPOINT", "AZURE_AI_MODEL_DEPLOYMENT_NAME", "AZURE_AI_BING_CONNECTION_ID"],
OptionalEnvironmentVariables = ["AZURE_AI_REASONING_DEPLOYMENT_NAME"],
SkipReason = "Requires Azure AI Foundry project with Bing search connection.",
SkipReason = "Requires Microsoft Foundry project with Bing search connection.",
},
new SampleDefinition
+1 -1
View File
@@ -19,7 +19,7 @@
// Pre-build the solution before running, or pass --build to avoid missing build output failures.
//
// Required environment variables (for AI-powered verification):
// FOUNDRY_PROJECT_ENDPOINT — Your Azure AI Foundry project endpoint
// FOUNDRY_PROJECT_ENDPOINT — Your Microsoft Foundry project endpoint
// FOUNDRY_MODEL — Model deployment name (optional, defaults to gpt-5.4-mini)
using System.Diagnostics;
+1 -1
View File
@@ -130,7 +130,7 @@ internal static class WorkflowSamples
ProjectPath = "samples/03-workflows/Agents/FoundryAgent",
RequiredEnvironmentVariables = ["FOUNDRY_PROJECT_ENDPOINT"],
OptionalEnvironmentVariables = ["FOUNDRY_MODEL"],
SkipReason = "Requires Azure AI Foundry project endpoint.",
SkipReason = "Requires Microsoft Foundry project endpoint.",
},
new SampleDefinition
@@ -24,7 +24,7 @@ AIProjectClient aiProjectClient = new(
new Uri(endpoint),
new DefaultAzureCredential());
// Create an In-Memory vector store that uses the Azure AI Foundry embedding model to generate embeddings.
// Create an In-Memory vector store that uses the Microsoft Foundry embedding model to generate embeddings.
VectorStore vectorStore = new InMemoryVectorStore(new()
{
EmbeddingGenerator = aiProjectClient.GetProjectOpenAIClient().GetEmbeddingClient(embeddingDeploymentName).AsIEmbeddingGenerator()
@@ -25,7 +25,7 @@ AIProjectClient aiProjectClient = new(
new Uri(endpoint),
new DefaultAzureCredential());
// Create a Qdrant vector store that uses the Azure AI Foundry embedding model to generate embeddings.
// Create a Qdrant vector store that uses the Microsoft Foundry embedding model to generate embeddings.
QdrantClient client = new("localhost");
VectorStore vectorStore = new QdrantVectorStore(client, ownsClient: true, new()
{
@@ -3,7 +3,7 @@
// Structured Output — Configure agents to return typed JSON
//
// This sample shows how to configure a ChatClientAgent to produce
// structured output using JSON schema constraints with Azure AI Foundry.
// structured output using JSON schema constraints with Microsoft Foundry.
using System.ComponentModel;
using System.Text.Json;
@@ -1,6 +1,6 @@
// Copyright (c) Microsoft. All rights reserved.
// Agent Observability — OpenTelemetry tracing with Azure AI Foundry
// Agent Observability — OpenTelemetry tracing with Microsoft Foundry
//
// This sample shows how to instrument an AI agent with OpenTelemetry
// for distributed tracing and telemetry logging.
@@ -19,7 +19,7 @@ var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt
// Create a host builder that we will register services with and then run.
HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);
// Create the AI agent from the Azure AI Foundry project client.
// Create the AI agent from the Microsoft Foundry project client.
// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production.
// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid
// latency issues, unintended credential probing, and potential security risks from fallback mechanisms.
@@ -2,7 +2,7 @@
// Middleware — Chain multiple middleware layers on an agent
//
// This sample shows multiple middleware layers working together with Azure AI Foundry:
// This sample shows multiple middleware layers working together with Microsoft Foundry:
// chat client (global/per-request), agent run (PII filtering and guardrails),
// function invocation (logging and result overrides), human-in-the-loop
// approval workflows for sensitive function calls, and MessageAIContextProvider
@@ -15,7 +15,7 @@ using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
// Get Azure AI Foundry configuration from environment variables
// Get Microsoft Foundry configuration from environment variables
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
@@ -3,7 +3,7 @@
// Background Responses — Asynchronous agent execution with polling
//
// This sample shows how to use background responses with ChatClientAgent
// and Azure AI Foundry for non-blocking agent execution.
// and Microsoft Foundry for non-blocking agent execution.
using Azure.AI.Projects;
using Azure.Identity;
+1 -1
View File
@@ -18,7 +18,7 @@ Before you begin, ensure you have the following prerequisites:
- Azure CLI installed and authenticated (for Azure credential authentication)
- User has the required role to invoke models in the Foundry project.
**Note**: These samples use models hosted through Microsoft Foundry. For more information, see [Azure AI Foundry documentation](https://learn.microsoft.com/en-us/azure/ai-foundry/).
**Note**: These samples use models hosted through Microsoft Foundry. For more information, see [Microsoft Foundry documentation](https://learn.microsoft.com/en-us/azure/ai-foundry/).
**Note**: These samples use Azure CLI credentials for authentication. Make sure you're logged in with `az login` and have access to the Foundry project. For more information, see the [Azure CLI documentation](https://learn.microsoft.com/cli/azure/authenticate-azure-cli-interactively).
@@ -12,7 +12,7 @@ The simplest agent evaluation: create a Foundry agent, run it against test quest
- .NET 10 SDK or later
- Azure authentication available to `DefaultAzureCredential` (for local development, run `az login`)
- A deployed model in your Azure AI Foundry project
- A deployed model in your Microsoft Foundry project
Set the following environment variables:
@@ -1,6 +1,6 @@
# What this sample demonstrates
This sample demonstrates how to use a `HarnessAgent` with the Harness `AIContextProviders` (`TodoProvider` and `AgentModeProvider`) for interactive research tasks with web search capabilities powered by Azure AI Foundry. The `HarnessAgent` pre-configures function invocation, per-service-call chat history persistence, and context-window compaction.
This sample demonstrates how to use a `HarnessAgent` with the Harness `AIContextProviders` (`TodoProvider` and `AgentModeProvider`) for interactive research tasks with web search capabilities powered by Microsoft Foundry. The `HarnessAgent` pre-configures function invocation, per-service-call chat history persistence, and context-window compaction.
Key features showcased:
@@ -19,7 +19,7 @@ Key features showcased:
Before running this sample, ensure you have:
1. An Azure AI Foundry project with a deployed model (e.g., `gpt-5.4`)
1. A Microsoft Foundry project with a deployed model (e.g., `gpt-5.4`)
2. Azure CLI installed and authenticated (`az login`)
## Environment Variables
@@ -27,7 +27,7 @@ Before running this sample, ensure you have:
Set the following environment variables:
```bash
# Required: Your Azure AI Foundry OpenAI endpoint
# Required: Your Microsoft Foundry OpenAI endpoint
export AZURE_FOUNDRY_OPENAI_ENDPOINT="https://your-project.services.ai.azure.com/openai/v1/"
# Optional: Model deployment name (defaults to gpt-5.4)
@@ -32,7 +32,7 @@ A parent agent receives a list of stock tickers and uses a web-search background
## Prerequisites
- An Azure AI Foundry endpoint with an OpenAI model deployment
- A Microsoft Foundry endpoint with an OpenAI model deployment
- Set the following environment variables:
- `AZURE_FOUNDRY_OPENAI_ENDPOINT` — Your Foundry OpenAI endpoint URL
- `FOUNDRY_MODEL` — Model deployment name (defaults to `gpt-5.4`)
@@ -15,7 +15,7 @@ Key features showcased:
Before running this sample, ensure you have:
1. An Azure AI Foundry project with a deployed model (e.g., `gpt-5.4`)
1. A Microsoft Foundry project with a deployed model (e.g., `gpt-5.4`)
2. Azure CLI installed and authenticated (`az login`)
## Environment Variables
@@ -23,7 +23,7 @@ Before running this sample, ensure you have:
Set the following environment variables:
```bash
# Required: Your Azure AI Foundry OpenAI endpoint
# Required: Your Microsoft Foundry OpenAI endpoint
export AZURE_FOUNDRY_OPENAI_ENDPOINT="https://your-project.services.ai.azure.com/openai/v1/"
# Optional: Model deployment name (defaults to gpt-5.4)
@@ -10,14 +10,14 @@ The agent can plan tasks, manage modes, store memories, read/write files, search
## Prerequisites
- .NET 10 SDK
- An Azure AI Foundry project endpoint
- A Microsoft Foundry project endpoint
- KVM-capable host (the Hyperlight sandbox runs code in micro-VMs)
## Environment Variables
| Variable | Description |
|----------|-------------|
| `FOUNDRY_PROJECT_ENDPOINT` | Your Azure AI Foundry project endpoint |
| `FOUNDRY_PROJECT_ENDPOINT` | Your Microsoft Foundry project endpoint |
| `FOUNDRY_MODEL` | Model deployment name (default: `gpt-5.4`) |
## Running
@@ -32,7 +32,7 @@ The Python sample in [microsoft/agent-framework#6174](https://github.com/microso
Before running this sample, ensure you have:
1. An Azure AI Foundry project with a deployed model (e.g., `gpt-5.4`)
1. A Microsoft Foundry project with a deployed model (e.g., `gpt-5.4`)
2. Azure CLI installed and authenticated (`az login`)
## Environment Variables
@@ -40,7 +40,7 @@ Before running this sample, ensure you have:
Set the following environment variables:
```bash
# Required: Your Azure AI Foundry project endpoint
# Required: Your Microsoft Foundry project endpoint
export AZURE_AI_PROJECT_ENDPOINT="https://your-project.services.ai.azure.com/api/projects/your-project"
# Optional: Model deployment name (defaults to gpt-5.4)
@@ -31,7 +31,7 @@ public static class Program
{
private static async Task Main()
{
// Set up the Azure AI Foundry client
// Set up the Microsoft Foundry client
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential());
@@ -37,7 +37,7 @@ public static class Program
{
private static async Task Main()
{
// Set up the Azure AI Foundry client
// Set up the Microsoft Foundry client
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential());
@@ -34,7 +34,7 @@ public static class Program
{
private static async Task Main()
{
// Set up the Azure AI Foundry client
// Set up the Microsoft Foundry client
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential());
@@ -35,7 +35,7 @@ public static class Program
{
private static async Task Main()
{
// Set up the Azure AI Foundry client
// Set up the Microsoft Foundry client
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential());
@@ -37,7 +37,7 @@ public static class Program
private static async Task Main()
{
// Set up the Azure AI Foundry client
// Set up the Microsoft Foundry client
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential());
@@ -70,7 +70,7 @@ public static class Program
using var traceProvider = traceProviderBuilder.Build();
// Set up the Azure AI Foundry client
// Set up the Microsoft Foundry client
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential());
@@ -18,7 +18,7 @@ namespace WorkflowMagenticOrchestrationSample;
/// </summary>
/// <remarks>
/// Pre-requisites:
/// - An Azure AI Foundry project endpoint and model deployment must be configured.
/// - A Microsoft Foundry project endpoint and model deployment must be configured.
/// - Run <c>az login</c> before executing the sample.
/// </remarks>
public static class Program
@@ -15,7 +15,7 @@ This sample showcases the Magentic Orchestration Pattern in .NET, setting up a t
## Prerequisites
- `FOUNDRY_PROJECT_ENDPOINT` set to your Azure AI Foundry project endpoint
- `FOUNDRY_PROJECT_ENDPOINT` set to your Microsoft Foundry project endpoint
- `FOUNDRY_MODEL` set to your model deployment name (defaults to `gpt-5.4-mini`)
- `az login` completed before running the sample
@@ -21,13 +21,13 @@ namespace WorkflowAgentsInWorkflowsSample;
/// </summary>
/// <remarks>
/// Pre-requisites:
/// - An Azure AI Foundry project endpoint and model must be configured.
/// - A Microsoft Foundry project endpoint and model must be configured.
/// </remarks>
public static class Program
{
private static async Task Main()
{
// Set up the Azure AI Foundry client
// Set up the Microsoft Foundry client
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential());
@@ -16,13 +16,13 @@ namespace WorkflowAgentsInWorkflowsSample;
/// </summary>
/// <remarks>
/// Pre-requisites:
/// - An Azure AI Foundry project endpoint and model must be configured.
/// - A Microsoft Foundry project endpoint and model must be configured.
/// </remarks>
public static class Program
{
private static async Task Main()
{
// Set up the Azure AI Foundry client.
// Set up the Microsoft Foundry client.
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential());
@@ -31,7 +31,7 @@ namespace MixedWorkflowWithAgentsAndExecutors;
/// <remarks>
/// Pre-requisites:
/// - Previous foundational samples should be completed first.
/// - An Azure AI Foundry project endpoint and model must be configured.
/// - A Microsoft Foundry project endpoint and model must be configured.
/// </remarks>
public static class Program
{
@@ -40,7 +40,7 @@ public static class Program
{
Console.WriteLine("\n=== Mixed Workflow: Agents and Executors ===\n");
// Set up the Azure AI Foundry client
// Set up the Microsoft Foundry client
var endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential());
@@ -47,7 +47,7 @@ public static class Program
Console.WriteLine("\n=== Writer-Critic Iteration Workflow ===\n");
Console.WriteLine($"Writer and Critic will iterate up to {MaxIterations} times until approval.\n");
// Set up the Azure AI Foundry client
// Set up the Microsoft Foundry client
string endpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT") ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
string deploymentName = Environment.GetEnvironmentVariable("FOUNDRY_MODEL") ?? "gpt-5.4-mini";
AIProjectClient aiProjectClient = new(new Uri(endpoint), new DefaultAzureCredential());
@@ -119,7 +119,7 @@ internal static class Pages
</div>
<div id="chat"></div>
<form id="form">
<input id="input" placeholder="Try: 'What time is it?' or 'Search docs for Azure AI Foundry'" autocomplete="off" autofocus />
<input id="input" placeholder="Try: 'What time is it?' or 'Search docs for Microsoft Foundry'" autocomplete="off" autofocus />
<button type="submit">Send</button>
</form>
<div id="status"></div>
@@ -13,12 +13,12 @@ The WriterAgent is configured with HTTPS redirection so the Aspire DevUI integra
- [.NET 10 SDK](https://dotnet.microsoft.com/en-us/download/dotnet/10.0)
- [Aspire CLI](https://learn.microsoft.com/dotnet/aspire/fundamentals/setup-tooling)
- An Azure subscription with access to [Azure AI Foundry](https://learn.microsoft.com/azure/ai-studio/)
- An Azure subscription with access to [Microsoft Foundry](https://learn.microsoft.com/azure/ai-studio/)
- Azure CLI authenticated (`az login`)
## Azure AI Foundry configuration
## Microsoft Foundry configuration
The sample requires an Azure AI Foundry resource with a deployed `gpt-4.1` model. You have two options:
The sample requires a Microsoft Foundry resource with a deployed `gpt-4.1` model. You have two options:
### Option 1: Connect to an existing Foundry resource
@@ -54,7 +54,7 @@ Remove or comment out the `AsExisting` block in `DevUIIntegration.AppHost/Progra
// foundry.AsExisting(existingFoundryName, existingFoundryResourceGroup);
```
Aspire will provision a new Azure AI Foundry resource on startup. The DevUI resource uses `.WaitFor(foundry)` transitively through the agent services, so the frontend won't become available until provisioning completes. This can take several minutes on first run.
Aspire will provision a new Microsoft Foundry resource on startup. The DevUI resource uses `.WaitFor(foundry)` transitively through the agent services, so the frontend won't become available until provisioning completes. This can take several minutes on first run.
You still need to fill in the `Azure` section of `appsettings.json` (subscription, location, etc.) so Aspire knows where to create the resource.
@@ -1,6 +1,6 @@
// Copyright (c) Microsoft. All rights reserved.
// This sample evaluates a pre-existing Azure AI Foundry agent against a rubric evaluator
// This sample evaluates a pre-existing Microsoft Foundry agent against a rubric evaluator
// that was authored in the Foundry portal.
//
// Rubric evaluators are LLM-as-judge evaluators with custom scoring dimensions you define
@@ -9,7 +9,7 @@
// here by name and version.
//
// Prerequisites:
// - An Azure AI Foundry project with a deployed model.
// - A Microsoft Foundry project with a deployed model.
// - A registered Foundry agent in that project (the rubric was created against this agent).
// - A rubric evaluator already created in the Foundry portal.
// - .env (or environment) populated with the FOUNDRY_* variables below.
@@ -1,6 +1,6 @@
# Evaluation — Foundry Rubric
This sample evaluates a pre-existing Azure AI Foundry agent against a **rubric evaluator**
This sample evaluates a pre-existing Microsoft Foundry agent against a **rubric evaluator**
authored in the Foundry portal. Rubric evaluators are LLM-as-judge evaluators with custom
scoring dimensions you define for your domain; agent-framework references them by name and
version, mixes them with built-in evaluators, and exposes per-dimension scores you can gate
@@ -20,7 +20,7 @@ CI on.
- .NET 10 SDK or later.
- Azure CLI installed and authenticated (`az login`).
- An Azure AI Foundry project with a deployed model.
- A Microsoft Foundry project with a deployed model.
- A registered Foundry agent in that project (the agent the rubric was created against).
- A rubric evaluator created in the Foundry portal. Creating rubrics through the portal
currently requires picking a Foundry agent as the generation context, so this
@@ -19,7 +19,7 @@ using OpenAI.Evals;
namespace Microsoft.Agents.AI.Foundry;
/// <summary>
/// Azure AI Foundry evaluator provider that calls the Foundry Evals API.
/// Microsoft Foundry evaluator provider that calls the Foundry Evals API.
/// </summary>
/// <remarks>
/// <para>
@@ -28,7 +28,7 @@ namespace Microsoft.Agents.AI.Foundry;
/// (quality, safety, agent behavior, tool usage) are supported.
/// </para>
/// <para>
/// Results appear in the Azure AI Foundry portal with a report URL for detailed analysis.
/// Results appear in the Microsoft Foundry portal with a report URL for detailed analysis.
/// </para>
/// </remarks>
[UnconditionalSuppressMessage("Trimming", "IL2026", Justification = "Serializing Dictionary<string, object> for eval API payloads.")]
@@ -55,7 +55,7 @@ public sealed class FoundryEvals : IAgentEvaluator
/// <summary>
/// Initializes a new instance of the <see cref="FoundryEvals"/> class.
/// </summary>
/// <param name="projectClient">The Azure AI Foundry project client.</param>
/// <param name="projectClient">The Microsoft Foundry project client.</param>
/// <param name="model">Model deployment name for the LLM judge evaluator.</param>
/// <param name="evaluators">
/// Evaluator specs to use. Each entry can be a built-in evaluator name (string, for example
@@ -80,7 +80,7 @@ public sealed class FoundryEvals : IAgentEvaluator
/// <summary>
/// Initializes a new instance of the <see cref="FoundryEvals"/> class with a conversation splitter.
/// </summary>
/// <param name="projectClient">The Azure AI Foundry project client.</param>
/// <param name="projectClient">The Microsoft Foundry project client.</param>
/// <param name="model">Model deployment name for the LLM judge evaluator.</param>
/// <param name="splitter">
/// Default conversation splitter for multi-turn conversations.
@@ -104,7 +104,7 @@ public sealed class FoundryEvals : IAgentEvaluator
/// <summary>
/// Initializes a new instance of the <see cref="FoundryEvals"/> class with full configuration.
/// </summary>
/// <param name="projectClient">The Azure AI Foundry project client.</param>
/// <param name="projectClient">The Microsoft Foundry project client.</param>
/// <param name="model">Model deployment name for the LLM judge evaluator.</param>
/// <param name="splitter">
/// Default conversation splitter for multi-turn conversations.
@@ -141,7 +141,7 @@ public sealed class FoundryEvals : IAgentEvaluator
/// Initializes a new instance of the <see cref="FoundryEvals"/> class using built-in evaluator
/// names. Preserves source compatibility for callers that pass a <see cref="string"/> array.
/// </summary>
/// <param name="projectClient">The Azure AI Foundry project client.</param>
/// <param name="projectClient">The Microsoft Foundry project client.</param>
/// <param name="model">Model deployment name for the LLM judge evaluator.</param>
/// <param name="evaluators">Built-in evaluator names (for example <see cref="Relevance"/>).</param>
public FoundryEvals(AIProjectClient projectClient, string model, string[] evaluators)
@@ -153,7 +153,7 @@ public sealed class FoundryEvals : IAgentEvaluator
/// Initializes a new instance of the <see cref="FoundryEvals"/> class with a splitter and
/// built-in evaluator names.
/// </summary>
/// <param name="projectClient">The Azure AI Foundry project client.</param>
/// <param name="projectClient">The Microsoft Foundry project client.</param>
/// <param name="model">Model deployment name for the LLM judge evaluator.</param>
/// <param name="splitter">Default conversation splitter for multi-turn conversations.</param>
/// <param name="evaluators">Built-in evaluator names.</param>
@@ -170,7 +170,7 @@ public sealed class FoundryEvals : IAgentEvaluator
/// Initializes a new instance of the <see cref="FoundryEvals"/> class with full configuration
/// and built-in evaluator names.
/// </summary>
/// <param name="projectClient">The Azure AI Foundry project client.</param>
/// <param name="projectClient">The Microsoft Foundry project client.</param>
/// <param name="model">Model deployment name for the LLM judge evaluator.</param>
/// <param name="splitter">Default conversation splitter for multi-turn conversations.</param>
/// <param name="pollIntervalSeconds">Seconds between status polls.</param>
@@ -355,7 +355,7 @@ public sealed class FoundryEvals : IAgentEvaluator
/// Source-compat overload of <see cref="EvaluateTracesAsync(AIProjectClient, string, IEnumerable{string}, IEnumerable{string}, string, int, FoundryEvaluatorSpec[], string, double, double, CancellationToken)"/>
/// that accepts a <see cref="string"/> array of built-in evaluator names.
/// </summary>
/// <param name="projectClient">The Azure AI Foundry project client.</param>
/// <param name="projectClient">The Microsoft Foundry project client.</param>
/// <param name="model">Model deployment name for the LLM judge evaluator.</param>
/// <param name="responseIds">Evaluate specific Responses API response IDs.</param>
/// <param name="traceIds">Evaluate specific OTel trace IDs from App Insights.</param>
@@ -403,7 +403,7 @@ public sealed class FoundryEvals : IAgentEvaluator
/// <paramref name="lookbackHours"/> to evaluate recent activity.
/// </para>
/// </remarks>
/// <param name="projectClient">The Azure AI Foundry project client.</param>
/// <param name="projectClient">The Microsoft Foundry project client.</param>
/// <param name="model">Model deployment name for the LLM judge evaluator.</param>
/// <param name="responseIds">Evaluate specific Responses API response IDs.</param>
/// <param name="traceIds">Evaluate specific OTel trace IDs from App Insights.</param>
@@ -560,7 +560,7 @@ public sealed class FoundryEvals : IAgentEvaluator
/// Source-compat overload of <see cref="EvaluateFoundryTargetAsync(AIProjectClient, string, IDictionary{string, object}, IEnumerable{string}, FoundryEvaluatorSpec[], string, double, double, CancellationToken)"/>
/// that accepts a <see cref="string"/> array of built-in evaluator names.
/// </summary>
/// <param name="projectClient">The Azure AI Foundry project client.</param>
/// <param name="projectClient">The Microsoft Foundry project client.</param>
/// <param name="model">Model deployment name for the LLM judge evaluator.</param>
/// <param name="target">Target configuration (must include a "type" key).</param>
/// <param name="testQueries">Queries for Foundry to send to the target.</param>
@@ -598,7 +598,7 @@ public sealed class FoundryEvals : IAgentEvaluator
/// Foundry invokes the target, captures the output, and evaluates it.
/// Use this for scheduled evaluations, red teaming, and CI/CD quality gates.
/// </remarks>
/// <param name="projectClient">The Azure AI Foundry project client.</param>
/// <param name="projectClient">The Microsoft Foundry project client.</param>
/// <param name="model">Model deployment name for the LLM judge evaluator.</param>
/// <param name="target">Target configuration (must include a "type" key, e.g. "azure_ai_agent").</param>
/// <param name="testQueries">Queries for Foundry to send to the target.</param>
@@ -7,7 +7,7 @@ namespace Microsoft.Agents.AI;
/// </summary>
/// <remarks>
/// <para>
/// Rubric evaluators (such as the generated rubric evaluators produced by Azure AI Foundry's
/// Rubric evaluators (such as the generated rubric evaluators produced by Microsoft Foundry's
/// adaptive evals) emit one <see cref="RubricScore"/> per dimension per item, alongside an
/// overall weighted score. Attach instances to <see cref="EvalScoreResult.Dimensions"/> as
/// a typed view of the per-dimension breakdown returned by the provider
@@ -49,7 +49,7 @@ public sealed class TestConfiguration
/// <summary>Represents the configuration settings required to interact with the Azure AI service.</summary>
public sealed class AzureAIConfig
{
/// <summary>Gets or sets the endpoint of Azure AI Foundry project.</summary>
/// <summary>Gets or sets the endpoint of Microsoft Foundry project.</summary>
public string? Endpoint { get; set; }
/// <summary>Gets or sets the name of the model deployment.</summary>
@@ -24,7 +24,7 @@ public sealed class McpToolboxHostedAgentTests(McpToolboxHostedAgentFixture fixt
var agent = this._fixture.Agent;
// Act
var response = await agent.RunAsync("Use the Microsoft Learn MCP tool to look up 'Azure AI Foundry'. Reply with one short paragraph.");
var response = await agent.RunAsync("Use the Microsoft Learn MCP tool to look up 'Microsoft Foundry'. Reply with one short paragraph.");
// Assert
Assert.False(string.IsNullOrWhiteSpace(response.Text));
@@ -15,15 +15,15 @@ using Shared.IntegrationTests;
namespace Foundry.IntegrationTests.Memory;
/// <summary>
/// Integration tests for <see cref="FoundryMemoryProvider"/> against a configured Azure AI Foundry Memory service.
/// Integration tests for <see cref="FoundryMemoryProvider"/> against a configured Microsoft Foundry Memory service.
/// </summary>
/// <remarks>
/// These integration tests are skipped by default and require a live Azure AI Foundry Memory service.
/// These integration tests are skipped by default and require a live Microsoft Foundry Memory service.
/// The tests need to be updated to use the new AIAgent-based API pattern.
/// </remarks>
public sealed class FoundryMemoryProviderTests : IDisposable
{
private const string SkipReason = "Requires an Azure AI Foundry Memory service configured"; // Set to null to enable.
private const string SkipReason = "Requires a Microsoft Foundry Memory service configured"; // Set to null to enable.
private readonly AIProjectClient? _client;
private readonly string? _memoryStoreName;
+1 -1
View File
@@ -82,7 +82,7 @@ python/
- [anthropic](packages/anthropic/AGENTS.md) - Anthropic Claude API
- [bedrock](packages/bedrock/AGENTS.md) - AWS Bedrock
- [claude](packages/claude/AGENTS.md) - Claude Agent SDK
- [foundry_local](packages/foundry_local/AGENTS.md) - Azure AI Foundry Local
- [foundry_local](packages/foundry_local/AGENTS.md) - Microsoft Foundry Local
- [ollama](packages/ollama/AGENTS.md) - Local Ollama inference
### Azure Integrations
+2 -2
View File
@@ -500,7 +500,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- **agent-framework-openai**: New package extracted from core for OpenAI and Azure OpenAI provider support ([#4818](https://github.com/microsoft/agent-framework/pull/4818))
- **agent-framework-foundry**: New package for Azure AI Foundry integration ([#4818](https://github.com/microsoft/agent-framework/pull/4818))
- **agent-framework-foundry**: New package for Microsoft Foundry integration ([#4818](https://github.com/microsoft/agent-framework/pull/4818))
- **agent-framework-core**: Support `structuredContent` in MCP tool results and fix sampling options type ([#4763](https://github.com/microsoft/agent-framework/pull/4763))
- **agent-framework-core**: Include reasoning messages in `MESSAGES_SNAPSHOT` events ([#4844](https://github.com/microsoft/agent-framework/pull/4844))
- **agent-framework-core**: [BREAKING] Add context mode to `AgentExecutor` ([#4668](https://github.com/microsoft/agent-framework/pull/4668))
@@ -1325,7 +1325,7 @@ Release candidate for **agent-framework-core** and **agent-framework-azure-ai**
- First release of Agent Framework for Python
- agent-framework-core: Main abstractions, types and implementations for OpenAI and Azure OpenAI
- agent-framework-azure-ai: Integration with Azure AI Foundry Agents
- agent-framework-azure-ai: Integration with Microsoft Foundry Agents
- agent-framework-copilotstudio: Integration with Microsoft Copilot Studio agents
- agent-framework-a2a: Create A2A agents
- agent-framework-devui: Browser-based UI to chat with agents and workflows, with tracing visualization
+2 -2
View File
@@ -24,13 +24,13 @@ If you only need specific integrations, you can install at a more granular level
# also includes workflows and orchestrations
pip install agent-framework-core
# Core + Azure AI Foundry integration
# Core + Microsoft Foundry integration
pip install agent-framework-foundry
# Core + Microsoft Copilot Studio integration (preview package)
pip install agent-framework-copilotstudio --pre
# Core + both Microsoft Copilot Studio and Azure AI Foundry integration
# Core + both Microsoft Copilot Studio and Microsoft Foundry integration
pip install --pre agent-framework-copilotstudio agent-framework-foundry
```
@@ -175,7 +175,7 @@ Before you begin, ensure you have the following:
- Azure CLI installed and authenticated (for DefaultAzureCredential)
- User has the `Cognitive Services OpenAI Contributor` role for the Azure OpenAI resource
**Note**: These samples use Azure OpenAI models. For more information, see [how to deploy Azure OpenAI models with Azure AI Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/deploy-models-openai).
**Note**: These samples use Azure OpenAI models. For more information, see [how to deploy Azure OpenAI models with Microsoft Foundry](https://learn.microsoft.com/en-us/azure/ai-foundry/how-to/deploy-models-openai).
**Note**: These samples use `DefaultAzureCredential` for authentication. Make sure you're authenticated with Azure (e.g., via `az login`, or environment variables). For more information, see the [Azure Identity documentation](https://learn.microsoft.com/python/api/azure-identity/azure.identity.defaultazurecredential).
+1 -1
View File
@@ -5,7 +5,7 @@ Integration with Anthropic's Claude API.
## Main Classes
- **`AnthropicClient`** - Chat client for Anthropic Claude models
- **`AnthropicFoundryClient`** - Anthropic chat client for Azure AI Foundry's Anthropic-compatible endpoint
- **`AnthropicFoundryClient`** - Anthropic chat client for Microsoft Foundry's Anthropic-compatible endpoint
- **`AnthropicBedrockClient`** - Anthropic chat client for Amazon Bedrock
- **`AnthropicVertexClient`** - Anthropic chat client for Google Vertex AI
- **`AnthropicChatOptions`** - Options TypedDict for Anthropic-specific parameters
+1 -1
View File
@@ -12,7 +12,7 @@ The Anthropic integration enables communication with the Anthropic API, allowing
The package also includes Anthropic-hosted transport wrappers for:
- Azure AI Foundry via `AnthropicFoundryClient`
- Microsoft Foundry via `AnthropicFoundryClient`
- Amazon Bedrock via `AnthropicBedrockClient`
- Google Vertex AI via `AnthropicVertexClient`
@@ -90,7 +90,7 @@ class ContentUnderstandingSettings(TypedDict, total=False):
``AZURE_CONTENTUNDERSTANDING_``.
Keys:
endpoint: Azure AI Foundry endpoint URL.
endpoint: Microsoft Foundry endpoint URL.
Can be set via environment variable ``AZURE_CONTENTUNDERSTANDING_ENDPOINT``.
"""
@@ -108,7 +108,7 @@ class ContentUnderstandingContextProvider(ContextProvider):
support it.
Args:
endpoint: Azure AI Foundry endpoint URL
endpoint: Microsoft Foundry endpoint URL
(e.g., ``"https://<your-foundry-resource>.services.ai.azure.com/"``).
Can also be set via environment variable
``AZURE_CONTENTUNDERSTANDING_ENDPOINT``.
@@ -87,7 +87,7 @@ class OpenAIFileSearchBackend(_OpenAICompatBackend):
class FoundryFileSearchBackend(_OpenAICompatBackend):
"""File search backend for Azure AI Foundry.
"""File search backend for Microsoft Foundry.
Use with ``FoundryChatClient``. Requires the OpenAI-compatible client
obtained from ``FoundryChatClient.client`` (i.e.,
@@ -107,7 +107,7 @@ class FileSearchConfig:
vector_store_id: str,
file_search_tool: Any,
) -> FileSearchConfig:
"""Create a config for Azure AI Foundry (``FoundryChatClient``).
"""Create a config for Microsoft Foundry (``FoundryChatClient``).
Args:
client: The OpenAI-compatible client from ``FoundryChatClient.client``.
@@ -30,7 +30,7 @@ markdown with table preservation — superior to LLM-only vision for
scanned PDFs, handwritten content, and complex layouts.
Environment variables:
FOUNDRY_PROJECT_ENDPOINT Azure AI Foundry project endpoint
FOUNDRY_PROJECT_ENDPOINT Microsoft Foundry project endpoint
FOUNDRY_MODEL Model deployment name (e.g. gpt-4.1)
AZURE_CONTENTUNDERSTANDING_ENDPOINT CU endpoint URL
"""
@@ -37,7 +37,7 @@ Key concepts:
history (injected in Turn 1) to answer precisely
Environment variables:
FOUNDRY_PROJECT_ENDPOINT Azure AI Foundry project endpoint
FOUNDRY_PROJECT_ENDPOINT Microsoft Foundry project endpoint
FOUNDRY_MODEL Model deployment name (e.g. gpt-4.1)
AZURE_CONTENTUNDERSTANDING_ENDPOINT CU endpoint URL
"""
@@ -35,7 +35,7 @@ The provider auto-detects the media type and selects the right CU analyzer:
- Video prebuilt-videoSearch
Environment variables:
FOUNDRY_PROJECT_ENDPOINT Azure AI Foundry project endpoint
FOUNDRY_PROJECT_ENDPOINT Microsoft Foundry project endpoint
FOUNDRY_MODEL Model deployment name (e.g. gpt-4.1)
AZURE_CONTENTUNDERSTANDING_ENDPOINT CU endpoint URL
"""
@@ -34,7 +34,7 @@ since we want the LLM to produce a structured JSON response from the extracted
fields, not summarize document text.
Environment variables:
FOUNDRY_PROJECT_ENDPOINT Azure AI Foundry project endpoint
FOUNDRY_PROJECT_ENDPOINT Microsoft Foundry project endpoint
FOUNDRY_MODEL Model deployment name (e.g. gpt-4.1)
AZURE_CONTENTUNDERSTANDING_ENDPOINT CU endpoint URL
"""
@@ -55,7 +55,7 @@ CU supports PDFs up to 300 pages / 200 MB, and audio files up to 300 MB
https://learn.microsoft.com/azure/ai-services/content-understanding/service-limits#input-file-limits
Environment variables:
FOUNDRY_PROJECT_ENDPOINT Azure AI Foundry project endpoint
FOUNDRY_PROJECT_ENDPOINT Microsoft Foundry project endpoint
FOUNDRY_MODEL Model deployment name (e.g. gpt-4.1)
AZURE_CONTENTUNDERSTANDING_ENDPOINT CU endpoint URL
"""
@@ -10,7 +10,7 @@ this agent uses CU for structured extraction — superior for scanned PDFs,
handwritten content, audio transcription, and video analysis.
Required environment variables:
FOUNDRY_PROJECT_ENDPOINT Azure AI Foundry project endpoint
FOUNDRY_PROJECT_ENDPOINT Microsoft Foundry project endpoint
FOUNDRY_MODEL Model deployment name (e.g. gpt-4.1)
AZURE_CONTENTUNDERSTANDING_ENDPOINT CU endpoint URL
@@ -22,7 +22,7 @@ Analyzer auto-detection:
- Video prebuilt-videoSearch
Required environment variables:
FOUNDRY_PROJECT_ENDPOINT Azure AI Foundry project endpoint
FOUNDRY_PROJECT_ENDPOINT Microsoft Foundry project endpoint
FOUNDRY_MODEL Model deployment name (e.g. gpt-4.1)
AZURE_CONTENTUNDERSTANDING_ENDPOINT CU endpoint URL
@@ -1,5 +1,5 @@
# Copyright (c) Microsoft. All rights reserved.
"""DevUI Multi-Modal Agent — CU extraction + file_search RAG via Azure AI Foundry.
"""DevUI Multi-Modal Agent — CU extraction + file_search RAG via Microsoft Foundry.
This agent combines Azure Content Understanding with Foundry's file_search
for token-efficient RAG over large or multi-modal documents.
@@ -21,7 +21,7 @@ Analyzer auto-detection:
- Video prebuilt-videoSearch
Required environment variables:
FOUNDRY_PROJECT_ENDPOINT Azure AI Foundry project endpoint
FOUNDRY_PROJECT_ENDPOINT Microsoft Foundry project endpoint
FOUNDRY_MODEL Model deployment name (e.g. gpt-4.1)
AZURE_CONTENTUNDERSTANDING_ENDPOINT CU endpoint URL
+1 -1
View File
@@ -123,4 +123,4 @@ portal with this partition key configuration.
See `samples/03-workflows/checkpoint/cosmos_workflow_checkpointing.py` for a standalone example,
or `samples/03-workflows/checkpoint/cosmos_workflow_checkpointing_foundry.py` for an end-to-end
example with Azure AI Foundry agents.
example with Microsoft Foundry agents.
+1 -1
View File
@@ -174,7 +174,7 @@ agent_framework/
### Foundry (`foundry/`)
- **`FoundryChatClient`** - Chat client for Azure AI Foundry project endpoints
- **`FoundryChatClient`** - Chat client for Microsoft Foundry project endpoints
## Key Patterns
+1 -1
View File
@@ -14,7 +14,7 @@ Highlights
```bash
pip install agent-framework-core
# Optional: Add Azure AI Foundry integration
# Optional: Add Microsoft Foundry integration
pip install agent-framework-foundry
# Optional: Add OpenAI integration
pip install agent-framework-openai
@@ -3,7 +3,7 @@
"""Provider-agnostic evaluation framework for Microsoft Agent Framework.
Defines the core evaluation types and orchestration functions that work with
any evaluation provider (Azure AI Foundry, local evaluators, third-party
any evaluation provider (Microsoft Foundry, local evaluators, third-party
libraries, etc.). Also includes ``LocalEvaluator`` and built-in check
functions for fast, API-free evaluation during inner-loop development and
CI smoke tests.
@@ -683,7 +683,7 @@ class RubricScore:
class Evaluator(Protocol):
"""Protocol for evaluation providers.
Any evaluation backend (Azure AI Foundry, local LLM-as-judge, custom
Any evaluation backend (Microsoft Foundry, local LLM-as-judge, custom
scorers, etc.) implements this protocol. The provider encapsulates all
connection details, evaluator selection, and execution logic.
@@ -709,7 +709,7 @@ class ObservabilitySettings:
Can be set via environment variable ENABLE_SENSITIVE_DATA.
enable_console_exporters: Enable console exporters for traces, logs, and metrics.
Default is False. Can be set via environment variable ENABLE_CONSOLE_EXPORTERS.
vs_code_extension_port: The port the AI Toolkit or Azure AI Foundry VS Code extensions are listening on.
vs_code_extension_port: The port the AI Toolkit or Microsoft Foundry VS Code extensions are listening on.
Default is None.
Can be set via environment variable VS_CODE_EXTENSION_PORT.
@@ -1225,7 +1225,7 @@ def configure_otel_providers(
views: Optional list of OpenTelemetry views for metrics configuration.
Views allow filtering and customizing which metrics are collected.
Default is None (empty list).
vs_code_extension_port: The port the AI Toolkit or Azure AI Foundry VS Code
vs_code_extension_port: The port the AI Toolkit or Microsoft Foundry VS Code
extensions are listening on. When set, additional OTEL exporters will be
created with endpoint `http://localhost:{vs_code_extension_port}`.
Overrides the environment variable VS_CODE_EXTENSION_PORT if set. Default is None.
@@ -2,7 +2,7 @@
"""Agent invocation executors for declarative workflows.
These executors handle invoking Azure AI Foundry agents and other AI agents,
These executors handle invoking Microsoft Foundry agents and other AI agents,
supporting both streaming responses and human-in-loop patterns.
Aligned with .NET's InvokeAzureAgentExecutor behavior including:
@@ -371,7 +371,7 @@ def _normalize_variable_path(variable: str) -> str:
class InvokeAzureAgentExecutor(DeclarativeActionExecutor):
"""Executor that invokes an Azure AI Foundry agent.
"""Executor that invokes a Microsoft Foundry agent.
This executor supports both Python-style and .NET-style YAML schemas:
File diff suppressed because one or more lines are too long
@@ -42,13 +42,13 @@ export const SAMPLE_ENTITIES: SampleEntity[] = [
requiredEnvVars: [
{
name: "FOUNDRY_PROJECT_ENDPOINT",
description: "Azure AI Foundry project endpoint URL",
description: "Microsoft Foundry project endpoint URL",
required: true,
example: "https://your-project.api.azureml.ms",
},
{
name: "FOUNDRY_MODEL",
description: "Name of the deployed model in Azure AI Foundry",
description: "Name of the deployed model in Microsoft Foundry",
required: true,
example: "gpt-4o",
},
@@ -49,7 +49,7 @@ class FoundryProjectSettings(TypedDict, total=False):
class FoundryMemoryProvider(ContextProvider):
"""Foundry Memory context provider using the new ContextProvider hooks pattern.
Integrates Azure AI Foundry Memory Store for persistent semantic memory,
Integrates Microsoft Foundry Memory Store for persistent semantic memory,
searching and storing memories via the Azure AI Projects SDK.
Args:
@@ -916,7 +916,7 @@ async def test_integration_web_search() -> None:
@pytest.mark.flaky
@pytest.mark.integration
@pytest.mark.xfail(reason="Azure AI Foundry stopped accepting array-format output in function_call_output ~2026-04-03")
@pytest.mark.xfail(reason="Microsoft Foundry stopped accepting array-format output in function_call_output ~2026-04-03")
@skip_if_foundry_integration_tests_disabled
@_with_foundry_debug()
async def test_integration_tool_rich_content_image() -> None:
@@ -7,7 +7,7 @@ ASGITransport — no real server process is started. The agent talks to a real
Foundry project endpoint so every test requires valid credentials.
Required environment variables:
FOUNDRY_PROJECT_ENDPOINT - The Azure AI Foundry project endpoint URL.
FOUNDRY_PROJECT_ENDPOINT - The Microsoft Foundry project endpoint URL.
FOUNDRY_MODEL - The model deployment name (e.g. gpt-4o).
"""
+1 -1
View File
@@ -1,6 +1,6 @@
# Foundry Local Package (agent-framework-foundry-local)
Integration with Azure AI Foundry Local for local model inference.
Integration with Microsoft Foundry Local for local model inference.
## Main Classes
@@ -10,7 +10,7 @@ from azure.identity import AzureCliCredential
Hello Agent Simplest possible agent
This sample creates a minimal agent using FoundryChatClient via an
Azure AI Foundry project endpoint, and runs it in both non-streaming and streaming modes.
Microsoft Foundry project endpoint, and runs it in both non-streaming and streaming modes.
There are XML tags in all of the get started samples, those are used to display the same code in the docs repo.
"""
@@ -30,7 +30,7 @@ Key concepts demonstrated:
Prerequisites:
- Set A2A_AGENT_HOST to the URL of a running A2A server
- Set FOUNDRY_PROJECT_ENDPOINT to your Azure AI Foundry project endpoint
- Set FOUNDRY_PROJECT_ENDPOINT to your Microsoft Foundry project endpoint
- Set FOUNDRY_MODEL to the model deployment name (e.g. gpt-4o)
To run this sample:
@@ -56,7 +56,7 @@ Depending on the selected client, set the appropriate environment variables:
- `AZURE_OPENAI_API_KEY` (optional): Azure OpenAI API key if you are not using `AzureCliCredential`
**For Foundry client (`foundry_chat`):**
- `FOUNDRY_PROJECT_ENDPOINT`: Your Azure AI Foundry project endpoint
- `FOUNDRY_PROJECT_ENDPOINT`: Your Microsoft Foundry project endpoint
- `FOUNDRY_MODEL`: The Foundry deployment used by the sample
**For OpenAI clients:**
@@ -24,7 +24,7 @@ async def main() -> None:
Creates a task for the chat request, waits briefly, then cancels it to show proper cleanup.
Configuration:
- FOUNDRY_PROJECT_ENDPOINT: Azure AI Foundry project endpoint URL
- FOUNDRY_PROJECT_ENDPOINT: Microsoft Foundry project endpoint URL
- FOUNDRY_MODEL: Model deployment name (e.g. gpt-4o)
- Authentication: Run `az login` to authenticate via AzureCliCredential
"""
@@ -7,7 +7,7 @@ These samples demonstrate how to use context providers to enrich agent conversat
| File / Folder | Description |
|---------------|-------------|
| [`simple_context_provider.py`](simple_context_provider.py) | Implement a custom context provider by extending `ContextProvider` to extract and inject structured user information across turns. |
| [`azure_ai_foundry_memory.py`](azure_ai_foundry_memory.py) | Use `FoundryMemoryProvider` to add semantic memory — automatically retrieves, searches, and stores memories via Azure AI Foundry. |
| [`azure_ai_foundry_memory.py`](azure_ai_foundry_memory.py) | Use `FoundryMemoryProvider` to add semantic memory — automatically retrieves, searches, and stores memories via Microsoft Foundry. |
| [`file_access_data_processing/`](file_access_data_processing/) | Use `FileAccessProvider` with `FileSystemAgentFileStore` to give an agent read/write/search access to a folder of CSV data files. See its own [README](file_access_data_processing/README.md). |
| [`azure_ai_search/`](azure_ai_search/) | Retrieval Augmented Generation (RAG) with Azure AI Search in semantic and agentic modes. See its own [README](azure_ai_search/README.md). |
| [`mem0/`](mem0/) | Memory-powered context using the Mem0 integration (open-source and managed). See its own [README](mem0/README.md). |
@@ -16,18 +16,18 @@ These samples demonstrate how to use context providers to enrich agent conversat
## Prerequisites
**For `simple_context_provider.py`:**
- `FOUNDRY_PROJECT_ENDPOINT`: Your Azure AI Foundry project endpoint
- `FOUNDRY_PROJECT_ENDPOINT`: Your Microsoft Foundry project endpoint
- `FOUNDRY_MODEL`: Model deployment name
- Azure CLI authentication (`az login`)
**For `azure_ai_foundry_memory.py`:**
- `FOUNDRY_PROJECT_ENDPOINT`: Your Azure AI Foundry project endpoint
- `FOUNDRY_PROJECT_ENDPOINT`: Your Microsoft Foundry project endpoint
- `FOUNDRY_MODEL`: Chat/responses model deployment name
- `AZURE_OPENAI_EMBEDDING_DEPLOYMENT_NAME`: Embedding model deployment name (e.g., `text-embedding-ada-002`)
- Azure CLI authentication (`az login`)
**For `file_access_data_processing/`:**
- `FOUNDRY_PROJECT_ENDPOINT`: Your Azure AI Foundry project endpoint
- `FOUNDRY_PROJECT_ENDPOINT`: Your Microsoft Foundry project endpoint
- `FOUNDRY_MODEL`: Chat model deployment name
- Azure CLI authentication (`az login`)
@@ -25,13 +25,13 @@ pip install agent-framework-azure-ai-search agent-framework-foundry
- [Create Azure AI Search service](https://learn.microsoft.com/azure/search/search-create-service-portal)
- [Create and populate a search index](https://learn.microsoft.com/azure/search/search-what-is-an-index)
2. **Azure AI Foundry project** with a model deployment
- [Create Azure AI Foundry project](https://learn.microsoft.com/azure/ai-studio/how-to/create-projects)
2. **Microsoft Foundry project** with a model deployment
- [Create Microsoft Foundry project](https://learn.microsoft.com/azure/ai-studio/how-to/create-projects)
- Deploy a model (e.g., GPT-4o)
3. **For Agentic mode only**: Azure OpenAI resource for Knowledge Base model calls
- [Create Azure OpenAI resource](https://learn.microsoft.com/azure/ai-services/openai/how-to/create-resource)
- Note: This is separate from your Azure AI Foundry project endpoint
- Note: This is separate from your Microsoft Foundry project endpoint
### Authentication
@@ -65,7 +65,7 @@ azure-search-documents`) — no code change.
**Common (both modes):**
- `AZURE_SEARCH_ENDPOINT`: Your Azure AI Search endpoint (e.g., `https://myservice.search.windows.net`)
- `AZURE_SEARCH_INDEX_NAME`: Name of your search index
- `FOUNDRY_PROJECT_ENDPOINT`: Your Azure AI Foundry project endpoint
- `FOUNDRY_PROJECT_ENDPOINT`: Your Microsoft Foundry project endpoint
- `FOUNDRY_MODEL`: Model deployment name (e.g., `gpt-4o`, defaults to `gpt-4o`)
- `AZURE_SEARCH_API_KEY`: _(Optional)_ Your search API key - if not provided, uses DefaultAzureCredential
@@ -277,7 +277,7 @@ async with Agent(
## Additional Resources
- [Azure AI Search Documentation](https://learn.microsoft.com/azure/search/)
- [Azure AI Foundry Documentation](https://learn.microsoft.com/azure/ai-studio/)
- [Microsoft Foundry Documentation](https://learn.microsoft.com/azure/ai-studio/)
- [RAG with Azure AI Search](https://learn.microsoft.com/azure/search/retrieval-augmented-generation-overview)
- [Semantic Search in Azure AI Search](https://learn.microsoft.com/azure/search/semantic-search-overview)
- [Knowledge Bases in Azure AI Search](https://learn.microsoft.com/azure/search/knowledge-store-concept-intro)
@@ -27,13 +27,13 @@ For simple queries where speed is critical, use semantic mode instead (see azure
Prerequisites:
1. An Azure AI Search service
2. An Azure AI Foundry project with a model deployment
2. A Microsoft Foundry project with a model deployment
3. Either an existing Knowledge Base OR a search index (to auto-create a KB)
Environment variables:
- AZURE_SEARCH_ENDPOINT: Your Azure AI Search endpoint
- AZURE_SEARCH_API_KEY: (Optional) API key - if not provided, uses AzureCliCredential
- FOUNDRY_PROJECT_ENDPOINT: Your Azure AI Foundry project endpoint
- FOUNDRY_PROJECT_ENDPOINT: Your Microsoft Foundry project endpoint
- FOUNDRY_MODEL: Your model deployment name (e.g., "gpt-4o")
For using an existing Knowledge Base (recommended):
@@ -25,12 +25,12 @@ This sample demonstrates how to use Azure AI Search with semantic mode for RAG
Prerequisites:
1. An Azure AI Search service with a search index
2. An Azure AI Foundry project with a model deployment
2. A Microsoft Foundry project with a model deployment
3. Set the following environment variables:
- AZURE_SEARCH_ENDPOINT: Your Azure AI Search endpoint
- AZURE_SEARCH_API_KEY: (Optional) Your search API key - if not provided, uses AzureCliCredential for Entra ID
- AZURE_SEARCH_INDEX_NAME: Your search index name
- FOUNDRY_PROJECT_ENDPOINT: Your Azure AI Foundry project endpoint
- FOUNDRY_PROJECT_ENDPOINT: Your Microsoft Foundry project endpoint
- FOUNDRY_MODEL: Your model deployment name (e.g., "gpt-4o")
- AZURE_OPENAI_EMBEDDING_MODEL: (Optional) Your Azure OpenAI embedding deployment for hybrid search
- AZURE_OPENAI_ENDPOINT: (Optional) Your Azure OpenAI resource URL, required if using Azure OpenAI embeddings
@@ -29,7 +29,7 @@ pip install agent-framework agent-framework-monty --pre # Monty sample
## Prerequisites
- An Azure AI Foundry project endpoint (`FOUNDRY_PROJECT_ENDPOINT`)
- A Microsoft Foundry project endpoint (`FOUNDRY_PROJECT_ENDPOINT`)
- A deployed model (`FOUNDRY_MODEL`)
- Azure CLI authenticated (`az login`)
@@ -23,7 +23,7 @@ written file is easy to spot.
| Variable | Description |
|---|---|
| `FOUNDRY_PROJECT_ENDPOINT` | Your Azure AI Foundry project endpoint. |
| `FOUNDRY_PROJECT_ENDPOINT` | Your Microsoft Foundry project endpoint. |
| `FOUNDRY_MODEL` | Chat model deployment name (e.g. `gpt-4o`). |
Run `az login` before executing the sample so `AzureCliCredential` can
@@ -19,7 +19,7 @@ salesperson). The agent is asked, in a single session, to: list available
files, inspect the data, compute regional totals, and save a markdown summary.
Prerequisites:
- ``FOUNDRY_PROJECT_ENDPOINT``: Your Azure AI Foundry project endpoint.
- ``FOUNDRY_PROJECT_ENDPOINT``: Your Microsoft Foundry project endpoint.
- ``FOUNDRY_MODEL``: Chat model deployment name.
- Run ``az login`` before executing the sample.
"""
@@ -20,7 +20,7 @@ This folder contains an example demonstrating how to use the Redis context provi
1. A running Redis with RediSearch (Redis Stack or a managed service)
2. Python environment with Agent Framework Redis extra installed
3. Azure AI Foundry project endpoint and Azure OpenAI Responses deployment
3. Microsoft Foundry project endpoint and Azure OpenAI Responses deployment
4. Optional: OpenAI API key if using vector embeddings
### Install the package
@@ -51,7 +51,7 @@ See quickstart: `https://learn.microsoft.com/azure/redis/quickstart-create-manag
### Environment variables
- `FOUNDRY_PROJECT_ENDPOINT` (required): Azure AI Foundry project endpoint for `FoundryChatClient`
- `FOUNDRY_PROJECT_ENDPOINT` (required): Microsoft Foundry project endpoint for `FoundryChatClient`
- `FOUNDRY_MODEL` (required): Foundry model deployment name
- `OPENAI_API_KEY` (optional): Required only if you set `vectorizer_choice="openai"` to enable hybrid search.
@@ -17,7 +17,7 @@ Requirements:
Environment Variables:
- AZURE_REDIS_HOST: Your Azure Managed Redis host (e.g., myredis.redis.cache.windows.net)
- FOUNDRY_PROJECT_ENDPOINT: Your Azure AI Foundry project endpoint
- FOUNDRY_PROJECT_ENDPOINT: Your Microsoft Foundry project endpoint
- FOUNDRY_MODEL: Azure OpenAI Responses deployment name
- AZURE_USER_OBJECT_ID: Your Azure AD User Object ID for authentication
"""
@@ -6,7 +6,7 @@ These samples demonstrate different approaches to managing conversation history
| File | Description |
|------|-------------|
| [`suspend_resume_session.py`](suspend_resume_session.py) | Suspend and resume conversation sessions, comparing service-managed sessions (Azure AI Foundry) with in-memory sessions (OpenAI). |
| [`suspend_resume_session.py`](suspend_resume_session.py) | Suspend and resume conversation sessions, comparing service-managed sessions (Microsoft Foundry) with in-memory sessions (OpenAI). |
| [`custom_history_provider.py`](custom_history_provider.py) | Implement a custom history provider by extending `HistoryProvider`, enabling conversation persistence in your preferred storage backend. |
| [`file_history_provider.py`](file_history_provider.py) | Use the experimental `FileHistoryProvider` with `FoundryChatClient` and a function tool so the local JSON Lines file shows the full tool-calling loop. |
| [`file_history_provider_conversation_persistence.py`](file_history_provider_conversation_persistence.py) | Persist a tool-driven weather conversation with `FileHistoryProvider`, inspect the stored JSONL records, and continue with another city. |
@@ -19,7 +19,7 @@ These samples demonstrate different approaches to managing conversation history
## Prerequisites
**For `suspend_resume_session.py`:**
- `FOUNDRY_PROJECT_ENDPOINT`: Your Azure AI Foundry project endpoint (service-managed session)
- `FOUNDRY_PROJECT_ENDPOINT`: Your Microsoft Foundry project endpoint (service-managed session)
- `FOUNDRY_MODEL`: The Foundry model deployment name
- `OPENAI_API_KEY`: Your OpenAI API key (in-memory session)
- Azure CLI authentication (`az login`)
@@ -28,21 +28,21 @@ These samples demonstrate different approaches to managing conversation history
- `OPENAI_API_KEY`: Your OpenAI API key
**For `file_history_provider.py`:**
- `FOUNDRY_PROJECT_ENDPOINT`: Your Azure AI Foundry project endpoint
- `FOUNDRY_PROJECT_ENDPOINT`: Your Microsoft Foundry project endpoint
- `FOUNDRY_MODEL`: The Foundry model deployment name
- Azure CLI authentication (`az login`)
- The sample writes plaintext JSONL conversation logs to disk; use a trusted
local directory and avoid treating the history files as secure secret storage
**For `file_history_provider_conversation_persistence.py`:**
- `FOUNDRY_PROJECT_ENDPOINT`: Your Azure AI Foundry project endpoint
- `FOUNDRY_PROJECT_ENDPOINT`: Your Microsoft Foundry project endpoint
- `FOUNDRY_MODEL`: The Foundry model deployment name
- Azure CLI authentication (`az login`)
- The sample writes plaintext JSONL conversation logs to disk; use a trusted
local directory and avoid treating the history files as secure secret storage
**For Cosmos DB samples (`cosmos_history_provider*.py`):**
- `FOUNDRY_PROJECT_ENDPOINT`: Your Azure AI Foundry project endpoint
- `FOUNDRY_PROJECT_ENDPOINT`: Your Microsoft Foundry project endpoint
- `FOUNDRY_MODEL`: The Foundry model deployment name
- `AZURE_COSMOS_ENDPOINT`: Your Azure Cosmos DB account endpoint
- `AZURE_COSMOS_DATABASE_NAME`: The database that stores conversation history
@@ -37,7 +37,7 @@ This sample demonstrates how to use the experimental `FileHistoryProvider` with
the tool-calling loop as well as the regular chat turns.
Environment variables:
FOUNDRY_PROJECT_ENDPOINT: Azure AI Foundry project endpoint.
FOUNDRY_PROJECT_ENDPOINT: Microsoft Foundry project endpoint.
FOUNDRY_MODEL: Foundry model deployment name.
Key components:
@@ -37,7 +37,7 @@ experimental `FileHistoryProvider`, reading the stored JSONL file back from
disk, and then continuing the same conversation with another city.
Environment variables:
FOUNDRY_PROJECT_ENDPOINT: Azure AI Foundry project endpoint.
FOUNDRY_PROJECT_ENDPOINT: Microsoft Foundry project endpoint.
FOUNDRY_MODEL: Foundry model deployment name.
Key components:
@@ -39,7 +39,7 @@ Demonstrates how to create an agent with custom function tools using the declara
Shows how to create an agent that can search and retrieve information from Microsoft Learn documentation using the Model Context Protocol (MCP).
- Uses Azure AI Foundry client with MCP server integration
- Uses Microsoft Foundry client with MCP server integration
- Demonstrates async context managers for proper resource cleanup
- Loads agent configuration from `declarative-agents/agent-samples/foundry/MicrosoftLearnAgent.yaml`
- Uses Azure CLI credentials for authentication
@@ -47,13 +47,13 @@ Shows how to create an agent that can search and retrieve information from Micro
**Requirements**: `pip install agent-framework-foundry`
**Key concepts**: Azure AI Foundry integration, MCP server usage, async patterns, resource management
**Key concepts**: Microsoft Foundry integration, MCP server usage, async patterns, resource management
### 3. **Inline YAML Agent** ([`inline_yaml.py`](./inline_yaml.py))
Shows how to create an agent using an inline YAML string rather than a file.
- Uses Azure AI Foundry v2 Client with instructions.
- Uses Microsoft Foundry v2 Client with instructions.
**Requirements**: `pip install agent-framework-foundry`
@@ -86,7 +86,7 @@ All the YAML configuration files referenced in these samples are located in the
- **`declarative-agents/agent-samples/azure/`** - Azure OpenAI agent configurations
- **`declarative-agents/agent-samples/chatclient/`** - Chat client agent configurations with tools
- **`declarative-agents/agent-samples/foundry/`** - Azure AI Foundry agent configurations
- **`declarative-agents/agent-samples/foundry/`** - Microsoft Foundry agent configurations
- **`declarative-agents/agent-samples/openai/`** - OpenAI agent configurations
**Important**: These YAML files are **platform-agnostic** and work with both Python and .NET implementations of the Agent Framework. You can use the exact same YAML definition to create agents in either language, making it easy to share agent configurations across different technology stacks.
@@ -10,7 +10,7 @@ Key Features Demonstrated:
1. Loading agent definitions from YAML using AgentFactory
2. Configuring MCP tools with different authentication methods:
- API key authentication (OpenAI.Responses provider)
- Azure AI Foundry connection references (Foundry provider)
- Microsoft Foundry connection references (Foundry provider)
Authentication Options:
- OpenAI.Responses: Supports inline API key auth via headers
@@ -67,7 +67,7 @@ tools:
# Example 2: Azure AI with Foundry connection reference
# No secrets in YAML - references a pre-configured Foundry connection by name
# The connection stores credentials securely in Azure AI Foundry
# The connection stores credentials securely in Microsoft Foundry
YAML_AZURE_AI_WITH_FOUNDRY_CONNECTION = """
kind: Prompt
name: GitHubAgent
+1 -1
View File
@@ -20,7 +20,7 @@ DevUI is a sample application that provides:
Run a single sample directly. This demonstrates how to register agents and workflows in code without using DevUI's directory discovery.
This sample uses Azure AI Foundry. Before running it:
This sample uses Microsoft Foundry. Before running it:
1. Copy `.env.example` in this folder to `.env`, or export the same values in your shell
2. Set `FOUNDRY_PROJECT_ENDPOINT` and `FOUNDRY_MODEL`
@@ -1,4 +1,4 @@
# Azure AI Foundry Configuration
# Microsoft Foundry Configuration
# Make sure to run 'az login' before starting devui
FOUNDRY_PROJECT_ENDPOINT=https://your-project.services.ai.azure.com
@@ -1,7 +1,7 @@
# Copyright (c) Microsoft. All rights reserved.
"""Foundry-based weather agent for Agent Framework Debug UI.
This agent uses Azure AI Foundry with Azure CLI authentication.
This agent uses Microsoft Foundry with Azure CLI authentication.
Make sure to run 'az login' before starting devui.
"""
@@ -57,7 +57,7 @@ agent = Agent(
credential=AzureCliCredential(),
),
instructions="""
You are a weather assistant using Azure AI Foundry models. You can provide
You are a weather assistant using Microsoft Foundry models. You can provide
current weather information and forecasts for any location. Always be helpful
and provide detailed weather information when asked.
""",
@@ -1,4 +1,4 @@
# Azure AI Foundry Configuration
# Microsoft Foundry Configuration
# Make sure to run 'az login' before starting devui
FOUNDRY_PROJECT_ENDPOINT=https://your-project.services.ai.azure.com
@@ -49,7 +49,7 @@ Unused harness features (todos, plan/execute mode, web search) are disabled to
keep this a simple, conversational data-interaction sample.
Environment variables:
FOUNDRY_PROJECT_ENDPOINT Azure AI Foundry project endpoint URL
FOUNDRY_PROJECT_ENDPOINT Microsoft Foundry project endpoint URL
FOUNDRY_MODEL Model deployment name
Authentication:

Some files were not shown because too many files have changed in this diff Show More