Passa al contenuto principale

API di gestione delle Skill

@grant CAT.agent.skills

L'API di gestione delle Skill permette a uno script di interrogare, installare, rimuovere e richiamare pacchetti di estensione Skill.

Per lo sviluppo e il packaging delle Skill, consultare la Guida allo sviluppo delle Skill. Esempi ufficiali di Skill: scriptscat/skills.

list — elencare le Skill installate

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

Restituisce SkillSummary[]:

CampoTipoDescrizione
namestringNome della Skill
descriptionstringDescrizione della Skill
toolNamesstring[]Nomi degli strumenti SkillScript contenuti
referenceNamesstring[]Nomi dei file di materiale di riferimento contenuti
hasConfigbooleanSe dichiara campi di configurazione
enabledbooleanSe è abilitata (predefinito true)
installtimenumberTimestamp di installazione
updatetimenumberTimestamp di ultimo aggiornamento

Nota: version e installUrl (usati dalla funzione di verifica aggiornamenti della pagina di gestione) non vengono restituiti attraverso questa API script — sono usati solo internamente dalla logica di verifica aggiornamenti e dall'interfaccia della pagina di gestione.

get — ottenere i dettagli di una Skill

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

Restituisce il SkillRecord completo, o null se non esiste.

Struttura di SkillRecord:

Eredita tutti i campi di SkillSummary, più:

CampoTipoDescrizione
promptstringIl corpo Markdown di SKILL.cat.md (il prompt dato all'AI)
configRecord<string, SkillConfigField>Definizioni dei campi di configurazione (schema)

Struttura di SkillConfigField:

CampoTipoDescrizione
titlestringTitolo di visualizzazione
type"text" | "number" | "select" | "switch"Tipo di campo
secretbooleanSe è sensibile (mascherato nell'interfaccia)
requiredbooleanSe è obbligatorio
defaultunknownValore predefinito
valuesstring[]Elenco delle opzioni (solo tipo select)

install — installare una Skill

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

Parametri:

ParametroTipoDescrizione
skillMdstringContenuto del file SKILL.cat.md (obbligatorio)
scriptsArray<{ name, code }>Elenco dei file SkillScript
referencesArray<{ name, content }>Elenco dei file di materiale di riferimento

Se esiste già una Skill con lo stesso nome, la aggiorna.

const record = await CAT.agent.skills.install(
`---
name: my-search
description: Strumento di ricerca personalizzato
---

Usa lo strumento di ricerca quando l'utente ha bisogno di cercare.`,
[{ name: "search.js", code: skillScriptCode }],
[{ name: "api-docs.md", content: "# Documentazione API\n..." }]
);

remove — disinstallare una Skill

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

Restituisce true se rimossa con successo, false se la Skill non esiste.

call — richiamare un SkillScript direttamente

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

Esegue un SkillScript nella Skill specificata direttamente, senza passare attraverso una conversazione AI.

Parametri:

ParametroTipoDescrizione
skillNamestringNome della Skill (obbligatorio)
scriptNamestringNome dello SkillScript (obbligatorio)
paramsRecord<string, unknown>Parametri da passare (corrispondenti alle dichiarazioni @param)
// Richiamare lo script di ricerca all'interno di una Skill direttamente
const results = await CAT.agent.skills.call(
"my-search",
"search",
{ query: "ScriptCat", limit: 5 }
);

L'esecuzione di SkillScript ha un timeout (300 secondi predefiniti, personalizzabile con @timeout).