إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تتيح الأدوات لعاملك استدعاء وظائف مخصصة — مثل إحضار بيانات الطقس أو الاستعلام عن قاعدة بيانات أو استدعاء واجهة برمجة تطبيقات.
تعريف أداة كأي أسلوب بسمة [Description] :
using System.ComponentModel;
[Description("Get the weather for a given location.")]
static string GetWeather([Description("The location to get the weather for.")] string location)
=> $"The weather in {location} is cloudy with a high of 15°C.";
إنشاء عامل باستخدام الأداة:
using System;
using Azure.AI.Projects;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Extensions.AI;
var endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT")
?? throw new InvalidOperationException("Set AZURE_OPENAI_ENDPOINT");
var deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
AIAgent agent = new AIProjectClient(new Uri(endpoint), new DefaultAzureCredential())
.AsAIAgent(
model: deploymentName,
instructions: "You are a helpful assistant.",
tools: [AIFunctionFactory.Create(GetWeather)]);
تحذير
DefaultAzureCredential مناسب للتنمية ولكنه يتطلب دراسة متأنية في الإنتاج. في الإنتاج، ضع في اعتبارك استخدام بيانات اعتماد محددة (على سبيل المثال، ManagedIdentityCredential) لتجنب مشكلات زمن الانتقال، وبحث بيانات الاعتماد غير المقصودة، والمخاطر الأمنية المحتملة من الآليات الاحتياطية.
سيقوم العامل تلقائيا باستدعاء الأداة الخاصة بك عندما تكون ذات صلة:
Console.WriteLine(await agent.RunAsync("What is the weather like in Amsterdam?"));
Tip
انظر هنا للحصول على نموذج تطبيق كامل قابل للتشغيل.
حدد أداة باستخدام @tool مصمم الديكور:
# NOTE: approval_mode="never_require" is for sample brevity.
# Use "always_require" in production for user confirmation before tool execution.
@tool(approval_mode="never_require")
def get_weather(
location: Annotated[str, Field(description="The location to get the weather for.")],
) -> str:
"""Get the weather for a given location."""
conditions = ["sunny", "cloudy", "rainy", "stormy"]
return f"The weather in {location} is {conditions[randint(0, 3)]} with a high of {randint(10, 30)}°C."
إنشاء عامل باستخدام الأداة:
agent = Agent(
client=client,
name="WeatherAgent",
instructions="You are a helpful weather agent. Use the get_weather tool to answer questions.",
tools=[get_weather],
)
Tip
راجع النموذج الكامل للملف الكامل القابل للتشغيل.
تعريف أداة باستخدام functool:
import (
"context"
"fmt"
"github.com/microsoft/agent-framework-go/tool"
"github.com/microsoft/agent-framework-go/tool/functool"
)
var weatherTool = functool.MustNew(functool.Config{
Name: "weather",
Description: "Get the current weather for a given location",
}, func(_ context.Context, location string) (string, error) {
return fmt.Sprintf("The weather in %s is cloudy with a high of 15°C.", location), nil
})
إنشاء عامل باستخدام الأداة:
a := foundryprovider.NewAgent(
endpoint,
token,
foundryprovider.ModelDeployment(model),
foundryprovider.AgentConfig{
Instructions: "You are a helpful assistant",
Config: agent.Config{
Tools: []tool.Tool{weatherTool},
},
},
)
سيقوم العامل تلقائيا باستدعاء الأداة الخاصة بك عندما تكون ذات صلة:
resp, err := a.RunText(ctx, "What is the weather like in Amsterdam?").Collect()
fmt.Println(resp, err)
Tip
راجع النموذج الكامل للملف الكامل القابل للتشغيل.
الخطوات التالية
انتقل إلى أبعد من ذلك:
- نظرة عامة على الأدوات — تعرف على جميع أنواع الأدوات المتوفرة
- أدوات الدالة - أنماط أداة دالة متقدمة
- الموافقة على الأداة - أداة بشرية في التكرار الحلقي لمكالمات الأدوات