Перейти до основного вмісту

API керування Skill

@grant CAT.agent.skills

API керування Skill дозволяє скрипту запитувати, встановлювати, видаляти та викликати пакети розширень Skill.

Для розробки та пакування Skill дивіться Посібник з розробки Skill. Офіційні приклади Skill: scriptscat/skills.

list — список встановлених Skill

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

Повертає SkillSummary[]:

ПолеТипОпис
namestringНазва Skill
descriptionstringОпис Skill
toolNamesstring[]Назви інструментів SkillScript, які він містить
referenceNamesstring[]Назви файлів довідкових матеріалів, які він містить
hasConfigbooleanЧи оголошує поля конфігурації
enabledbooleanЧи ввімкнений (за замовчуванням true)
installtimenumberЧас встановлення
updatetimenumberЧас останнього оновлення

Примітка: version та installUrl (використовуються функцією перевірки оновлень сторінки керування) не повертаються через цей скриптовий API — вони використовуються лише внутрішньо логікою перевірки оновлень та інтерфейсом сторінки керування.

get — отримати деталі Skill

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

Повертає повний SkillRecord або null, якщо його не існує.

Форма SkillRecord:

Успадковує всі поля з SkillSummary, плюс:

ПолеТипОпис
promptstringТіло Markdown файлу SKILL.cat.md (підказка, що надається AI)
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 безпосередньо, без AI-розмови.

Параметри:

ПараметрТипОпис
skillNamestringНазва Skill (обов'язково)
scriptNamestringНазва SkillScript (обов'язково)
paramsRecord<string, unknown>Параметри для передачі (відповідають оголошенням @param)
// Викликати скрипт пошуку всередині Skill безпосередньо
const results = await CAT.agent.skills.call(
"my-search",
"search",
{ query: "ScriptCat", limit: 5 }
);

Виконання SkillScript має таймаут (300 секунд за замовчуванням, налаштовується через @timeout).