Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Rozhraní Microsoft Agent Framework poskytuje podporu pro několik typů agentů, aby vyhovovala různým případům použití a požadavkům.
Všichni agenti jsou odvozeni od společné základní třídy , AIAgentkterá poskytuje konzistentní rozhraní pro všechny typy agentů. To umožňuje vytvářet obecné, na agentech nezávislé funkce vyšší úrovně, jako jsou orchestrace s více agenty.
Všichni agenti jsou odvozeni od společné základní třídy , Agentkterá poskytuje konzistentní rozhraní pro všechny typy agentů. To umožňuje vytvářet obecné, na agentech nezávislé funkce vyšší úrovně, jako jsou orchestrace s více agenty.
Výchozí model spouštění modulu runtime agenta
Všichni agenti v rozhraní Microsoft Agent Framework se spouštějí pomocí strukturovaného modelu modulu runtime. Tento model koordinuje interakci uživatelů, odvozování modelů a provádění nástrojů v deterministické smyčce.
Důležité
Pokud k vytváření aplikací, které pracují se servery nebo agenty třetích stran, používáte rozhraní Microsoft Agent Framework, provedete to na vlastní nebezpečí. Doporučujeme zkontrolovat všechna data sdílená se servery nebo agenty třetích stran a seznámit se s postupy třetích stran pro uchovávání a umístění dat. Je vaší zodpovědností spravovat, jestli budou vaše data přetékat mimo dodržování předpisů a geografických hranic vaší organizace a případné související důsledky.
Jednoduché agenty založené na službách odvození
Agent Framework usnadňuje vytváření jednoduchých agentů na základě mnoha různých služeb odvození.
K sestavení těchto agentů je možné použít jakoukoli službu odvození, která poskytuje Microsoft.Extensions.AI.IChatClient implementaci. Třída Microsoft.Agents.AI.ChatClientAgent je použita k zajištění agenta pro jakoukoli implementaci IChatClient.
Tito agenti podporují celou řadu funkcí již v základním nastavení.
- Volání funkce
- Vícefázové konverzace s lokální správou historie chatu nebo službou poskytující správu historie chatu.
- Vlastní nástroje poskytované službou (například MCP, Provádění kódu).
- Strukturovaný výstup
Pokud chcete vytvořit jednoho z těchto agentů, jednoduše vytvořte ChatClientAgent pomocí IChatClient implementace podle vašeho výběru.
using Microsoft.Agents.AI;
var agent = new ChatClientAgent(chatClient, instructions: "You are a helpful assistant");
Aby bylo vytváření těchto agentů ještě jednodušší, poskytuje rozhraní Agent Framework pomocné rutiny pro mnoho oblíbených služeb. Další informace najdete v dokumentaci pro každou službu.
| Podkladová služba odvození | Description | Podporované úložiště historie chatu služby | Podporované úložiště historie chatu: InMemory nebo vlastní úložiště |
|---|---|---|---|
| Azure AI Foundry Agent | Agent, který jako svůj back-end používá službu Azure AI Foundry Agents Service. | Ano | Ne |
| Modely ChatCompletion Azure AI Foundry | Agent, který používá některý z modelů nasazených ve službě Azure AI Foundry service jako svůj back-end přes ChatCompletion. | Ne | Ano |
| Odpovědi na modely Azure AI Foundry | Agent, který používá některý z modelů nasazených ve službě Azure AI Foundry jako svůj back-end prostřednictvím odpovědí. | Ano | Ano |
| Azure OpenAI ChatCompletion | Agent, který používá službu Azure OpenAI ChatCompletion. | Ne | Ano |
| Odpovědi Azure OpenAI | Agent, který používá službu Odpovědí Azure OpenAI. | Ano | Ano |
| OpenAI ChatCompletion | Agent, který používá službu OpenAI ChatCompletion. | Ne | Ano |
| Odpovědi OpenAI | Agent, který používá službu OpenAI Responses. | Ano | Ano |
| Asistenti OpenAI | Agent, který používá službu OpenAI Assistants. | Ano | Ne |
Všechny ostatní IChatClient |
K vytvoření agenta můžete použít také jakoukoli jinou Microsoft.Extensions.AI.IChatClient implementaci. |
Varies | Varies |
Komplexní agenti na míru
Je také možné vytvořit plně vlastní agenty, které nejsou jen obálky kolem IChatClient.
Rozhraní agenta poskytuje AIAgent základní typ.
Tento základní typ je základní abstrakce všech agentů, která při podtřídě umožňuje úplnou kontrolu nad chováním a možnostmi agenta.
Další informace najdete v dokumentaci pro vlastní agenty.
Proxy servery pro vzdálené agenty
Agent Framework poskytuje připravenou AIAgent implementaci pro běžné protokoly agentů hostovaných službou, jako je A2A. Tímto způsobem se můžete ze své aplikace snadno připojit ke vzdáleným agentům a používat je.
Další informace najdete v dokumentaci pro jednotlivé typy agentů:
| Protokol | Description |
|---|---|
| A2A | Agent, který slouží jako proxy pro vzdáleného agenta prostřednictvím protokolu A2A. |
Referenční informace k možnostem sady Azure a OpenAI SDK
Při používání služeb Azure AI Foundry, Azure OpenAI nebo OpenAI máte různé možnosti sady SDK pro připojení k těmto službám. V některých případech je možné použít více sad SDK pro připojení ke stejné službě nebo použití stejné sady SDK pro připojení k různým službám. Tady je seznam různých možností dostupných s adresou URL, kterou byste měli použít při připojování k jednotlivým možnostem. Nezapomeňte nahradit <resource> a <project> nahradit skutečnými názvy zdrojů a projektů.
| Služba AI | sada SDK | NuGet | URL |
|---|---|---|---|
| Modely Azure AI Foundry | Azure OpenAI SDK 2 | Azure.AI.OpenAI | https://ai-foundry-<resource.services.ai.azure.com/> |
| Modely Azure AI Foundry | OpenAI SDK 3 | OpenAI | https://ai-foundry-<resource.services.ai.azure.com/openai/v1/> |
| Modely Azure AI Foundry | Azure AI Inference SDK 2 | Azure.AI.Inference | https://ai-foundry-<resource.services.ai.azure.com/models> |
| Agenti Azure AI Foundry | Azure AI Persistent Agents SDK (Sada pro vývoj software) | Azure.AI.Agents.Persistent | https://ai-foundry-<resource.services.ai.azure.com/api/projects/ai-project-project><> |
| Azure OpenAI1 | Azure OpenAI SDK 2 | Azure.AI.OpenAI | <https:// resource.openai.azure.com/> |
| Azure OpenAI1 | OpenAI SDK | OpenAI | <https://resource.openai.azure.com/openai/v1/> |
| OpenAI | OpenAI SDK | OpenAI | Nevyžaduje se žádná adresa URL. |
- Upgrade z Azure OpenAI na Azure AI Foundry
- Doporučujeme použít sadu OpenAI SDK.
- I když pro přístup k modelům Azure AI Foundry doporučujeme používat sadu OpenAI SDK, modely Azure AI Foundry podporují modely od mnoha různých dodavatelů, nejen OpenAI. Všechny tyto modely jsou podporovány prostřednictvím sady OpenAI SDK.
Použití sady OpenAI SDK
Jak je znázorněno v tabulce výše, můžete sadu OpenAI SDK použít k připojení k více službám.
V závislosti na službě, ke které se připojujete, možná budete muset při vytváření OpenAIClientnastavit vlastní adresu URL .
Můžete také použít různé mechanismy ověřování v závislosti na službě.
Pokud je požadována vlastní adresa URL (viz tabulka výše), můžete ji nastavit přes OpenAIClientOptions.
var clientOptions = new OpenAIClientOptions() { Endpoint = new Uri(serviceUrl) };
Při vytváření klienta je možné použít klíč rozhraní API.
OpenAIClient client = new OpenAIClient(new ApiKeyCredential(apiKey), clientOptions);
Při použití služby Azure je také možné místo klíče rozhraní API použít přihlašovací údaje Azure.
OpenAIClient client = new OpenAIClient(new BearerTokenPolicy(new DefaultAzureCredential(), "https://ai.azure.com/.default"), clientOptions)
Výstraha
DefaultAzureCredential je vhodný pro vývoj, ale vyžaduje pečlivé zvážení v produkčním prostředí. V produkčním prostředí zvažte použití konkrétních přihlašovacích údajů (např ManagedIdentityCredential. ) k zabránění problémům s latencí, neúmyslnému testování přihlašovacích údajů a potenciálním bezpečnostním rizikům z náhradních mechanismů.
Jakmile vytvoříte OpenAIClient, můžete získat podklienta pro konkrétní službu, kterou chcete použít, a poté z toho vytvořit instanci AIAgent.
AIAgent agent = client
.GetChatClient(model)
.AsAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
Použití sady Azure OpenAI SDK
Tuto sadu SDK je možné použít k připojení ke službám Azure OpenAI i Azure AI Foundry Models.
V obou případech budete muset při vytváření AzureOpenAIClient zadat správnou adresu URL služby.
Správnou adresu URL, která se má použít, najdete v tabulce výše.
AIAgent agent = new AzureOpenAIClient(
new Uri(serviceUrl),
new DefaultAzureCredential())
.GetChatClient(deploymentName)
.AsAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
Použití sady AZURE AI Persistent Agents SDK
Tato sada SDK se podporuje pouze ve službě Azure AI Foundry Agents. Správnou adresu URL, která se má použít, najdete v tabulce výše.
var persistentAgentsClient = new PersistentAgentsClient(serviceUrl, new DefaultAzureCredential());
AIAgent agent = await persistentAgentsClient.CreateAIAgentAsync(
model: deploymentName,
name: "Joker",
instructions: "You are good at telling jokes.");
Jednoduché agenty založené na službách odvození
Agent Framework usnadňuje vytváření jednoduchých agentů na základě mnoha různých služeb odvození.
K sestavení těchto agentů je možné použít jakoukoli službu odvození, která poskytuje implementaci chatovacího klienta.
To lze provést pomocí SupportsChatGetResponse, který definuje standard pro metody, které klient potřebuje podporovat pro použití se standardní Agent třídou.
Tito agenti podporují celou řadu funkcí již v základním nastavení.
- Volání funkcí
- Konverzace s vícenásobným otáčením s místní správou historie chatu nebo službou poskytovanou správou historie chatu
- Vlastní nástroje poskytované službou (například MCP, Provádění kódu)
- Strukturovaný výstup
- Streamující odpovědi
Pokud chcete vytvořit jednoho z těchto agentů, jednoduše vytvořte Agent pomocí implementace chatovacího klienta podle vašeho výběru.
import os
from agent_framework import Agent
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity.aio import DefaultAzureCredential
Agent(
client=AzureOpenAIResponsesClient(credential=DefaultAzureCredential(), project_endpoint=os.getenv("AZURE_AI_PROJECT_ENDPOINT"), deployment_name=os.getenv("AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME")),
instructions="You are a helpful assistant"
) as agent
response = await agent.run("Hello!")
Případně můžete použít metodu pohodlí v chatovacím klientovi:
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity.aio import DefaultAzureCredential
agent = AzureOpenAIResponsesClient(async_credential=DefaultAzureCredential(), project_endpoint=os.getenv("AZURE_AI_PROJECT_ENDPOINT"), deployment_name=os.getenv("AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME")).as_agent(
instructions="You are a helpful assistant"
)
Poznámka:
Tento příklad ukazuje použití AzureOpenAIResponsesClient, ale stejný model platí pro každého chatovacího klienta, který implementuje SupportsChatGetResponse, viz přehled poskytovatelů , kde najdete další podrobnosti o ostatních klientech.
Podrobné příklady najdete v následujících částech dokumentace pro konkrétní agenty.
Podporovaní poskytovatelé chatu
| Podkladová inferenční služba | Description | Podporované úložiště historie chatu služby |
|---|---|---|
| Azure AI Foundry Agent | Agent, který jako svůj back-end používá službu Azure AI Agents Service. | Ano |
| Dokončení chatu Azure OpenAI | Agent, který používá službu dokončování chatu Azure OpenAI. | Ne |
| Odpovědi Azure OpenAI | Agent, který používá službu Odpovědí Azure OpenAI. | Ano |
| Asistenti Azure OpenAI | Agent, který používá službu Azure OpenAI Assistants. | Ano |
| Dokončení chatu OpenAI | Agent, který používá službu Dokončování chatu OpenAI. | Ne |
| Odpovědi OpenAI | Agent, který používá službu OpenAI Responses. | Ano |
| Asistenti OpenAI | Agent, který používá službu OpenAI Assistants. | Ano |
| Anthropic Claude | Agent, který používá modely Anthropic Claude. | Ne |
| Amazonské podloží | Agent, který používá modely Amazon Bedrock prostřednictvím chatovacího klienta Agent Framework Bedrock. | Ne |
| GitHub Copilot | Agent, který používá zázemí sady GitHub Copilot SDK. | Ne |
| Ollama (kompatibilní s OpenAI) | Agent, který používá místně hostované modely Ollama prostřednictvím rozhraní API kompatibilních s OpenAI. | Ne |
| Jakýkoli jiný ChatClient | K vytvoření agenta SupportsChatGetResponse můžete použít také jakoukoli jinou implementaci. |
Varies |
Kdykoli je podporován stav konverzace založený na relacích, je podporováno vlastní úložiště historie chatu.
Odpovědi na streamování
Agenti podporují pravidelné i streamované odpovědi:
# Regular response (wait for complete result)
response = await agent.run("What's the weather like in Seattle?")
print(response.text)
# Streaming response (get results as they are generated)
async for chunk in agent.run("What's the weather like in Portland?", stream=True):
if chunk.text:
print(chunk.text, end="", flush=True)
Příklady streamování najdete tady:
Další způsoby vyvolání naleznete v části Spuštění agentů.
Funkční nástroje
Nástroje funkcí můžete poskytnout agentům pro vylepšené funkce:
import os
from typing import Annotated
from azure.identity.aio import DefaultAzureCredential
from agent_framework.azure import AzureOpenAIResponsesClient
def get_weather(location: Annotated[str, "The location to get the weather for."]) -> str:
"""Get the weather for a given location."""
return f"The weather in {location} is sunny with a high of 25°C."
async with DefaultAzureCredential() as credential:
agent = AzureOpenAIResponsesClient(
async_credential=credential,
project_endpoint=os.getenv("AZURE_AI_PROJECT_ENDPOINT"),
deployment_name=os.getenv("AZURE_OPENAI_RESPONSES_DEPLOYMENT_NAME"),
).as_agent(
instructions="You are a helpful weather assistant.",
tools=get_weather,
)
response = await agent.run("What's the weather in Seattle?")
Informace o nástrojích a vzorech nástrojů najdete v tématu Přehled nástrojů.
Vlastní agenti
Plně vlastní implementace (například deterministické agenty nebo agenty založené na rozhraní API) najdete v tématu Vlastní agenty. Tato stránka popisuje implementaci SupportsAgentRun nebo rozšíření BaseAgent, včetně aktualizací streamování s AgentResponseUpdate.
Jiné typy agentů
Agent Framework zahrnuje také agenty založené na protokolu, například:
| Typ agenta | Description |
|---|---|
| A2A | Proxy agent, který se připojuje ke vzdáleným agentům kompatibilním s A2A a vyvolává je. |