Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A Microsoft Agent Framework 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.
Fontos
Ha a Microsoft Agent Framework használatával olyan alkalmazásokat hoz létre, amelyek külső kiszolgálókkal vagy ügynökökkel működnek, ezt saját felelősségére teheti meg. Javasoljuk, hogy tekintse át a külső kiszolgálókkal vagy ügynökökkel megosztott összes adatot, és hogy megismerje az adatok megőrzésére és elhelyezésére vonatkozó, harmadik féltől származó eljárásokat. Az Ön felelőssége annak kezelése, hogy az adatok a szervezet Azure-beli megfelelőségi és földrajzi határain kívülre kerülnek-e, valamint az ezzel kapcsolatos következményekkel.
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.
Megvalósítással Microsoft.Extensions.AI.IChatClient rendelkező következtetési szolgáltatások használhatók ezen ügynökök létrehozásához. Az Microsoft.Agents.AI.ChatClientAgent ügynökosztály a IChatClient bármely implementáció számára ügynök biztosítására szolgál.
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 kimenet.
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 | Szolgáltatáscsevegés előzménytárának támogatása | Testreszabott csevegési előzmények tárolásának támogatása |
|---|---|---|---|
| Azure AI Foundry-ügynök | Az Azure AI Foundry Agents Service-t háttérrendszerként használó ügynök. | Igen | Nem |
| Azure AI Foundry Models ChatCompletion | Olyan ügynök, amely az Azure AI Foundry Service-ben üzembe helyezett modellek bármelyikét használja háttérként a ChatCompletionon keresztül. | Nem | Igen |
| Azure AI Foundry-modellek válaszai | Olyan ügynök, amely az Azure AI Foundry Service-ben üzembe helyezett modellek bármelyikét használja háttérként a Válaszok segítségével. | 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 |
| 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 |
| OpenAI Assistants | Az OpenAI Assistants szolgáltatást használó ügynök. | Igen | Nem |
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. |
Az Azure és az OpenAI SDK beállításainak ismertetése
Az Azure AI Foundry, az Azure OpenAI vagy az OpenAI 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 |
|---|---|---|---|
| Azure AI Innovációs Platform Modellek | Azure OpenAI SDK 2 | Azure.AI.OpenAI | https://ai-foundry-<resource.services.ai.azure.com/> |
| Azure AI Innovációs Platform Modellek | OpenAI SDK 3 | OpenAI | https://ai-foundry-<resource.services.ai.azure.com/openai/v1/> |
| Azure AI Innovációs Platform Modellek | Azure AI-inferálási SDK 2 | Azure.AI.Inference | https://ai-foundry-<resource.services.ai.azure.com/models> |
| Azure AI Foundry ügynökök | Azure AI Állandóügynökök SDK | 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 | Nincs szükség URL-címre |
- Frissítés az Azure OpenAI-ról az Azure AI Foundryre
- Az OpenAI SDK használatát javasoljuk.
- Bár az OpenAI SDK használatát javasoljuk az Azure AI Foundry-modellek eléréséhez, az Azure AI Foundry Models számos különböző gyártó modelljeit támogatja, 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 AZ API-kulcs helyett Azure-hitelesítő adatokat is használhat.
OpenAIClient client = new OpenAIClient(new BearerTokenPolicy(new AzureCliCredential(), "https://ai.azure.com/.default"), clientOptions)
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
.GetChatClient(model)
.CreateAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
Az Azure OpenAI SDK használata
Ez az SDK használható az Azure OpenAI és az Azure AI Foundry Models szolgáltatásokhoz való csatlakozáshoz.
Akárhogy is, a megfelelő szolgáltatás URL-címét kell megadnia a AzureOpenAIClientlétrehozásakor.
A megfelelő URL-címet a fenti táblázatban találhatja meg.
AIAgent agent = new AzureOpenAIClient(
new Uri(serviceUrl),
new AzureCliCredential())
.GetChatClient(deploymentName)
.CreateAIAgent(instructions: "You are good at telling jokes.", name: "Joker");
Az Azure AI Persistent Agents SDK használata
Ez az SDK csak az Azure AI Foundry Agents szolgáltatással támogatott. A megfelelő URL-címet a fenti táblázatban találhatja meg.
var persistentAgentsClient = new PersistentAgentsClient(serviceUrl, new AzureCliCredential());
AIAgent agent = await persistentAgentsClient.CreateAIAgentAsync(
model: deploymentName,
name: "Joker",
instructions: "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.
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 kimenet
- Válaszok streamelése
Ezen ügynökök egyikének létrehozásához egyszerűen építsen egy ChatAgent a választott csevegőügyfél-implementáció segítségével.
from agent_framework import ChatAgent
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import DefaultAzureCredential
async with (
DefaultAzureCredential() as credential,
ChatAgent(
chat_client=AzureAIAgentClient(async_credential=credential),
instructions="You are a helpful assistant"
) as agent
):
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.azure import AzureAIAgentClient
from azure.identity.aio import DefaultAzureCredential
async with DefaultAzureCredential() as credential:
agent = AzureAIAgentClient(async_credential=credential).create_agent(
instructions="You are a helpful assistant"
)
Részletes példákért tekintse meg az ügynökspecifikus dokumentáció alábbi szakaszait.
Támogatott ügynöktípusok
| 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 egyéni csevegési előzmények tárolója támogatott |
|---|---|---|---|
| Azure AI-ügynök | Az Azure AI Agents Service-t háttérrendszerként használó ügynök. | Igen | Nem |
| Azure OpenAI-csevegés befejezése | Az Azure OpenAI Chat Completion 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 |
| OpenAI Csevegés Kiegészítés | Az OpenAI Csevegés befejezése szolgáltatást használó ügynök. | Nem | Igen |
| OpenAI-válaszok | Az OpenAI Responses szolgáltatást használó ügynök. | Igen | Igen |
| OpenAI Assistants | Az OpenAI Assistants szolgáltatást használó ügynök. | Igen | Nem |
| Bármilyen más Chatkliens | Bármely más csevegőügyfél-implementációval is létrehozhat ügynököt. | Varies | Varies |
Függvényeszközök
Továbbfejlesztett képességek érdekében funkciókat biztosíthat az ügynököknek.
from typing import Annotated
from pydantic import Field
from azure.identity.aio import DefaultAzureCredential
from agent_framework.azure import AzureAIAgentClient
def get_weather(location: Annotated[str, Field(description="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,
AzureAIAgentClient(async_credential=credential).create_agent(
instructions="You are a helpful weather assistant.",
tools=get_weather
) as agent
):
response = await agent.run("What's the weather in Seattle?")
A függvényeszközökkel kapcsolatos példákért lásd:
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_stream("What's the weather like in Portland?"):
if chunk.text:
print(chunk.text, end="", flush=True)
A streamelési példákért lásd:
Kódértelmező eszközök
Az Azure AI-ügynökök támogatják az üzemeltetett kódértelmező eszközöket a Python-kód végrehajtásához:
from agent_framework import ChatAgent, HostedCodeInterpreterTool
from agent_framework.azure import AzureAIAgentClient
from azure.identity.aio import DefaultAzureCredential
async with (
DefaultAzureCredential() as credential,
ChatAgent(
chat_client=AzureAIAgentClient(async_credential=credential),
instructions="You are a helpful assistant that can execute Python code.",
tools=HostedCodeInterpreterTool()
) as agent
):
response = await agent.run("Calculate the factorial of 100 using Python")
A kódértelmezők példáiért lásd:
Egyéni ügynökök
Teljesen egyéni ügynököket is létrehozhat, amelyek nem csak egy csevegőügyfél körül burkolóznak.
Az Ügynök-keretrendszer biztosítja a protokollt és AgentProtocol az BaseAgent alaposztályt, amely implementálás/alosztály esetén lehetővé teszi az ügynök viselkedésének és képességeinek teljes ellenőrzését.
from agent_framework import BaseAgent, AgentRunResponse, AgentRunResponseUpdate, AgentThread, ChatMessage
from collections.abc import AsyncIterable
class CustomAgent(BaseAgent):
async def run(
self,
messages: str | ChatMessage | list[str] | list[ChatMessage] | None = None,
*,
thread: AgentThread | None = None,
**kwargs: Any,
) -> AgentRunResponse:
# Custom agent implementation
pass
def run_stream(
self,
messages: str | ChatMessage | list[str] | list[ChatMessage] | None = None,
*,
thread: AgentThread | None = None,
**kwargs: Any,
) -> AsyncIterable[AgentRunResponseUpdate]:
# Custom streaming implementation
pass