Eszközök áttekintése

Az Agent Framework számos különböző típusú eszközt támogat, amelyek kibővítik az ügynök képességeit. Az eszközök lehetővé teszik az ügynökök számára a külső rendszerekkel való interakciót, a kód végrehajtását, a keresési adatokat és egyebeket.

Eszköztípusok

Eszköz típusa Description
Függvényeszközök Egyéni kód, amelyet az ügynökök beszélgetések során hívhatnak meg
Kódértelmező Kód végrehajtása tesztkörnyezetben
fájlkeresés Keresés feltöltött fájlokon keresztül
Webes keresés Információk keresése a weben
Üzemeltetett MCP-eszközök A szolgáltatói futtatókörnyezet által meghívott MCP-kiszolgálók
Helyi MCP-eszközök Helyileg vagy egyéni gazdagépeken futó MCP-kiszolgálók
Öntödei eszközkészletek Egy Foundry-projektben felügyelt üzemeltetett eszközkonfigurációk nevesített, verziószámozott csomagjai
Eszköz típusa Description
Függvényeszközök Egyéni kód, amelyet az ügynökök beszélgetések során hívhatnak meg
Kódértelmező Kód végrehajtása tesztkörnyezetben
fájlkeresés Keresés feltöltött fájlokon keresztül
Webes keresés Információk keresése a weben
Üzemeltetett MCP-eszközök A szolgáltatói futtatókörnyezet által meghívott MCP-kiszolgálók
Helyi MCP-eszközök Helyileg vagy egyéni gazdagépeken futó MCP-kiszolgálók
Öntödei eszközkészletek Egy Foundry-projektben felügyelt üzemeltetett eszközkonfigurációk nevesített, verziószámozott csomagjai
Képgenerálás Üzemeltetett rendszerkép létrehozása az Foundry /OpenAI-válaszok futtatókörnyezetben
Shell Üzemeltetett rendszerhéj végrehajtása az OpenAI-válaszok futtatókörnyezetében – eltér a GitHub Copilot parancssori felület beépített rendszerhéj-/fájl-/URL-futtatókörnyezeti eszközeitől
Bing Földelés Webes földelés saját Földelésen keresztül a Bing Search-erőforrással – kísérleti
Bing Custom Search A Bing földelése válogatott tartománylistára korlátozódik – előzetes verzió
Azure AI Keresés Azure AI Keresés index lekérdezése Foundry-kapcsolaton keresztül – kísérleti
SharePoint Alap válaszok SharePoint tartalomban – előzetes verzió
Microsoft Fabric Fabric-adatügynök lekérdezése – előzetes verzió
Memóriakeresés Keresés egy Foundry által felügyelt memóriatárolóban – előzetes verzió
Számítógépes használat Asztali vagy böngészőkörnyezet vezetése – előzetes verzió
Böngészőautomatizálás Böngésző vezetése Azure Playwrighton keresztül – előzetes verzió
Ügynök–ügynök (A2A) eszköz Távoli A2A-ügynök meghívása eszközként egy Foundry-ügynökből – előzetes verzió

Megjegyzés:

A kísérleti vagy előzetes verziójú eszközök dokumentálva vannak a megfelelő szolgáltatói oldalon, és a folyamat első használatakor bocsátják ki ExperimentalWarning őket.

Eszköz jóváhagyása

Az eszközjóváhagyás egy keretrendszer-funkció, amellyel minden eszközhívást – függvényeszközöket, üzemeltetett eszközöket, MCP-eszközhívásokat – egy emberi döntéssel nyithat meg, mielőtt a modell megkapja az eredményt. A keretrendszer függvény-invokáló csevegőügyfele kezeli .NET és Python is, így minden olyan szolgáltatóval együttműködik, amelynek az ügyfele helyileg meghívja az eszközöket; nem szolgáltatónkénti képesség. A teljes minta eszközjóváhagyási oldalán megtekintheti, hogy a jóváhagyások hogyan működnek együtt a munkamenetekkel, a streameléssel és a köztes szoftverekkel.

Szolgáltatói támogatási mátrix

Az OpenAI és Azure OpenAI-szolgáltatók mindegyike két ügyféltípust kínál – a Válaszokat és a Csevegés befejezését – különböző eszközképességekkel. Az Azure OpenAI-ügyfelek az OpenAI-ekvivalenseiket tükrözik. Copilot Studio és A2A ügynökök távoli szolgáltatáson futnak, így képességeik az Ügynökkeret-ügyfél helyett a távoli ügynökön vannak konfigurálva – nem szerepelnek a mátrixban.

Eszköz típusa Válaszok Csevegés befejezése Öntöde Anthropic Ollama GitHub Copilot
Függvényeszközök
Kódértelmező
fájlkeresés
Webes keresés
Üzemeltetett MCP-eszközök
Helyi MCP-eszközök

