إنتقل إلى المحتوى الرئيسي

واجهة برمجة إدارة Skills

@grant CAT.agent.skills

تتيح واجهة برمجة إدارة Skills للسكرپت الاستعلام عن حزم توسعة Skill وتثبيتها وإزالتها واستدعاءها.

لتطوير وتعبئة Skills، راجع دليل تطوير Skills. أمثلة Skills الرسمية: scriptscat/skills.

list — سرد Skills المثبتة

const skills = await CAT.agent.skills.list();

يرجع SkillSummary[]:

الحقلالنوعالوصف
namestringاسم الـ Skill
descriptionstringوصف الـ Skill
toolNamesstring[]أسماء أدوات SkillScript التي يحتويها
referenceNamesstring[]أسماء ملفات المواد المرجعية التي يحتويها
hasConfigbooleanيحدد ما إذا كان يصرح عن حقول تكوين
enabledbooleanيحدد ما إذا كان مفعلاً (الافتراضي: true)
installtimenumberطابع وقت التثبيت
updatetimenumberطابع وقت آخر تحديث

ملاحظة: version و installUrl (المستخدمة بواسطة ميزة فحص التحديثات في صفحة الإدارة) لا يتم إرجاعهما عبر واجهة البرمجة هذه — يُستخدمان فقط داخلياً بواسطة منطق فحص التحديثات وواجهة صفحة الإدارة.

get — الحصول على تفاصيل Skill

const skill = await CAT.agent.skills.get(name);

يرجع SkillRecord الكامل، أو null إذا لم يكن موجوداً.

شكل SkillRecord:

يرث جميع الحقول من SkillSummary، بالإضافة إلى:

الحقلالنوعالوصف
promptstringنص Markdown لملف SKILL.cat.md (المطالبة المعطاة للذكاء الاصطناعي)
configRecord<string, SkillConfigField>تعريفات حقول التكوين (المخطط)

شكل SkillConfigField:

الحقلالنوعالوصف
titlestringعنوان العرض
type"text" | "number" | "select" | "switch"نوع الحقل
secretbooleanيحدد ما إذا كان حساساً (مخفياً في الواجهة)
requiredbooleanيحدد ما إذا كان إلزامياً
defaultunknownالقيمة الافتراضية
valuesstring[]قائمة الخيارات (نوع select فقط)

install — تثبيت Skill

const record = await CAT.agent.skills.install(skillMd, scripts?, references?);

المعلمات:

المعاملالنوعالوصف
skillMdstringمحتوى ملف SKILL.cat.md (إلزامي)
scriptsArray<{ name, code }>قائمة ملفات SkillScript
referencesArray<{ name, content }>قائمة ملفات المواد المرجعية

إذا كان Skill بنفس الاسم موجوداً بالفعل، يتم تحديثه.

const record = await CAT.agent.skills.install(
`---
name: my-search
description: Custom search tool
---

Use the search tool when the user needs to search.`,
[{ name: "search.js", code: skillScriptCode }],
[{ name: "api-docs.md", content: "# API Docs\n..." }]
);

remove — إلغاء تثبيت Skill

const success = await CAT.agent.skills.remove(name);

يرجع true إذا نجحت الإزالة، وfalse إذا كان الـ Skill غير موجود.

call — استدعاء SkillScript مباشرة

const result = await CAT.agent.skills.call(skillName, scriptName, params?);

ينفذ SkillScript في Skill المحدد مباشرة، دون المرور بحوار ذكاء اصطناعي.

المعلمات:

المعاملالنوعالوصف
skillNamestringاسم الـ Skill (إلزامي)
scriptNamestringاسم SkillScript (إلزامي)
paramsRecord<string, unknown>المعلمات المطلوب تمريرها (المطابقة لتصريحات @param)
// Call the search script inside a Skill directly
const results = await CAT.agent.skills.call(
"my-search",
"search",
{ query: "ScriptCat", limit: 5 }
);

تنفيذ SkillScript له مهلة زمنية (300 ثانية افتراضياً، قابلة للتخصيص عبر @timeout).