Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Agent Framework, aracı özelliklerini genişleten birçok farklı araç türünü destekler. Araçlar, aracıların dış sistemlerle etkileşim kurmasına, kod yürütmesine, veri aramasına ve daha fazlasına olanak tanır.
Araç Türleri
| Araç Türü | Description |
|---|---|
| İşlev Araçları | Aracıların konuşmalar sırasında çağırabileceği özel kod |
| Kod Yorumlayıcısı | Korumalı bir ortamda kod yürütme |
| Dosya Arama | Karşıya yüklenen dosyalar arasında arama |
| Web Araması | Bilgi için web'de arama yapma |
| Barındırılan MCP Araçları | Sağlayıcı çalışma zamanı tarafından çağrılan MCP sunucuları |
| Yerel MCP Araçları | Yerel olarak veya özel konaklarda çalışan MCP sunucuları |
| Döküm Aracı Kutuları | Foundry projesinde yönetilen barındırılan araç yapılandırmalarının adlandırılmış, sürümlenmiş paketleri |
| Araç Türü | Description |
|---|---|
| İşlev Araçları | Aracıların konuşmalar sırasında çağırabileceği özel kod |
| Kod Yorumlayıcısı | Korumalı bir ortamda kod yürütme |
| Dosya Arama | Karşıya yüklenen dosyalar arasında arama |
| Web Araması | Bilgi için web'de arama yapma |
| Barındırılan MCP Araçları | Sağlayıcı çalışma zamanı tarafından çağrılan MCP sunucuları |
| Yerel MCP Araçları | Yerel olarak veya özel konaklarda çalışan MCP sunucuları |
| Döküm Aracı Kutuları | Foundry projesinde yönetilen barındırılan araç yapılandırmalarının adlandırılmış, sürümlenmiş paketleri |
| Görüntü Üretimi | Foundry / OpenAI Yanıtları çalışma zamanında barındırılan görüntü oluşturma |
| Shell | OpenAI Yanıtları çalışma zamanında barındırılan kabuk yürütme — GitHub Copilot CLI'nın yerleşik kabuk/dosya/URL çalışma zamanı araçlarından farklıdır |
| Bing Temellendirme | Bing Arama kaynağı ile kendi Topraklamanız aracılığıyla web topraklama — deneysel |
| Bing Özel Arama | Bing topraklama, seçilmiş bir etki alanı listesiyle sınırlı — önizleme |
| Azure AI Arama Hizmeti | Foundry bağlantısı aracılığıyla bir Azure Yapay Zeka Arama dizini sorgulama — deneysel |
| SharePoint | SharePoint içeriğinde temel yanıtlar — önizleme |
| Microsoft Fabric | Fabric veri aracılarını sorgulama — önizleme |
| Bellek Arama | Foundry tarafından yönetilen bellek deposunda arama — önizleme |
| Bilgisayar Kullanımı | Masaüstü veya tarayıcı ortamı oluşturma — önizleme |
| Tarayıcı Otomasyonu | Azure Playwright aracılığıyla tarayıcı kullanma — önizleme |
| Aracıdan Aracıya (A2A) aracı | Bir Foundry aracısından uzak bir A2A aracısını araç olarak çağırma — önizleme |
Uyarı
Deneysel veya önizleme olarak işaretlenen araçlar, ilgili sağlayıcı sayfasında belgelenir ve bir işlemde ilk kez kullanıldıklarında yayarExperimentalWarning.
| Araç Türü | Package | Description |
|---|---|---|
| İşlev Araçları | tool/functool |
Aracının çağırabileceği JSON şemalarıyla yazılan Go işlevleri |
| İşlev Aracı olarak Aracı | tool/agenttool |
Başka bir aracının çağırabilmesi için aracıyı bir tool.FuncTool aracı olarak sarmalama |
| Yerel MCP Araçları | tool/mcptool |
MCP sunucularına bağlanma ve araçlarını değer olarak tool.FuncTool kullanıma sunma |
| Web Araması | tool/hostedtool.WebSearch |
Destek hizmeti desteklediğinde sağlayıcı tarafı web araması bildirme |
| Dosya Arama | tool/hostedtool.FileSearch |
Sağlayıcı tarafı dosya veya vektör deposu araması bildirme |
| Kod Yorumlayıcısı | tool/hostedtool.CodeInterpreter |
Sağlayıcı tarafı kod yürütmeyi bildirme |
| Barındırılan MCP Araçları | tool/hostedtool.MCPServer |
Sağlayıcı çalışma zamanının çağırması için bir MCP sunucusu bildirme |
| Yerel kabuk aracı | tool/shelltool |
Varsayılan olarak onay gerektiren bir işlev aracı aracılığıyla yerel kabuk komutlarını çalıştırma |
Tüm araçlar arabirimi uygular tool.Tool :
type Tool interface {
Name() string
Description() string
}
İşlev araçları ayrıca şunu uygular tool.FuncTool:
import "context"
type FuncTool interface {
Tool
Schema() any
ReturnSchema() any
Call(ctx context.Context, arguments string) (any, error)
}
Çoğu uygulama, doğrudan uygulamak FuncTool yerine veya functool.MustNew ile functool.New işlev araçları oluşturur. Çerçeve, modele sunulan şemayı oluşturmak için Go işlevi imzasını veya yapı etiketlerini kullanır.
aracıya aracılığıyla araçları geçirin 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},
},
})
Veya çalıştırma başına araçlar ekleyin:
resp, err := a.RunText(ctx, "What's the weather?", agent.WithTool(weatherTool)).Collect()
Araç Onayı
Araç Onayı , model sonucu almadan önce döngüdeki insan kararını kullanarak araç çağrılarını geçmenizi sağlayan bir çerçeve özelliğidir. İstemcileri araçları yerel olarak çağıran sağlayıcılarla çalışır; hizmet tarafında barındırılan araçlar, sağlayıcının kendi onay davranışını izler. Onayların oturumlarla, akışla ve ara yazılımla nasıl etkileşime geçtiğini de içeren tam desen için Araç Onayı sayfasına bakın.
Go için, çağrılabilen bir aracı ile tool.ApprovalRequiredFunc işaretleyin veya yerel kabuk aracı gibi zaten uygulayan tool.ApprovalRequiredToolbir araç kullanın. Onay istekleri ve yanıtları araç otomatik çağrı ara yazılımı üzerinden akar, böylece yerel işlev çağrıları döndüren sağlayıcılarla çalışır.
Sağlayıcı Destek Matrisi
OpenAI ve Azure OpenAI sağlayıcılarının her biri farklı araç özelliklerine sahip iki istemci türü (Yanıtlar ve Sohbet Tamamlama) sunar. Azure OpenAI istemcileri, OpenAI eşdeğerlerini yansıtır. Copilot Studio ve A2A aracıları uzak bir hizmette çalıştırılır, böylece özellikleri Agent Framework istemcisi yerine uzak aracıda yapılandırılır; matriste listelenmez.
| Araç Türü | Yanıt | Sohbet Tamamlama | Dökümhane | Anthropic | Ollama | GitHub Yardımcı Pilotu |
|---|---|---|---|---|---|---|
| İşlev Araçları | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Kod Yorumlayıcısı | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Dosya Arama | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| Web Araması | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Barındırılan MCP Araçları | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ |
| Yerel MCP Araçları | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Uyarı
Responses ve Chat Tamamlama sütunları hem OpenAI hem de Azure OpenAI için geçerlidir; Azure varyantları, OpenAI karşılık gelenleriyle aynı araç desteğini yansıtır. Kullanım dışı bırakılan OpenAI Assistants API'si artık belgelenmemektedir; geçiş kılavuzu için bkz. Semantik Çekirdek geçiş kılavuzu.
Sağlayıcı Destek Matrisi
OpenAI ve Azure OpenAI sağlayıcılarının her biri farklı araç özelliklerine sahip birden çok istemci türü sunar. Azure OpenAI istemcileri, OpenAI eşdeğerlerini yansıtır. Foundry sütunu için FoundryChatClient geçerlidir— içinFoundryAgent, araçlar Foundry aracı tanımında yapılandırılır (bkz. Ne işe yarar ve nelerle FoundryAgentçalışmaz? ).
Copilot Studio ve A2A aracıları uzak bir hizmette çalıştırılır, böylece özellikleri Agent Framework istemcisi yerine uzak aracıda yapılandırılır; matriste listelenmez.
| Araç Türü | Yanıt | Sohbet Tamamlama | Dökümhane | Anthropic | Ollama | Dökümhane Yerel | GitHub Yardımcı Pilotu |
|---|---|---|---|---|---|---|---|
| İşlev Araçları | ✅ | ✅ | ✅ | ✅ | ⚠️¹ | ⚠️¹ | ✅ |
| Kod Yorumlayıcısı | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Dosya Arama | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Web Araması | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| Görüntü Üretimi | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
Barındırılan Kabuk (get_shell_tool) |
✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Yerleşik kabuk / dosya sistemi / URL getirme | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅² |
| Barındırılan MCP Araçları | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ |
| Yerel MCP Araçları | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Döküm Aracı Kutuları | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Bing Topraklama (deneysel) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Bing Özel Arama (önizleme) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Azure Yapay Zeka Arama (deneysel) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| SharePoint (önizleme) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Microsoft Fabric (önizleme) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Bellek Arama (önizleme) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Bilgisayar Kullanımı (önizleme) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Tarayıcı Otomasyonu (önizleme) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Aracıdan Aracıya (A2A) aracı (önizleme) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
¹ Seçilen yerel modeli destekleyen işlev çağrısına bağlıdır.
² bir izin işleyicisi tarafından geçitli GitHub Copilot CLI çalışma zamanında yerleşiktir. OpenAI'nin get_shell_toolfarklı yüzeyi.
Uyarı
Responses ve Chat Tamamlama sütunları hem OpenAI hem de Azure OpenAI için geçerlidir; Azure varyantları, OpenAI karşılık gelenleriyle aynı araç desteğini yansıtır. Yerel MCP Araçları, işlev araçlarını destekleyen tüm sağlayıcılarla çalışır.
Sağlayıcı Destek Matrisi
Go SDK,aracılığıyla Microsoft Foundry'yi ve aracılığıyla foundryprovider OpenAI/Azure OpenAI'yi openaiproviderkullanıma sunar. içindeki tool/hostedtool barındırılan araçlar bildirimdir: Go SDK'sı bunları sağlayıcıya gönderir ve sağlayıcı barındırılan özelliğin kullanılabilir olup olmadığına karar verir.
| Araç Türü | Dökümhane | Yanıt | Sohbet Tamamlama | Anthropic |
|---|---|---|---|---|
| İşlev Araçları | ✅ | ✅ | ✅ | ✅ |
| İşlev Aracı olarak Aracı | ✅ | ✅ | ✅ | ✅ |
| Yerel MCP Araçları | ✅ | ✅ | ✅ | ✅ |
| Web Araması | ✅ | ✅ | ✅ | ❌ |
| Dosya Arama | ❌ | ✅ | ❌ | ❌ |
| Kod Yorumlayıcısı | ✅ | ✅ | ❌ | ❌ |
| Barındırılan MCP Araçları | ❌ | ✅ | ❌ | ❌ |
| Yerel kabuk aracı | ✅ | ✅ | ✅ | ✅ |
Uyarı
Yerel MCP araçları ve yerel kabuk aracı, sağlayıcının bakış açısından işlev araçlarıdır, bu nedenle işlev aracı desteğini izlerler. , hostedtool.CodeInterpreterve hostedtool.MCPServer gibi hostedtool.FileSearchbarındırılan araçlar, Go işlemi tarafından değil yapay zeka hizmeti tarafından yürütülür.
Aracıyı İşlev Aracı olarak Kullanma
Aracıyı başka bir aracı için işlev aracı olarak kullanarak aracı oluşturma ve daha gelişmiş iş akışları sağlayabilirsiniz. İç aracı bir işlev aracına dönüştürülür ve dış aracıya sağlanır ve gerektiğinde çağırılabilir.
Başka bir .AsAIFunction() aracıya sağlanabilir bir işlev aracısına dönüştürmek için çağrısı AIAgent yapın:
// 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?"));
Uyarı
DefaultAzureCredential geliştirme için uygundur ancak üretimde dikkatli bir şekilde dikkate alınması gerekir. Üretimde gecikme sorunları, istenmeyen kimlik bilgisi yoklama ve geri dönüş mekanizmalarından kaynaklanan olası güvenlik risklerini önlemek için belirli bir kimlik bilgisi (ör ManagedIdentityCredential. ) kullanmayı göz önünde bulundurun.
Aracıyı çağırarak .as_tool() başka bir aracıya sağlanabilir bir işlev aracısına dönüştürün:
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)
Araç adını, açıklamasını ve bağımsız değişken adını da özelleştirebilirsiniz:
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"
)
Aracıyı başka bir aracı için tool.FuncTool kullanılabilir hale getirmek için ile agenttool.New sarmalayın:
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()
Aynı sarmalanmış aracıyı ile mcptool.AddToolMCP aracılığıyla da kullanıma sunun çünkü agenttool.New bir işlev aracı döndürür.
Tip
Tam çalıştırılabilir örnekler için aracıyı işlev aracı örneğiolarak ve aracıyı MCP aracı örneği olarak görün.