Microsoft Ügynök-keretrendszer ügynöktípusai

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.

AI-ügynök diagramja

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:

  1. Függvényhívás.
  2. 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.
  3. Egyéni szolgáltatás által biztosított eszközök (például MCP, Kódvégrehajtás).
  4. 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
  1. Frissítés az Azure OpenAI-ról a Foundry-re
  2. Az OpenAI SDK használatát javasoljuk.
  3. 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:

  1. Függvényhívás
  2. 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
  3. Egyéni szolgáltatás által biztosított eszközök (például MCP, Kódvégrehajtás)
  4. Strukturált kimenetek
  5. 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:

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.

Következő lépések