Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Microsoft ügynök-keretrendszer számos ügynöktípust támogat a különböző használati esetek és követelmények kielégítése érdekében.
Minden ügynök egy közös alaposztályból származik, AIAgentamely konzisztens felületet biztosít minden ügynöktípushoz. Ez lehetővé teszi a gyakori, ügynök-agnosztikus, magasabb szintű funkciók, például a többügynök-vezénylések kiépítését.
Minden ügynök egy közös alaposztályból származik, Agentamely konzisztens felületet biztosít minden ügynöktípushoz. Ez lehetővé teszi a gyakori, ügynök-agnosztikus, magasabb szintű funkciók, például a többügynök-vezénylések kiépítését.
Az ügynök futásidejének alapértelmezett végrehajtási modellje
Az Microsoft Agent Framework összes ügynöke egy strukturált futtatókörnyezeti modellel fut. Ez a modell egy determinisztikus ciklusban koordinálja a felhasználói interakciót, a modell következtetését és az eszközök végrehajtását.
Fontos
Ha Microsoft Agent Framework használatával olyan alkalmazásokat hoz létre, amelyek külső kiszolgálókkal, ügynökökkel, kóddal vagy nem Azure közvetlen modellekkel ("külső rendszerek") működnek, ezt saját felelősségére teheti meg. A harmadik féltől származó rendszerek nem Microsoft termékek a Microsoft termékfeltételek alapján, és saját, külső licencfeltételeik vonatkoznak magára. A használatért és a kapcsolódó költségekért Ön a felelős.
Javasoljuk, hogy tekintse át a külső rendszerekkel megosztott és fogadott összes adatot, és hogy megismerje az adatok kezelésével, megosztásával, megőrzésével és helyével kapcsolatos harmadik féltől származó eljárásokat. Az Ön felelőssége annak kezelése, hogy az adatok a szervezet Azure megfelelőségi és földrajzi határain, valamint a kapcsolódó következményeken kívül fognak-e áramlani, valamint hogy a megfelelő engedélyek, határok és jóváhagyások ki vannak-e építve.
Ön felelős azért, hogy gondosan áttekintse és tesztelje azokat az alkalmazásokat, amelyeket Microsoft Agent Framework használatával hoz létre az adott használati esetek kontextusában, és minden megfelelő döntést és testreszabást meghoz. Ez magában foglalja a saját felelős AI-kockázatcsökkentések, például metaprompt, tartalomszűrők vagy egyéb biztonsági rendszerek implementálását, valamint annak biztosítását, hogy az alkalmazások megfeleljenek a megfelelő minőségi, megbízhatósági, biztonsági és megbízhatósági szabványoknak. Lásd még: Átláthatóság – gyakori kérdések
Egyszerű ügynökök következtetési szolgáltatások alapján
Az Agent Framework segítségével egyszerűen hozhat létre egyszerű ügynököket számos különböző következtetési szolgáltatás alapján.
A Microsoft.Extensions.AI.IChatClient implementációt biztosító következtetési szolgáltatásokkal létrehozhatja ezeket az ügynököket. A Microsoft.Agents.AI.ChatClientAgent az ügynökosztály, amellyel ügynököt biztosíthat bármely IChatClient implementációhoz.
Ezek az ügynökök számos funkciót támogatnak a dobozon kívül:
- Függvényhívás.
- Többfordulós beszélgetések helyi csevegési előzmények kezelésével vagy szolgáltatás által biztosított csevegési előzmények kezelésével.
- Egyéni szolgáltatás által biztosított eszközök (például MCP, Kódvégrehajtás).
- Strukturált kimenetek.
Az egyik ilyen ügynök létrehozásához egyszerűen készítsen egy ChatClientAgent-t a választott IChatClient implementáció felhasználásával.
using Microsoft.Agents.AI;
var agent = new ChatClientAgent(chatClient, instructions: "You are a helpful assistant");
Ezeknek az ügynököknek a létrehozása még egyszerűbbé tétele érdekében az Agent Framework számos népszerű szolgáltatáshoz nyújt segítséget. További információkért tekintse meg az egyes szolgáltatások dokumentációját.
| Mögöttes következtetési szolgáltatás | Description | A szolgáltatás csevegési előzményeinek tárolása támogatott | Az InMemory/Egyéni csevegési előzmények tárolása támogatott |
|---|---|---|---|
| Microsoft Foundry Agent | Olyan ügynök, amely az Foundry Agent Szolgáltatást használja háttérrendszerként. | Igen | Nem |
| Foundry Models ChatCompletion | Olyan ügynök, amely a Foundry Service-ben üzembe helyezett modellek bármelyikét használja háttérként a ChatCompletionon keresztül. | Nem | Igen |
| Öntödei modellek válaszai | Olyan ügynök, amely a Foundry Service-ben üzembe helyezett modellek bármelyikét használja háttérként a Válaszok szolgáltatáson keresztül. | Igen | Igen |
| Foundry Anthropic | Egy ügynök, aki egy Claude-modellt használ az Foundry Antropic Service-en keresztül háttérrendszerként. | Nem | Igen |
| Azure OpenAI ChatCompletion | Az Azure OpenAI ChatCompletion szolgáltatást használó ügynök. | Nem | Igen |
| Azure OpenAI-válaszok | Az Azure OpenAI Responses szolgáltatást használó ügynök. | Igen | Igen |
| Anthropic | Egy ügynök, aki egy Claude-modellt használ az Antropikus Szolgálaton keresztül háttérrendszerként. | Nem | Igen |
| OpenAI ChatCompletion | Az OpenAI ChatCompletion szolgáltatást használó ügynök. | Nem | Igen |
| OpenAI-válaszok | Az OpenAI Responses szolgáltatást használó ügynök. | Igen | Igen |
Bármely más IChatClient |
Bármely más Microsoft.Extensions.AI.IChatClient implementációval is létrehozhat ügynököt. |
Varies | Varies |
Összetett egyéni ügynökök
Teljesen testreszabott ügynököket is létrehozhat, amelyek nem csak egy IChatClient összekötői.
Az ügynök-keretrendszer biztosítja az alaptípust AIAgent .
Ez az alaptípus az összes ügynök alapvető absztrakciója, amely alosztályozott állapot esetén lehetővé teszi az ügynök viselkedésének és képességeinek teljes ellenőrzését.
További információkért tekintse meg az egyéni ügynökök dokumentációját.
Proxyk távoli ügynökökhöz
Az Agent Framework készre konfigurált AIAgent implementációkat biztosít a szokásos, szolgáltatás által üzemeltetett ügynökprotokollokhoz, mint például az A2A. Így egyszerűen csatlakozhat az alkalmazás távoli ügynökeihez, és használhatja azt.
További információkért tekintse meg az egyes ügynöktípusok dokumentációját:
| Protokoll | Description |
|---|---|
| A2A | Olyan ügynök, amely proxyként szolgál egy távoli ügynökhöz az A2A protokollon keresztül. |
Azure és OpenAI SDK-beállítások – referencia
Az Foundry, Azure OpenAI, OpenAI vagy Antropikus szolgáltatások használatakor különböző SDK-lehetőségek állnak rendelkezésre ezekhez a szolgáltatásokhoz való csatlakozáshoz. Bizonyos esetekben több SDK is használható ugyanahhoz a szolgáltatáshoz való csatlakozáshoz, vagy ugyanazt az SDK-t használhatja a különböző szolgáltatásokhoz való csatlakozáshoz. Az alábbiakban felsoroljuk a különböző lehetőségeket, amelyekhez az url-címet kell használnia, amikor mindegyikhez csatlakozik. Mindenképpen cserélje le a <resource> és <project> címkéket a tényleges erőforrás- és projektnevekre.
| AI-szolgáltatás | SDK | Nuget | URL vagy webcím |
|---|---|---|---|
| Öntödei modellek | Azure OpenAI SDK 2 | Azure. AI. OpenAI | https://ai-foundry-<resource.services.ai.azure.com/> |
| Öntödei modellek | OpenAI SDK 3 | OpenAI | https://ai-foundry-<resource.services.ai.azure.com/openai/v1/> |
| Öntödei modellek | Azure AI-következtetési SDK 2 | Azure.AI.Inferencia | https://ai-foundry-<resource.services.ai.azure.com/models> |
| Öntödei ügynökök | Azure AI Projects SDK + Microsoft Agents AI Foundry | Azure.AI.Projektek / 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 | Nincs szükség URL-címre |
| Microsoft Foundry Anthropic | Anthropic Foundry SDK | Anthropic.Foundry | Erőforrásnév megadása kötelező |
| Anthrópiai | Anthropic SDK | Anthropic | Nincs szükség URL-címre vagy erőforrásnévre |
- Frissítés az Azure OpenAI-ról a Foundry-re
- Az OpenAI SDK használatát javasoljuk.
- Bár az OpenAI SDK használatát javasoljuk az Öntödei modellek eléréséhez, az Öntödei modellek számos különböző gyártó modelljeit támogatják, nem csak az OpenAI-t. Ezeket a modelleket az OpenAI SDK támogatja.
Az OpenAI SDK használata
Ahogy a fenti táblázatban látható, az OpenAI SDK több szolgáltatáshoz is csatlakoztatható.
Attól függően, hogy melyik szolgáltatáshoz csatlakozik, előfordulhat, hogy egyéni URL-címet kell beállítania a OpenAIClientlétrehozásakor.
A szolgáltatástól függően különböző hitelesítési mechanizmusokat is használhat.
Ha egyéni URL-címre van szükség (lásd a fenti táblázatot), beállíthatja az OpenAIClientOptions használatával.
var clientOptions = new OpenAIClientOptions() { Endpoint = new Uri(serviceUrl) };
Az ügyfél létrehozásakor api-kulcsot is használhat.
OpenAIClient client = new OpenAIClient(new ApiKeyCredential(apiKey), clientOptions);
Azure szolgáltatás használata esetén api-kulcs helyett Azure hitelesítő adatokat is használhat.
OpenAIClient client = new OpenAIClient(new BearerTokenPolicy(new DefaultAzureCredential(), "https://ai.azure.com/.default"), clientOptions)
Figyelmeztetés
DefaultAzureCredential a fejlesztéshez kényelmes, de a termelési környezetben gondos megfontolást igényel. Éles környezetben fontolja meg egy adott hitelesítő adat (pl. ManagedIdentityCredential) használatát a késési problémák elkerülése, a hitelesítő adatok nem szándékos próbálgatásának és a tartalék mechanizmusokból eredő esetleges biztonsági kockázatok elkerülése érdekében.
Az OpenAIClient létrehozása után lekérhet egy alügyfelet a használni kívánt szolgáltatáshoz, majd létrehozhat egy AIAgent-t belőle.
AIAgent agent = client
.AsAIAgent(model: model, instructions: "You are good at telling jokes.", name: "Joker");
Az Azure AI Projects SDK használata
Ezzel az SDK-val csatlakozhat az Foundry-szolgáltatásokhoz.
A megfelelő projektvégpont URL-címét kell megadnia a AIProjectClientlétrehozásakor.
A megfelelő URL-címet a fenti táblázatban találhatja meg.
AIAgent agent = new AIProjectClient(
new Uri(serviceUrl),
new DefaultAzureCredential())
.AsAIAgent(
model: deploymentName,
instructions: "You are good at telling jokes.",
name: "Joker");
Az Azure AI Projects SDK használata Foundry Agents segítségével
Ez az SDK mind a Responses API-alapú ügynökökhöz, mind a verziószámozott Foundry ügynökökhöz használható. A megfelelő URL-címet a fenti táblázatban találhatja meg.
var aiProjectClient = new AIProjectClient(new Uri(serviceUrl), new DefaultAzureCredential());
AIAgent agent = aiProjectClient.AsAIAgent(
model: deploymentName,
instructions: "You are good at telling jokes.",
name: "Joker");
Az Öntödei Antropikus SDK használata
Az erőforrás az altartomány neve / utóneve, amely a végpont Uri-ban a ".services.ai.azure.com" elé kerül.
Például: 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.");
Az antropikus SDK használata
var client = new AnthropicClient() { ApiKey = apiKey };
AIAgent agent = client.AsAIAgent(
model: deploymentName,
instructions: "Joker",
name: "You are good at telling jokes.");
Egyszerű ügynökök következtetési szolgáltatások alapján
Az Agent Framework segítségével egyszerűen hozhat létre egyszerű ügynököket számos különböző következtetési szolgáltatás alapján.
Olyan következtetési szolgáltatások, amelyek csevegőügyfél implementációt biztosítanak, használhatók ezeknek az ügynököknek a létrehozására.
Ez a SupportsChatGetResponse protokoll használatával végezhető el, amely meghatározza, hogy az ügyfélnek milyen módszereket kell támogatnia a standard Agent osztályhoz való használathoz.
Ezek az ügynökök számos funkciót támogatnak a dobozon kívül:
- Függvényhívás
- Többfordulós beszélgetések helyi csevegési előzmények kezelésével vagy szolgáltatás által biztosított csevegési előzmények kezelésével
- Egyéni szolgáltatás által biztosított eszközök (például MCP, Kódvégrehajtás)
- Strukturált kimenetek
- Válaszok streamelése
Ezen ügynökök egyikének létrehozásához egyszerűen konstruáljon egy Agent a választott csevegőügyfél-implementáció használatával.
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!")
Másik lehetőségként a csevegőügyfél kényelmi módszerét is használhatja:
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"
)
Megjegyzés:
Ez a példa a FoundryChatClient használatát mutatja be, de ugyanez a minta minden implementálandó SupportsChatGetResponsecsevegőügyfélre vonatkozik. A többi ügyfélről további információt a szolgáltatók áttekintésében talál.
Részletes példákért tekintse meg az ügynökspecifikus dokumentáció alábbi szakaszait.
Támogatott csevegésszolgáltatók
| Mögöttes következtetési szolgáltatás | Description | A szolgáltatás csevegési előzményeinek tárolása támogatott |
|---|---|---|
| Öntödei ügynök | Az ügynökszolgáltatást háttérként használó ügynök. | Igen |
| Azure OpenAI-csevegés befejezése | Egy ügynök, amely az Azure OpenAI Csevegés befejezése szolgáltatást használja. | Nem |
| Azure OpenAI-válaszok | Az Azure OpenAI Responses szolgáltatást használó ügynök. | Igen |
| OpenAI Csevegés Kiegészítés | Az OpenAI Csevegés befejezése szolgáltatást használó ügynök. | Nem |
| OpenAI-válaszok | Az OpenAI Responses szolgáltatást használó ügynök. | Igen |
| Anthropic Claude | Egy ügynök, aki antropikus Claude-modelleket használ. | Nem |
| Amazon alapkőzet | Egy ügynök, amely Amazon Bedrock-modelleket használ az Agent Framework Bedrock csevegési ügyfélprogramon keresztül. | Nem |
| GitHub Copilot | A GitHub Copilot SDK-háttérrendszert használó ügynök. | Nem |
| Ollama (OpenAI-kompatibilis) | Olyan ügynök, amely helyileg üzemeltetett Ollama-modelleket használ OpenAI-kompatibilis API-kon keresztül. | Nem |
| Bármilyen más Chatkliens | Az ügynök létrehozására bármely más implementációt SupportsChatGetResponse is használhat. |
Varies |
Az egyéni csevegési előzmények tárolója akkor támogatott, ha a munkamenet-alapú beszélgetési állapot támogatott.
Adatfolyam válaszok
Az ügynökök támogatják a rendszeres és a streaming válaszokat is.
# 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)
A streamelési példákért lásd:
- Öntödei streamelési példák
- Azure OpenAI-csevegés befejezésének streamelési példái
- Azure OpenAI-válaszok streamelési példái
- OpenAI Chat Completion streamelési példák
- OpenAI-válaszok streamelési példái
További meghívási mintákért lásd a Futó ügynökök című részt.
Függvényeszközök
Továbbfejlesztett képességek érdekében funkciókat biztosíthat az ügynököknek.
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?")
Az eszközökről és az eszközmintákról az Eszközök áttekintésében olvashat.
Egyéni ügynökök
A teljesen egyéni implementációk (például determinisztikus ügynökök vagy API-alapú ügynökök) esetében lásd az Egyéni ügynökök című témakört. Ez az oldal SupportsAgentRun megvalósításának vagy BaseAgent kiterjesztésének módját ismerteti, beleértve a streamelési frissítéseket a AgentResponseUpdate segítségével.
Egyéb ügynöktípusok
Az Agent Framework protokollalapú ügynököket is tartalmaz, például:
| Ügynök típusa | Description |
|---|---|
| A2A | Olyan proxyügynök, amely távoli A2A-kompatibilis ügynökökhöz csatlakozik és meghív. |