إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تتيح الأدوات لعاملك استدعاء وظائف مخصصة — مثل إحضار بيانات الطقس أو الاستعلام عن قاعدة بيانات أو استدعاء واجهة برمجة تطبيقات.
قبل إضافة أدوات، راجع أفضل ممارسات أمان الموافقة على الأداة لتحديد العمليات التي تحتاج إلى تأكيد بشري.
تعريف أداة كأي أسلوب بسمة [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 مصمم الديكور، وتنشئ وكيلا باستخدام الأداة، وتشغل العامل:
import asyncio
from agent_framework import Agent, tool
from agent_framework.foundry import FoundryChatClient
from azure.identity import AzureCliCredential
# This read-only sample tool can run without approval.
@tool(approval_mode="never_require")
def get_weather(location: str) -> str:
"""Get the weather for a given location."""
return f"The weather in {location} is sunny."
async def main() -> None:
agent = Agent(
client=FoundryChatClient(
project_endpoint="https://your-account.services.ai.azure.com/api/projects/your-project",
model="gpt-6-luna",
credential=AzureCliCredential(),
),
instructions="Use the weather tool to answer questions.",
tools=[get_weather],
)
print(await agent.run("What's the weather like in Seattle?"))
if __name__ == "__main__":
asyncio.run(main())
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
راجع النموذج الكامل للملف الكامل القابل للتشغيل.
الخطوات التالية
انتقل إلى أبعد من ذلك:
- نظرة عامة على الأدوات — تعرف على جميع أنواع الأدوات المتوفرة
- أدوات الدالة - أنماط أداة دالة متقدمة
- الموافقة على الأداة - أداة بشرية في التكرار الحلقي لمكالمات الأدوات