Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Agent Framework podporuje mnoho různých typů nástrojů, které rozšiřují možnosti agenta. Nástroje umožňují agentům pracovat s externími systémy, spouštět kód, prohledávat data a provádět další možnosti.
Typy nástrojů
| Typ nástroje | Description |
|---|---|
| Nástroje funkcí | Vlastní kód, který můžou agenti volat během konverzací |
| interpretu kódu | Spuštění kódu v prostředí s izolovaným prostorem (sandbox) |
| hledání souborů | Hledání prostřednictvím nahraných souborů |
| Vyhledávání na webu | Vyhledání informací na webu |
| Hostované nástroje MCP | Servery MCP vyvolané modulem runtime poskytovatele |
| Místní nástroje MCP | Servery MCP spuštěné místně nebo na vlastních hostitelích |
| Sady nástrojů Foundry | Pojmenované sady verzí hostovaných konfigurací nástrojů spravovaných v projektu Foundry |
| Typ nástroje | Description |
|---|---|
| Nástroje funkcí | Vlastní kód, který můžou agenti volat během konverzací |
| interpretu kódu | Spuštění kódu v prostředí s izolovaným prostorem (sandbox) |
| hledání souborů | Hledání prostřednictvím nahraných souborů |
| Vyhledávání na webu | Vyhledání informací na webu |
| Hostované nástroje MCP | Servery MCP vyvolané modulem runtime poskytovatele |
| Místní nástroje MCP | Servery MCP spuštěné místně nebo na vlastních hostitelích |
| Sady nástrojů Foundry | Pojmenované sady verzí hostovaných konfigurací nástrojů spravovaných v projektu Foundry |
| Generování obrazu | Generování hostované image v modulu runtime Foundry / OpenAI Odpovědi |
| Shell | Spouštění hostovaného prostředí v modulu runtime Odpovědí OpenAI – liší se od integrovaných nástrojů příkazového řádku GitHub Copilot CLI/ file/URL runtime |
| Zemnění Bingu | Webové uzemnění prostřednictvím vlastního uzemnění s využitím prostředku Vyhledávání Bingu – experimentální |
| Vlastní vyhledávání Bingu | Uzemnění Bingu omezené na kurátorovaný seznam domén – Preview |
| Azure AI Vyhledávač | Dotazování Azure AI Vyhledávač indexu prostřednictvím připojení Foundry – experimentální |
| SharePoint | Základní odpovědi v obsahu SharePoint – náhled |
| Microsoft Fabric | Dotazování Fabric datového agenta – Preview |
| Hledání paměti | Vyhledávání úložiště paměti spravovaného foundry – Preview |
| Použití počítačů | Řízení desktopového prostředí nebo prostředí prohlížeče – Preview |
| Automatizace prohlížeče | Ovládání prohlížeče přes Azure Playwright – preview |
| Nástroj Agent-to-Agent (A2A) | Volání vzdáleného agenta A2A jako nástroje z agenta Foundry – Preview |
Poznámka:
Nástroje označené jako experimentální nebo náhled jsou zdokumentované na stránce příslušného ExperimentalWarning poskytovatele a vygenerují se při prvním použití v procesu.
| Typ nástroje | Package | Description |
|---|---|---|
| Nástroje funkcí | tool/functool |
Funkce Typed Go se schématy JSON, které může agent volat |
| Agent as Function Tool | tool/agenttool |
Zabalení agenta jako tool.FuncTool agenta tak, aby ho mohl volat jiný agent |
| Místní nástroje MCP | tool/mcptool |
Připojení k serverům MCP a zveřejnění jejich nástrojů jako tool.FuncTool hodnot |
| Vyhledávání na webu | tool/hostedtool.WebSearch |
Deklarace webového vyhledávání na straně poskytovatele, když ji backingová služba podporuje |
| hledání souborů | tool/hostedtool.FileSearch |
Deklarace hledání na straně zprostředkovatele nebo vektorového úložiště |
| interpretu kódu | tool/hostedtool.CodeInterpreter |
Deklarace spouštění kódu na straně zprostředkovatele |
| Hostované nástroje MCP | tool/hostedtool.MCPServer |
Deklarace serveru MCP pro modul runtime poskytovatele, který se má volat |
| Lokální nástroj shell | tool/shelltool |
Spouštění příkazů místního prostředí prostřednictvím nástroje funkcí, který ve výchozím nastavení vyžaduje schválení |
Všechny nástroje implementují tool.Tool rozhraní:
type Tool interface {
Name() string
Description() string
}
Nástroje funkcí navíc implementují tool.FuncTool:
import "context"
type FuncTool interface {
Tool
Schema() any
ReturnSchema() any
Call(ctx context.Context, arguments string) (any, error)
}
Většina aplikací vytváří nástroje funkcí s functool.New přímou implementací nebo functool.MustNew nikoli přímo FuncTool . Architektura používá podpis funkce Go nebo značky struktury k sestavení schématu vystaveného modelu.
Předat nástroje agentu prostřednictvím 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},
},
})
Nebo přidejte nástroje pro jednotlivé spuštění:
resp, err := a.RunText(ctx, "What's the weather?", agent.WithTool(weatherTool)).Collect()
Schválení nástroje
Schválení nástroje je funkce architektury, která umožňuje vrátení nástrojů prostřednictvím rozhodnutí člověka ve smyčce před tím, než model obdrží výsledek. Funguje s poskytovateli, jejichž klienti volají nástroje místně; Hostované nástroje na straně služby se řídí vlastním chováním poskytovatele schválení. Na stránce Schválení nástrojů najdete úplný vzor, včetně toho, jak schválení komunikují s relacemi, streamováním a middlewarem.
Pro Go označte vyvoláný nástroj nebo tool.ApprovalRequiredFunc použijte nástroj, který už implementuje tool.ApprovalRequiredTool, například místní nástroj shellu. Žádosti o schválení a odpovědi procházejí middlewarem automatického volání nástroje, takže pracují s poskytovateli, kteří vracejí volání místních funkcí.
Matice podpory zprostředkovatele
Poskytovatelé OpenAI a Azure OpenAI nabízejí dva typy klientů – Odpovědi a dokončování chatu – s různými možnostmi nástrojů. Klienti Azure OpenAI zrcadlí své ekvivalenty OpenAI. Copilot Studio a A2A agenti běží ve vzdálené službě, aby jejich schopnosti byly nakonfigurované na vzdáleném agentovi, ne prostřednictvím klienta agenta Framework – nejsou uvedené v matici.
| Typ nástroje | Reakce | Dokončení chatu | Slévárna | Anthropic | Ollama | GitHub Copilot |
|---|---|---|---|---|---|---|
| Nástroje funkcí | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| interpretu kódu | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| hledání souborů | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Vyhledávání na webu | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Hostované nástroje MCP | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ |
| Místní nástroje MCP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Poznámka:
Sloupce Responses a Chat Completion platí pro OpenAI i Azure OpenAI – varianty Azure zrcadlí stejnou podporu nástroje jako jejich protějšky OpenAI. Zastaralé rozhraní OpenAI Assistants API už není zdokumentované; Pokyny k migraci najdete v průvodci migrací Sémantické jádro.
Matice podpory zprostředkovatele
Poskytovatelé OpenAI a Azure OpenAI nabízejí různé typy klientů s různými možnostmi nástrojů. Klienti Azure OpenAI zrcadlí své ekvivalenty OpenAI. Sloupec Foundry platí FoundryChatClient pro – pro FoundryAgent, nástroje jsou nakonfigurovány v definici agenta Foundry (viz Co funguje a co není s FoundryAgent).
Copilot Studio a A2A agenti běží ve vzdálené službě, aby jejich schopnosti byly nakonfigurované na vzdáleném agentovi, ne prostřednictvím klienta agenta Framework – nejsou uvedené v matici.
| Typ nástroje | Reakce | Dokončení chatu | Slévárna | Anthropic | Ollama | Místní prostředí Foundry | GitHub Copilot |
|---|---|---|---|---|---|---|---|
| Nástroje funkcí | ✅ | ✅ | ✅ | ✅ | ⚠️¹ | ⚠️¹ | ✅ |
| interpretu kódu | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| hledání souborů | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Vyhledávání na webu | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Generování obrazu | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
Hostované prostředí (get_shell_tool) |
✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Integrované prostředí / systém souborů / načtení adresy URL | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅² |
| Hostované nástroje MCP | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ |
| Místní nástroje MCP | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Sady nástrojů Foundry | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Zemnění Bingu (experimentální) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Vlastní vyhledávání Bingu (Preview) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Azure AI Vyhledávač (experimentální) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| SharePoint (Preview) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Microsoft Fabric (Preview) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Vyhledávání paměti (Preview) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Použití počítače (Preview) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Automatizace prohlížeče (Preview) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Nástroj Agent-to-Agent (A2A) ( Preview) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
¹ Závisí na zvoleném místním modelu podporujícím volání funkcí.
² Integrovaný do modulu runtime rozhraní příkazového řádku GitHub Copilot, který je bránou obslužnou rutinou oprávnění. Jiný povrch než OpenAI get_shell_tool.
Poznámka:
Sloupce Responses a Chat Completion platí pro OpenAI i Azure OpenAI – varianty Azure zrcadlí stejnou podporu nástroje jako jejich protějšky OpenAI. Místní nástroje MCP fungují s libovolným poskytovatelem, který podporuje nástroje funkcí.
Matice podpory zprostředkovatele
Sada Go SDK zveřejňuje Microsoft Foundry prostřednictvím foundryprovider OpenAI/Azure OpenAI prostřednictvím openaiprovider. Hostované nástroje jsou tool/hostedtool deklarace: Go SDK je odešle poskytovateli a poskytovatel rozhodne, jestli je tato hostovaná funkce dostupná.
| Typ nástroje | Slévárna | Reakce | Dokončení chatu | Anthropic |
|---|---|---|---|---|
| Nástroje funkcí | ✅ | ✅ | ✅ | ✅ |
| Agent as Function Tool | ✅ | ✅ | ✅ | ✅ |
| Místní nástroje MCP | ✅ | ✅ | ✅ | ✅ |
| Vyhledávání na webu | ✅ | ✅ | ✅ | ❌ |
| hledání souborů | ❌ | ✅ | ❌ | ❌ |
| interpretu kódu | ✅ | ✅ | ❌ | ❌ |
| Hostované nástroje MCP | ❌ | ✅ | ❌ | ❌ |
| Lokální nástroj shell | ✅ | ✅ | ✅ | ✅ |
Poznámka:
Místní nástroje MCP a místní nástroj prostředí jsou nástroje funkcí z pohledu poskytovatele, takže sledují podporu nástrojů funkcí. Hostované nástroje, jako hostedtool.FileSearchje například , hostedtool.CodeInterpretera hostedtool.MCPServer jsou spouštěné službou AI, nikoli procesem Go.
Použití agenta jako nástroje funkce
Agenta můžete použít jako nástroj funkce pro jiného agenta, který umožňuje složení agenta a pokročilejší pracovní postupy. Vnitřní agent se převede na nástroj funkce a poskytne se vnějšímu agentu, který ho pak může podle potřeby volat.
Voláním .AsAIFunction()AIAgent funkce ji převeďte na nástroj funkce, který je možné poskytnout jinému agentu:
// 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?"));
Výstraha
DefaultAzureCredential je vhodný pro vývoj, ale vyžaduje pečlivé zvážení v produkčním prostředí. V produkčním prostředí zvažte použití konkrétních přihlašovacích údajů (např ManagedIdentityCredential. ) k zabránění problémům s latencí, neúmyslnému testování přihlašovacích údajů a potenciálním bezpečnostním rizikům z náhradních mechanismů.
Volání .as_tool() agenta, který ho převede na nástroj funkce, který je možné poskytnout jinému agentu:
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)
Můžete také přizpůsobit název nástroje, popis a název argumentu:
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"
)
Zabalte agenta tak agenttool.New , aby byl dostupný jako tool.FuncTool jiný agent:
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()
Můžete také vystavit stejného zabaleného agenta prostřednictvím MCP s mcptool.AddTool, protože agenttool.New vrací nástroj funkce.
Tip
Kompletní příklady spustitelných příkladů najdete v ukázce nástroje funkcí agenta jako ukázku nástroje MCP .