إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يدعم إطار عمل العامل العديد من أنواع الأدوات المختلفة التي توسع قدرات العامل. تسمح الأدوات للوكلاء بالتفاعل مع الأنظمة الخارجية وتنفيذ التعليمات البرمجية وبيانات البحث والمزيد.
أنواع الأدوات
| نوع الأداة | Description |
|---|---|
| أدوات الدالة | التعليمات البرمجية المخصصة التي يمكن للوكلاء الاتصال بها أثناء المحادثات |
| مترجم شفرة | تنفيذ التعليمات البرمجية في بيئة الاختبار المعزولة |
| البحث عن الملفات | البحث من خلال الملفات التي تم تحميلها |
| بحث الويب | البحث في الويب عن معلومات |
| أدوات MCP المستضافة | خوادم MCP التي تم استدعاؤها بواسطة وقت تشغيل الموفر |
| أدوات MCP المحلية | خوادم MCP التي تعمل محليا أو على مضيفين مخصصين |
| Microsoft مربع أدوات Foundry | الحزم المسماة، التي تم إصدارها من تكوينات الأدوات المستضافة المدارة في مشروع Foundry |
| أدوات Shell | تنفيذ shell المحلي والمضمن في حاويات مع فحص البيئة وعناصر التحكم في النهج |
| نوع الأداة | Description |
|---|---|
| أدوات الدالة | التعليمات البرمجية المخصصة التي يمكن للوكلاء الاتصال بها أثناء المحادثات |
| مترجم شفرة | تنفيذ التعليمات البرمجية في بيئة الاختبار المعزولة |
| البحث عن الملفات | البحث من خلال الملفات التي تم تحميلها |
| بحث الويب | البحث في الويب عن معلومات |
| أدوات MCP المستضافة | خوادم MCP التي تم استدعاؤها بواسطة وقت تشغيل الموفر |
| أدوات MCP المحلية | خوادم MCP التي تعمل محليا أو على مضيفين مخصصين |
| Microsoft مربع أدوات Foundry | الحزم المسماة، التي تم إصدارها من تكوينات الأدوات المستضافة المدارة في مشروع Foundry |
| أدوات Shell | تنفيذ shell المحلي والمضمن في حاويات مع فحص البيئة وعناصر التحكم في النهج |
| توليد الصور | إنشاء صورة مستضافة في وقت تشغيل استجابات Foundry / OpenAI |
| Shell | تنفيذ shell المستضاف في وقت تشغيل استجابات OpenAI — مميز عن أدوات وقت تشغيل shell/file/URL المضمنة في GitHub Copilot CLI |
| التأريض في بينج | أسس الويب عبر الأرضية الخاصة بك مع مورد Bing Search — تجريبي |
| بحث Bing المخصص | يقتصر أساس Bing على قائمة مجالات منسقة — معاينة |
| Azure بحث الذكاء الاصطناعي | الاستعلام عن فهرس البحث باستخدام الذكاء الاصطناعي في Azure من خلال اتصال Foundry — تجريبي |
| SharePoint | إجابات أساسية في محتوى SharePoint — معاينة |
| مايكروسوفت فابريك | الاستعلام عن عامل بيانات Fabric — معاينة |
| البحث في الذاكرة | البحث في مخزن ذاكرة مدار بواسطة Foundry — معاينة |
| استخدام الحاسوب | محرك بيئة سطح المكتب أو المستعرض — معاينة |
| أتمتة المتصفح | محرك مستعرض عبر Azure Playwright — معاينة |
| أداة الوكيل إلى الوكيل (A2A) | استدعاء عامل A2A عن بعد كأداة من عامل Foundry — معاينة |
Note
يتم توثيق الأدوات التي تم وضع علامة تجريبي أو معاينة عليها في صفحة الموفر ذات الصلة وتبعث ExperimentalWarning في المرة الأولى التي يتم استخدامها في عملية.
| نوع الأداة | الحزمة | Description |
|---|---|---|
| أدوات الدالة | tool/functool |
دوال Go التي تم كتابتها مع مخططات JSON التي يمكن للعامل استدعائها |
| عامل كأداة دالة | tool/agenttool |
التفاف عامل كعامل tool.FuncTool آخر حتى يتمكن وكيل آخر من تسميته |
| أدوات MCP المحلية | tool/mcptool |
الاتصال بخوادم MCP وعرض أدواتها كقيم tool.FuncTool |
| بحث الويب | tool/hostedtool.WebSearch |
الإعلان عن البحث عن الويب من جانب الموفر عندما تدعمه خدمة الدعم |
| البحث عن الملفات | tool/hostedtool.FileSearch |
الإعلان عن البحث عن ملف من جانب الموفر أو مخزن المتجهات |
| مترجم شفرة | tool/hostedtool.CodeInterpreter |
الإعلان عن تنفيذ التعليمات البرمجية من جانب الموفر |
| أدوات MCP المستضافة | tool/hostedtool.MCPServer |
الإعلان عن خادم MCP لوقت تشغيل الموفر للاتصال به |
| أداة shell المحلية | tool/shelltool |
تشغيل أوامر shell المحلية من خلال أداة دالة تتطلب الموافقة بشكل افتراضي |
تنفذ جميع الأدوات الواجهة tool.Tool :
type Tool interface {
Name() string
Description() string
}
أدوات الدالة بالإضافة إلى ذلك تنفيذ tool.FuncTool:
import "context"
type FuncTool interface {
Tool
Schema() any
ReturnSchema() any
Call(ctx context.Context, arguments string) (any, error)
}
تنشئ معظم التطبيقات أدوات وظيفية مع functool.New أو functool.MustNew بدلا من تنفيذها FuncTool مباشرة. يستخدم إطار العمل توقيع الدالة Go أو علامات البنية لإنشاء المخطط المكشوف للنموذج.
تمرير الأدوات إلى العامل عبر 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},
},
})
أو أضف أدوات لكل تشغيل:
resp, err := a.RunText(ctx, "What's the weather?", agent.WithTool(weatherTool)).Collect()
الموافقة على الأداة
الموافقة على الأداة هي ميزة إطار عمل تتيح لك استدعاءات الأدوات من خلال قرار بشري في الحلقة قبل أن يتلقى النموذج النتيجة. وهو يعمل مع موفري الخدمة الذين يستدعي عملاؤهم الأدوات محليا؛ تتبع الأدوات المستضافة من جانب الخدمة سلوك الموافقة الخاص بالموفر. راجع صفحة الموافقة على الأدوات للحصول على النمط الكامل، بما في ذلك كيفية تفاعل الموافقات مع الجلسات والتدفق والبرامج الوسيطة.
بالنسبة إلى Go، ضع علامة على أداة قابلة للنقض باستخدام tool.ApprovalRequiredFunc أو استخدم أداة تنفذ tool.ApprovalRequiredToolبالفعل ، مثل أداة shell المحلية. تتدفق طلبات الموافقة والاستجابات من خلال البرنامج الوسيط للاتصال التلقائي للأداة، بحيث تعمل مع موفري الخدمة الذين يقومون بإرجاع استدعاءات الوظائف المحلية.
مصفوفة دعم الموفر
يقدم كل من موفري OpenAI وOpenAI Azure نوعين من العملاء - الاستجابات وإكمال الدردشة - مع قدرات أدوات مختلفة. Azure عملاء OpenAI يعكسون مكافئات OpenAI الخاصة بهم. يتم تشغيل Copilot Studio وعوامل A2A على خدمة بعيدة بحيث يتم تكوين قدراتهم على العامل البعيد بدلا من عميل إطار عمل العامل - فهي غير مدرجة في المصفوفة.
| نوع الأداة | الردود | إكمال الدردشة | المسبك | الأنثروبي | أولاما | GitHub Copilot |
|---|---|---|---|---|---|---|
| أدوات الدالة | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| مترجم شفرة | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| البحث عن الملفات | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ |
| بحث الويب | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| أدوات MCP المستضافة | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ |
| أدوات MCP المحلية | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Note
تنطبق أعمدة الاستجاباتوإكمال الدردشة على كل من OpenAI وOpenAI Azure — تعكس المتغيرات Azure نفس دعم الأدوات مثل نظرائهم من OpenAI. لم تعد واجهة برمجة تطبيقات مساعدي OpenAI المهملة موثقة؛ للحصول على إرشادات الترحيل، راجع دليل الترحيل نواة دلالية.
مصفوفة دعم الموفر
يقدم كل من OpenAI وموفري OpenAI Azure أنواع عملاء متعددة مع قدرات أدوات مختلفة. Azure عملاء OpenAI يعكسون مكافئات OpenAI الخاصة بهم. ينطبق عمود Foundry على FoundryChatClient — ل FoundryAgent، يتم تكوين الأدوات على تعريف عامل Foundry (راجع ما الذي يعمل وما لا يعمل مع FoundryAgent).
يتم تشغيل Copilot Studio وعوامل A2A على خدمة بعيدة بحيث يتم تكوين قدراتهم على العامل البعيد بدلا من عميل إطار عمل العامل - فهي غير مدرجة في المصفوفة.
| نوع الأداة | الردود | إكمال الدردشة | المسبك | الأنثروبي | أولاما | فاوندري لوكال | GitHub Copilot |
|---|---|---|---|---|---|---|---|
| أدوات الدالة | ✅ | ✅ | ✅ | ✅ | ⚠️¹ | ⚠️¹ | ✅ |
| مترجم شفرة | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ❌ |
| البحث عن الملفات | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| بحث الويب | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |
| توليد الصور | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
Hosted Shell (get_shell_tool) |
✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| shell / نظام الملفات المضمن / إحضار عنوان URL | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅² |
| أدوات MCP المستضافة | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ |
| أدوات MCP المحلية | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| Microsoft مربع أدوات Foundry | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Bing Grounding (تجريبي) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| بحث Bing المخصص (معاينة) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| البحث باستخدام الذكاء الاصطناعي في Azure (تجريبي) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| SharePoint (معاينة) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Microsoft Fabric (معاينة) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| البحث في الذاكرة (معاينة) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| استخدام الكمبيوتر (معاينة) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| أتمتة المستعرض (معاينة) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| أداة عامل إلى عامل (A2A) ( معاينة) | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
¹ يعتمد على استدعاء وظيفة دعم النموذج المحلي المختار.
² مضمن في وقت تشغيل GitHub Copilot CLI، مسور بواسطة معالج أذونات. سطح مختلف عن OpenAI get_shell_tool.
Note
تنطبق أعمدة الاستجاباتوإكمال الدردشة على كل من OpenAI وOpenAI Azure — تعكس المتغيرات Azure نفس دعم الأدوات مثل نظرائهم من OpenAI. تعمل أدوات MCP المحلية مع أي موفر يدعم أدوات الوظائف.
مصفوفة دعم الموفر
يعرض Go SDK Microsoft Foundry من خلال foundryprovider OpenAI/Azure OpenAI من خلال openaiprovider. الأدوات المستضافة في tool/hostedtool هي الإعلانات: يرسلها Go SDK إلى الموفر، ويقرر الموفر ما إذا كانت هذه الإمكانية المستضافة متوفرة.
| نوع الأداة | المسبك | الردود | إكمال الدردشة | الأنثروبي |
|---|---|---|---|---|
| أدوات الدالة | ✅ | ✅ | ✅ | ✅ |
| عامل كأداة دالة | ✅ | ✅ | ✅ | ✅ |
| أدوات MCP المحلية | ✅ | ✅ | ✅ | ✅ |
| بحث الويب | ✅ | ✅ | ✅ | ❌ |
| البحث عن الملفات | ❌ | ✅ | ❌ | ❌ |
| مترجم شفرة | ✅ | ✅ | ❌ | ❌ |
| أدوات MCP المستضافة | ❌ | ✅ | ❌ | ❌ |
| أداة shell المحلية | ✅ | ✅ | ✅ | ✅ |
Note
أدوات MCP المحلية وأداة shell المحلية هي أدوات وظيفية من وجهة نظر الموفر، لذلك تتبع دعم أداة الوظيفة. يتم تنفيذ الأدوات المستضافة مثل hostedtool.FileSearchو hostedtool.CodeInterpreterو hostedtool.MCPServer بواسطة خدمة الذكاء الاصطناعي، وليس من خلال عملية Go.
استخدام عامل كأداة دالة
يمكنك استخدام عامل كأداة دالة لعامل آخر، ما يتيح تكوين العامل ومهام سير العمل الأكثر تقدما. يتم تحويل العامل الداخلي إلى أداة دالة وتوفيره إلى العامل الخارجي، والذي يمكنه بعد ذلك استدعائه حسب الحاجة.
AIAgent استدعاء .AsAIFunction() لتحويله إلى أداة دالة يمكن توفيرها إلى عامل آخر:
// 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?"));
تحذير
DefaultAzureCredential مناسب للتنمية ولكنه يتطلب دراسة متأنية في الإنتاج. في الإنتاج، ضع في اعتبارك استخدام بيانات اعتماد محددة (على سبيل المثال، ManagedIdentityCredential) لتجنب مشكلات زمن الانتقال، وبحث بيانات الاعتماد غير المقصودة، والمخاطر الأمنية المحتملة من الآليات الاحتياطية.
استدعاء .as_tool() عامل لتحويله إلى أداة دالة يمكن توفيرها إلى عامل آخر:
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)
يمكنك أيضا تخصيص اسم الأداة والوصف واسم الوسيطة:
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"
)
التفاف عامل مع agenttool.New لجعله متاحا كعامل tool.FuncTool آخر:
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()
يمكنك أيضا عرض نفس العامل الملتف من خلال MCP مع mcptool.AddTool، لأن agenttool.New إرجاع أداة دالة.
Tip
راجع العامل كعينة أداة دالةوالعامل كعينة أداة MCP للحصول على أمثلة كاملة قابلة للتشغيل.