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í agenta Microsoft 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šechny agenty v 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 používáte Microsoft Agent Framework k vytváření aplikací, které pracují se všemi servery třetích stran, agenty, kódem nebo modely bez Azure Direct ("Systémy třetích stran"), uděláte to na vlastní nebezpečí. Systémy třetích stran nejsou Microsoft Produkty podle Microsoft Podmínek produktu a řídí se vlastními licenčními podmínkami třetích stran. Zodpovídáte za veškeré využití a související náklady.
Doporučujeme zkontrolovat veškerá data sdílená se systémy třetích stran a přijímat je ze systémů třetích stran a seznámit se s postupy třetích stran pro zpracování, sdílení, uchovávání a umístění dat. Je vaší zodpovědností řídit, zda vaše data budou přenášena mimo geografické a pravidlové hranice Azure vaší organizace a jaké jsou s tím spojené důsledky. Současně zajistěte, aby byla zavedena příslušná oprávnění, hranice a schválení.
Zodpovídáte za pečlivou kontrolu a testování aplikací, které vytváříte pomocí Microsoft Agent Framework v kontextu konkrétních případů použití, a za veškerá vhodná rozhodnutí a přizpůsobení. To zahrnuje implementaci vlastního zodpovědného zmírnění rizik umělé inteligence, jako jsou metaprompt, filtry obsahu nebo jiné bezpečnostní systémy, a zajištění toho, aby vaše aplikace splňovaly příslušné standardy kvality, spolehlivosti, zabezpečení a důvěryhodnosti. Viz také: Nejčastější dotazy k transparentnosti
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ů lze použít jakoukoli službu odvození, která poskytuje Microsoft.Extensions.AI.IChatClient implementaci.
Microsoft.Agents.AI.ChatClientAgent je třída agenta použitá k poskytnutí 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ýstupy
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ě |
|---|---|---|---|
| Microsoft Foundry Agent | Agent, který jako back-end používá službu Foundry Agent Service. | Ano | Ne |
| Foundry Modely ChatCompletion | Agent, který používá některý z modelů nasazených ve službě Foundry jako svůj back-end prostřednictvím chatCompletionu. | Ne | Ano |
| Odpovědi modelů Foundry | Agent, který používá některý z modelů nasazených ve službě Foundry jako své zázemí prostřednictvím odpovědí. | Ano | Ano |
| Foundry Anthropic | Agent, který jako svůj back-end používá Claudův model prostřednictvím služby Foundry Anthropic. | Ne | Ano |
| Azure OpenAI ChatCompletion | Agent, který používá službu Azure OpenAI ChatCompletion. | Ne | Ano |
| Azure OpenAI Odpovědi | Agent, který používá Azure službu OpenAI Responses. | Ano | Ano |
| Anthropic | Agent, který jako svůj back-end používá model Clauda prostřednictvím služby Anthropic Service. | Ne | 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 |
Všechny ostatní IChatClient |
K vytvoření agenta můžete použít také jakoukoli jinou implementaci Microsoft.Extensions.AI.IChatClient. |
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
Pokud používáte Foundry, Azure OpenAI, služby OpenAI nebo Anthropic, 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 Foundry | Azure OpenAI SDK 2 | Azure. AI. OpenAI | https://ai-foundry-<resource.services.ai.azure.com/> |
| Modely Foundry | OpenAI SDK 3 | OpenAI | https://ai-foundry-<resource.services.ai.azure.com/openai/v1/> |
| Modely Foundry | Azure AI Inference SDK 2 | Azure.AI.Inference | https://ai-foundry-<resource.services.ai.azure.com/models> |
| Slévci agenti | Azure AI Projects SDK + Microsoft Agents AI Foundry | Azure.AI.Projekty / Microsoft.Agents.AI.Foundry | 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. |
| Microsoft Foundry Anthropic | Anthropic Foundry SDK (softwarový vývojářský kit) | Anthropic.Foundry | Název zdroje je vyžadován |
| Antropický | Anthropic SDK | Anthropic | Nevyžaduje se žádná adresa URL ani název prostředku. |
- Upgrade z Azure OpenAI na Foundry
- Doporučujeme použít sadu OpenAI SDK.
- I když pro přístup k modelům Foundry doporučujeme používat sadu OpenAI SDK, modely 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 Azure přihlašovací údaje.
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
.AsAIAgent(model: model, instructions: "You are good at telling jokes.", name: "Joker");
Použití sady SDK pro Azure projekty AI
Tuto sadu SDK je možné použít k připojení ke službám Foundry.
Při vytváření AIProjectClient budete muset zadat správnou adresu URL koncového bodu projektu.
Správnou adresu URL, která se má použít, najdete v tabulce výše.
AIAgent agent = new AIProjectClient(
new Uri(serviceUrl),
new DefaultAzureCredential())
.AsAIAgent(
model: deploymentName,
instructions: "You are good at telling jokes.",
name: "Joker");
Použití sady SDK pro projekty AI Azure s agenty Foundry
Tato sada SDK se používá pro agenty založené na rozhraní Responses API i pro verzované agenty Foundry. Správnou adresu URL, která se má použít, najdete v tabulce výše.
var aiProjectClient = new AIProjectClient(new Uri(serviceUrl), new DefaultAzureCredential());
AIAgent agent = aiProjectClient.AsAIAgent(
model: deploymentName,
instructions: "You are good at telling jokes.",
name: "Joker");
Použití sady Foundry Anthropic SDK
Prostředek je název subdomény / křestní jméno přicházející před ".services.ai.azure.com" v identifikátoru URI koncového bodu.
Příklad: https://(resource name).services.ai.azure.com/anthropic/v1/chat/completions
var client = new AnthropicFoundryClient(new AnthropicFoundryApiKeyCredentials(apiKey, resource));
AIAgent agent = client.AsAIAgent(
model: deploymentName,
instructions: "Joker",
name: "You are good at telling jokes.");
Použití sady Anthropic SDK
var client = new AnthropicClient() { ApiKey = apiKey };
AIAgent agent = client.AsAIAgent(
model: deploymentName,
instructions: "Joker",
name: "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 protokolu, 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ýstupy
- 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.foundry import FoundryChatClient
from azure.identity.aio import DefaultAzureCredential
agent = Agent(
client=FoundryChatClient(
credential=DefaultAzureCredential(),
project_endpoint=os.getenv("FOUNDRY_PROJECT_ENDPOINT"),
model=os.getenv("FOUNDRY_MODEL"),
),
instructions="You are a helpful assistant",
)
response = await agent.run("Hello!")
Případně můžete použít metodu pohodlí v chatovacím klientovi:
from agent_framework.foundry import FoundryChatClient
from azure.identity.aio import DefaultAzureCredential
agent = FoundryChatClient(
credential=DefaultAzureCredential(),
project_endpoint=os.getenv("FOUNDRY_PROJECT_ENDPOINT"),
model=os.getenv("FOUNDRY_MODEL"),
).as_agent(
instructions="You are a helpful assistant"
)
Poznámka:
Tento příklad ukazuje použití FoundryChatClient, ale stejný vzor platí pro každého chatovacího klienta, který implementuje SupportsChatGetResponse, viz přehled poskytovatelů další podrobnosti o jiný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 |
|---|---|---|
| Slévárenský Agent | Agent, který používá službu agenta jako back-end. | Ano |
| Azure Dokončení chatu OpenAI | Agent, který používá službu dokončení chatu OpenAI Azure. | Ne |
| Azure OpenAI Odpovědi | Agent, který používá Azure službu OpenAI Responses. | 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 |
| 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á backend 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:
- Příklady streamování Foundry
- Příklady streamování dokončení chatu Azure OpenAI
- Příklady streamování odpovědí Azure OpenAI
- Příklady streamování dokončení chatu OpenAI
- Příklady streamování odpovědí OpenAI
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.foundry import FoundryChatClient
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 = FoundryChatClient(
credential=credential,
project_endpoint=os.getenv("FOUNDRY_PROJECT_ENDPOINT"),
model=os.getenv("FOUNDRY_MODEL"),
).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. |