mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
Python: [BREAKING] Remove deprecated Python OpenAI/Azure AI surfaces (#4990)
* [BREAKING] Remove deprecated Python OpenAI/Azure AI surfaces Also clean up follow-on docs, environment guidance, package metadata, and lab test stability. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix deleted semantic-kernel sample links Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address PR review feedback Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * improve foundry language * Fix A2A Foundry sample regression Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
Unverified
parent
a5eacbbe65
commit
3a49b1d6dd
@@ -160,17 +160,17 @@ Sequential orchestration uses a few small adapter nodes for plumbing:
|
||||
These may appear in event streams (executor_invoked/executor_completed). They're analogous to
|
||||
concurrent’s dispatcher and aggregator and can be ignored if you only care about agent activity.
|
||||
|
||||
### AzureOpenAIResponsesClient vs AzureAIAgent
|
||||
### Why FoundryChatClient?
|
||||
|
||||
Workflow and orchestration samples use `AzureOpenAIResponsesClient` rather than the CRUD-style `AzureAIAgent` client. The key difference:
|
||||
Workflow and orchestration samples use `FoundryChatClient` because they create agents locally and do not need
|
||||
server-managed agent resources. This lightweight, project-backed chat client is a good fit for orchestration
|
||||
patterns such as Sequential, Concurrent, Handoff, GroupChat, and Magentic.
|
||||
|
||||
- **`AzureOpenAIResponsesClient`** — A lightweight client that uses the underlying Agent Service V2 (Responses API) for non-CRUD-style agents. Orchestrations use this client because agents are created locally and do not require server-side lifecycle management (create/update/delete). This is the recommended client for orchestration patterns (Sequential, Concurrent, Handoff, GroupChat, Magentic).
|
||||
|
||||
- **`AzureAIAgent`** — A CRUD-style client for server-managed agents. Use this when you need persistent, server-side agent definitions with features like file search, code interpreter sessions, or thread management provided by the Azure AI Agent Service.
|
||||
If you need persistent server-side agent resources, use the hosted-agent flows rather than these workflow samples.
|
||||
|
||||
### Environment Variables
|
||||
|
||||
Workflow samples that use `AzureOpenAIResponsesClient` expect:
|
||||
Workflow samples that use `FoundryChatClient` expect:
|
||||
|
||||
- `FOUNDRY_PROJECT_ENDPOINT` (Azure AI Foundry Agent Service (V2) project endpoint)
|
||||
- `FOUNDRY_MODEL` (model deployment name)
|
||||
|
||||
@@ -6,7 +6,7 @@ This sample demonstrates an agent with function tools responding to user queries
|
||||
|
||||
The workflow showcases:
|
||||
- **Function Tools**: Agent equipped with tools to query menu data
|
||||
- **Real Azure OpenAI Agent**: Uses `AzureOpenAIResponsesClient` to create an agent with tools
|
||||
- **Real Foundry-backed agent**: Uses `FoundryChatClient` to create an agent with tools
|
||||
- **Agent Registration**: Shows how to register agents with the `WorkflowFactory`
|
||||
|
||||
## Tools
|
||||
@@ -37,7 +37,7 @@ Drinks:
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Azure OpenAI configured with required environment variables
|
||||
- Microsoft Foundry configured with required environment variables
|
||||
- Authentication via azure-identity (run `az login` before executing)
|
||||
|
||||
## Usage
|
||||
@@ -65,16 +65,16 @@ Session Complete
|
||||
|
||||
## How It Works
|
||||
|
||||
1. Create an Azure OpenAI chat client
|
||||
1. Create a Foundry chat client
|
||||
2. Create an agent with instructions and function tools
|
||||
3. Register the agent with the workflow factory
|
||||
4. Load the workflow YAML and run it with `run()` and `stream=True`
|
||||
|
||||
```python
|
||||
# Create the agent with tools
|
||||
client = AzureOpenAIResponsesClient(
|
||||
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
|
||||
deployment_name=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
|
||||
client = FoundryChatClient(
|
||||
project_endpoint=os.environ["FOUNDRY_PROJECT_ENDPOINT"],
|
||||
model=os.environ["FOUNDRY_MODEL"],
|
||||
credential=AzureCliCredential(),
|
||||
)
|
||||
menu_agent = client.as_agent(
|
||||
|
||||
@@ -92,15 +92,17 @@ from agent_framework.orchestrations import (
|
||||
|
||||
These may appear in event streams (executor_invoked/executor_completed). They're analogous to concurrent's dispatcher and aggregator and can be ignored if you only care about agent activity.
|
||||
|
||||
## Why AzureOpenAIResponsesClient?
|
||||
## Why FoundryChatClient?
|
||||
|
||||
Orchestration samples use `AzureOpenAIResponsesClient` rather than the CRUD-style `AzureAIAgent` client. Orchestrations create agents locally and do not require server-side lifecycle management (create/update/delete). `AzureOpenAIResponsesClient` is a lightweight client that uses the underlying Agent Service V2 (Responses API) for non-CRUD-style agents, which is ideal for orchestration patterns like Sequential, Concurrent, Handoff, GroupChat, and Magentic.
|
||||
Orchestration samples use `FoundryChatClient` because they create agents locally and do not require
|
||||
server-side lifecycle management. `FoundryChatClient` is a lightweight, project-backed client that fits
|
||||
patterns like Sequential, Concurrent, Handoff, GroupChat, and Magentic.
|
||||
|
||||
## Environment Variables
|
||||
|
||||
Orchestration samples that use `AzureOpenAIResponsesClient` expect:
|
||||
Orchestration samples that use `FoundryChatClient` expect:
|
||||
|
||||
- `AZURE_AI_PROJECT_ENDPOINT` (Azure AI Foundry Agent Service (V2) project endpoint)
|
||||
- `AZURE_AI_MODEL_DEPLOYMENT_NAME` (model deployment name)
|
||||
- `FOUNDRY_PROJECT_ENDPOINT` (Azure AI Foundry Agent Service (V2) project endpoint)
|
||||
- `FOUNDRY_MODEL` (model deployment name)
|
||||
|
||||
These values are passed directly into the client constructor via `os.getenv()` in sample code.
|
||||
|
||||
Reference in New Issue
Block a user