مصاحبه سری AI 7: چگونه یک Skill را به طور استاندارد تعریف کنیم
یکم: مفهوم اصلی Skill
Skill یک واحد قابلیت اجرایی است که در Agent (عامل هوشمند) یا سیستم AI کپسوله شده است. معمولاً شامل:
- شرایط فعالسازی: چه زمانی فراخوانی شود (مانند دستور کاربر، رویداد سیستم).
- پارامترهای ورودی: داده یا زمینهای که باید دریافت کند.
- منطق اجرا: مراحل پردازش خاص (مانند فراخوانی API، اجرای کد، جستجوی پایگاه دانش).
- خروجی: پاسخ یا عملی که به فراخواننده بازگردانده میشود.
دوم: مراحل تعریف استاندارد یک Skill
1. مشخص کردن نام و توضیحات Skill
- نام: کوتاه، یکتا و معنادار (مانند
search_web،send_email). - توضیحات: یک جمله که عملکرد Skill را توضیح میدهد تا Agent بتواند به طور خودکار تطبیق دهد.
2. تعریف پارامترهای ورودی (Input Schema)
از JSON Schema یا فرمت مشابه استفاده کنید، نوع هر پارامتر، اجباری بودن، مقدار پیشفرض و محدودیتها را مشخص کنید.
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "کلمه کلیدی جستجو",
"required": true
},
"max_results": {
"type": "integer",
"description": "حداکثر تعداد نتایج بازگشتی",
"default": 10
}
}
}
3. نوشتن منطق اجرا (Execution Logic)
- منطق قطعی: فراخوانی مستقیم تابع، API یا پایگاه داده.
- منطق غیرقطعی: استفاده از LLM برای تولید پاسخ (نیازمند قالب prompt).
- مدیریت خطا: تعریف استراتژیهای timeout، تلاش مجدد و کاهش سطح.
4. تعریف قالب خروجی (Output Schema)
همچنین از JSON Schema برای توصیف ساختار داده بازگشتی استفاده کنید.
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": { "type": "string" },
"url": { "type": "string", "format": "uri" }
}
}
}
}
}
5. فراداده اضافی (Metadata)
- نسخه: برای مدیریت تکرار.
- نویسنده/نگهدارنده: مسئولیت.
- وابستگیها: سرویسها یا کتابخانههای خارجی مورد نیاز.
- محدودیتهای استفاده: مانند محدودیت فرکانس، الزامات مجوز.
سهم: مثال: یک تعریف کامل از Skill
name: "weather_query"
description: "دریافت آب و هوای فعلی بر اساس نام شهر"
version: "1.0.0"
author: "تیم AI"
input:
type: object
properties:
city:
type: string
description: "نام شهر، مانند 'تهران'"
required: true
unit:
type: string
enum: ["celsius", "fahrenheit"]
default: "celsius"
execute:
- step: "فراخوانی API آب و هوا"
api: "https://api.weather.com/v1/current"
method: "GET"
params:
city: "{input.city}"
unit: "{input.unit}"
- step: "فرمتبندی نتیجه"
format: "دمای فعلی {city} برابر {temperature}°{unit} است"
output:
type: object
properties:
temperature:
type: number
condition:
type: string
humidity:
type: number
چهارم: بهترین روشها
- تکوظیفهای: هر Skill فقط یک کار انجام دهد، از اتصال بیش از حد خودداری کنید.
- خودکفا: تا حد امکان به حالت سراسری خارجی وابسته نباشد، ورودی همان خروجی.
- قابل آزمایش: دادههای ساختگی یا محیط sandbox برای تست واحد فراهم کنید.
- مستندسازی: برای هر Skill راهنما و مثال بنویسید.
با روشهای فوق، Skill تعریفشده میتواند هم توسط Agent AI به صورت پویا زمانبندی شود و هم توسط توسعهدهندگان مستقیماً در سیستم ادغام شود و به اثر "یک بار بنویس، همه جا استفاده کن" دست یابد.
评论
暂无已展示的评论。
发表评论(匿名)