Megjegyzés:

A Responses és Chat Completion oszlopok az OpenAI és Azure OpenAI oszlopra is érvényesek – a Azure változatok ugyanazt az eszköztámogatást tükrözik, mint openAI-társaik. Az elavult OpenAI Asszisztants API már nincs dokumentálva; A migrálási útmutatót a Szemantikus kernel migrálási útmutatóban találja.

Szolgáltatói támogatási mátrix

Az OpenAI és az Azure OpenAI-szolgáltatók mindegyike több ügyféltípust kínál különböző eszközképességekkel. Az Azure OpenAI-ügyfelek az OpenAI-ekvivalenseiket tükrözik. Az Foundry oszlop a következőre vonatkozik FoundryChatClient : az FoundryAgenteszközök az Foundry-ügynök definícióján vannak konfigurálva (lásd: Mi működik és mi nem működik).FoundryAgent Copilot Studio és A2A ügynökök távoli szolgáltatáson futnak, így képességeik az Ügynökkeret-ügyfél helyett a távoli ügynökön vannak konfigurálva – nem szerepelnek a mátrixban.

Eszköz típusa Válaszok Csevegés befejezése Öntöde Anthropic Ollama Foundry Local GitHub Copilot
Függvényeszközök ⚠️¹ ⚠️¹
Kódértelmező
fájlkeresés
Webes keresés
Képgenerálás
Hosted Shell (get_shell_tool)
Beépített rendszerhéj / fájlrendszer / URL-beolvasás ✅²
Üzemeltetett MCP-eszközök
Helyi MCP-eszközök
Öntödei eszközkészletek
Bing Grounding (kísérleti)
Bing Custom Search (előzetes verzió)
Azure AI Keresés (kísérleti)
SharePoint (előzetes verzió)
Microsoft Fabric (előzetes verzió)
Memóriakeresés (előzetes verzió)
Számítógép-használat (előzetes verzió)
Böngészőautomatizálás (előzetes verzió)
Ügynök–ügynök (A2A) eszköz (előzetes verzió)

¹ A kiválasztott helyi modell támogató függvényhívásától függ. ² Beépített a GitHub Copilot CLI-futtatókörnyezetbe, amelyet egy engedélykezelő vezet. Más felület, mint az OpenAI-é get_shell_tool.

Megjegyzés:

A Responses és Chat Completion oszlopok az OpenAI és Azure OpenAI oszlopra is érvényesek – a Azure változatok ugyanazt az eszköztámogatást tükrözik, mint openAI-társaik. A helyi MCP-eszközök minden olyan szolgáltatóval együttműködnek, amely támogatja a függvényeszközöket.

Ügynök használata függvényeszközként

Egy ügynök függvényeszközként használható egy másik ügynökhöz, lehetővé téve az ügynökök összetételét és a fejlettebb munkafolyamatokat. A belső ügynök függvényeszközzé alakul, és a külső ügynökhöz kerül, amely szükség szerint meghívhatja.

Meghívhat .AsAIFunction() egy olyan AIAgent függvényeszközt, amely egy másik ügynöknek adható:

// Create the inner agent with its own tools
AIAgent weatherAgent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You answer questions about the weather.",
        name: "WeatherAgent",
        description: "An agent that answers questions about the weather.",
        tools: [AIFunctionFactory.Create(GetWeather)]);

// Create the main agent and provide the inner agent as a function tool
AIAgent agent = new AIProjectClient(
    new Uri("<your-foundry-project-endpoint>"),
    new DefaultAzureCredential())
     .AsAIAgent(
        model: "gpt-4o-mini",
        instructions: "You are a helpful assistant.",
        tools: [weatherAgent.AsAIFunction()]);

// The main agent can now call the weather agent as a tool
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));

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.

Hívja meg .as_tool() az ügynököt, hogy átalakítsa egy másik ügynöknek adható függvényeszközzé:

import os
from agent_framework.openai import OpenAIChatCompletionClient
from azure.identity import AzureCliCredential

# Create the inner agent with its own tools
weather_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    name="WeatherAgent",
    description="An agent that answers questions about the weather.",
    instructions="You answer questions about the weather.",
    tools=get_weather
)

# Create the main agent and provide the inner agent as a function tool
main_agent = OpenAIChatCompletionClient(
    model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
    azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
    api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
    credential=AzureCliCredential(),
).as_agent(
    instructions="You are a helpful assistant.",
    tools=weather_agent.as_tool()
)

# The main agent can now call the weather agent as a tool
result = await main_agent.run("What is the weather like in Amsterdam?")
print(result.text)

Az eszköz nevét, leírását és argumentumnevét testre is szabhatja:

weather_tool = weather_agent.as_tool(
    name="WeatherLookup",
    description="Look up weather information for any location",
    arg_name="query",
    arg_description="The weather query or location"
)

Következő lépések