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.
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 típusa | Package | Description |
|---|---|---|
| Függvényeszközök | tool/functool |
Beírt Go-függvények JSON-sémákkal, amelyeket az ügynök meghívhat |
| Ügynök függvényeszközként | tool/agenttool |
Ügynök körbefuttatása úgy, tool.FuncTool hogy egy másik ügynök meghívhassa |
| Helyi MCP-eszközök | tool/mcptool |
Csatlakozás MCP-kiszolgálókhoz, és az eszközeik értékként tool.FuncTool való megjelenítése |
| Webes keresés | tool/hostedtool.WebSearch |
Szolgáltatóoldali webes keresés deklarálása, ha a háttérszolgáltatás támogatja |
| fájlkeresés | tool/hostedtool.FileSearch |
Szolgáltatóoldali fájl- vagy vektortároló-keresés deklarálása |
| Kódértelmező | tool/hostedtool.CodeInterpreter |
Szolgáltatóoldali kódvégrehajtás deklarálása |
| Üzemeltetett MCP-eszközök | tool/hostedtool.MCPServer |
McP-kiszolgáló deklarálása a szolgáltatói futtatókörnyezet hívásához |
| Helyi héjeszköz | tool/shelltool |
Helyi rendszerhéjparancsok futtatása olyan függvényeszközön keresztül, amely alapértelmezés szerint jóváhagyást igényel |
Minden eszköz implementálja a tool.Tool felületet:
type Tool interface {
Name() string
Description() string
}
A függvényeszközök emellett implementálják tool.FuncToola következőt:
import "context"
type FuncTool interface {
Tool
Schema() any
ReturnSchema() any
Call(ctx context.Context, arguments string) (any, error)
}
A legtöbb alkalmazás közvetlenül a functool.Newfunctool.MustNew implementálás FuncTool helyett függvényeszközöket hoz létre. A keretrendszer a Go-függvény aláírásával vagy strukturálási címkék használatával hozza létre a modell számára elérhető sémát.
Eszközök átadása az ügynöknek a következőn keresztül agent.Config.Tools:
a := foundryprovider.NewAgent(endpoint, token, foundryprovider.ModelDeployment(model), foundryprovider.AgentConfig{
Instructions: "You are a helpful assistant.",
Config: agent.Config{
Tools: []tool.Tool{weatherTool, calculatorTool},
},
})
Vagy adjon hozzá futtatásonként eszközöket:
resp, err := a.RunText(ctx, "What's the weather?", agent.WithTool(weatherTool)).Collect()
Eszköz jóváhagyása
Az eszközjóváhagyás egy keretrendszer-funkció, amely lehetővé teszi, hogy a modell megkapja az eredményt, mielőtt a modell megkapja az eredményt. Együttműködik azokkal a szolgáltatókkal, amelyek ügyfelei helyileg hívják meg az eszközöket; a szolgáltatásoldali üzemeltetett eszközök a szolgáltató saját jóváhagyási viselkedését követik. 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.
Go esetén jelölj meg egy visszavonhatatlan eszközt tool.ApprovalRequiredFunc egy már implementálható eszközzel, vagy használjon olyan eszközt, amely már implementálható tool.ApprovalRequiredTool, például a helyi rendszerhéj-eszközt. A jóváhagyási kérelmek és válaszok automatikusan meghívják a köztes szoftvereket, így a helyi függvényhívásokat visszaadó szolgáltatókkal működnek együtt.
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.
Szolgáltatói támogatási mátrix
A Go SDK Microsoft Foundryt foundryprovider és OpenAI/Azure OpenAI-t openaiprovidertesz elérhetővé. Az tool/hostedtool üzemeltetett eszközök deklarációk: a Go SDK elküldi őket a szolgáltatónak, és a szolgáltató dönti el, hogy elérhető-e az üzemeltetett képesség.
| Eszköz típusa | Öntöde | Válaszok | Csevegés kiegészítések | Anthropic |
|---|---|---|---|---|
| Függvényeszközök | ✅ | ✅ | ✅ | ✅ |
| Ügynök függvényeszközként | ✅ | ✅ | ✅ | ✅ |
| Helyi MCP-eszközök | ✅ | ✅ | ✅ | ✅ |
| Webes keresés | ✅ | ✅ | ✅ | ❌ |
| fájlkeresés | ❌ | ✅ | ❌ | ❌ |
| Kódértelmező | ✅ | ✅ | ❌ | ❌ |
| Üzemeltetett MCP-eszközök | ❌ | ✅ | ❌ | ❌ |
| Helyi héjeszköz | ✅ | ✅ | ✅ | ✅ |
Megjegyzés:
A helyi MCP-eszközök és a helyi rendszerhéj-eszköz a szolgáltató szempontjából függvényeszközök, ezért a függvényeszközök támogatását követik. Az olyan üzemeltetett eszközöket, mint a hostedtool.FileSearch, hostedtool.CodeInterpreterés hostedtool.MCPServer az AI szolgáltatás hajtja végre, nem pedig a Go folyamat.
Ü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"
)
Az ügynök burkolása agenttool.New egy másik ügynök számára való elérhetővé tool.FuncTool tétele érdekében:
import (
"github.com/microsoft/agent-framework-go/agent"
"github.com/microsoft/agent-framework-go/provider/foundryprovider"
"github.com/microsoft/agent-framework-go/tool"
"github.com/microsoft/agent-framework-go/tool/agenttool"
)
weatherAgent := foundryprovider.NewAgent(endpoint, token, foundryprovider.ModelDeployment(model), foundryprovider.AgentConfig{
Instructions: "You answer questions about the weather.",
Config: agent.Config{
Name: "WeatherAgent",
Description: "An agent that answers weather questions.",
Tools: []tool.Tool{weatherTool},
},
})
mainAgent := foundryprovider.NewAgent(endpoint, token, foundryprovider.ModelDeployment(model), foundryprovider.AgentConfig{
Instructions: "You are a helpful assistant.",
Config: agent.Config{
Tools: []tool.Tool{agenttool.New(weatherAgent, agenttool.Config{})},
},
})
resp, err := mainAgent.RunText(ctx, "Should I bring an umbrella to Amsterdam?").Collect()
Ugyanezt a burkolt ügynököt az MCP-vel mcptool.AddToolis elérhetővé teheti, mivel agenttool.New függvényeszközt ad vissza.
Tip
A teljes futtatható példákért tekintse meg az ügynököt függvényeszköz-mintaként , az ügynök pedig MCP-eszközmintaként .