Aller au contenu principal

API de gestion des Skills

@grant CAT.agent.skills

L'API de gestion des Skills permet à un script d'interroger, installer, supprimer et appeler des packs d'extension Skill.

Pour le développement et l'empaquetage de Skills, voir le Guide de développement des Skills. Exemples de Skills officiels : scriptscat/skills.

list — lister les Skills installés

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

Retourne SkillSummary[] :

ChampTypeDescription
namestringNom du Skill
descriptionstringDescription du Skill
toolNamesstring[]Noms des outils SkillScript qu'il contient
referenceNamesstring[]Noms des fichiers de matériel de référence qu'il contient
hasConfigbooleanIndique s'il déclare des champs de configuration
enabledbooleanIndique s'il est activé (défaut : true)
installtimenumberHorodatage d'installation
updatetimenumberHorodatage de dernière mise à jour

Remarque : version et installUrl (utilisés par la fonction de vérification des mises à jour de la page de gestion) ne sont pas retournés via cette API de script — ils ne sont utilisés qu'en interne par la logique de vérification des mises à jour et par l'interface de la page de gestion.

get — obtenir les détails d'un Skill

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

Retourne le SkillRecord complet, ou null s'il n'existe pas.

Forme de SkillRecord :

Hérite de tous les champs de SkillSummary, plus :

ChampTypeDescription
promptstringLe corps Markdown de SKILL.cat.md (l'invite donnée à l'IA)
configRecord<string, SkillConfigField>Définitions des champs de configuration (schéma)

Forme de SkillConfigField :

ChampTypeDescription
titlestringTitre d'affichage
type"text" | "number" | "select" | "switch"Type de champ
secretbooleanIndique s'il est sensible (masqué dans l'interface)
requiredbooleanIndique s'il est obligatoire
defaultunknownValeur par défaut
valuesstring[]Liste d'options (type select uniquement)

install — installer un Skill

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

Paramètres :

ParamètreTypeDescription
skillMdstringContenu du fichier SKILL.cat.md (obligatoire)
scriptsArray<{ name, code }>Liste des fichiers SkillScript
referencesArray<{ name, content }>Liste des fichiers de matériel de référence

Si un Skill portant le même nom existe déjà, celui-ci est mis à jour.

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 — désinstaller un Skill

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

Retourne true si la suppression a réussi, false si le Skill n'existe pas.

call — appeler un SkillScript directement

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

Exécute un SkillScript du Skill spécifié directement, sans passer par une conversation IA.

Paramètres :

ParamètreTypeDescription
skillNamestringNom du Skill (obligatoire)
scriptNamestringNom du SkillScript (obligatoire)
paramsRecord<string, unknown>Paramètres à transmettre (correspondant aux déclarations @param)
// Call the search script inside a Skill directly
const results = await CAT.agent.skills.call(
"my-search",
"search",
{ query: "ScriptCat", limit: 5 }
);

L'exécution d'un SkillScript a un délai d'expiration (300 secondes par défaut, personnalisable via @timeout).