Saltar al contenido principal

API de gestión de Skills

@grant CAT.agent.skills

La API de gestión de Skills permite a un script consultar, instalar, eliminar y llamar paquetes de extensión Skill.

Para el desarrollo y empaquetado de Skills, consulte la Guía de desarrollo de Skills. Ejemplos oficiales de Skills: scriptscat/skills.

list — listar Skills instaladas

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

Devuelve SkillSummary[]:

CampoTipoDescripción
namestringNombre de la Skill
descriptionstringDescripción de la Skill
toolNamesstring[]Nombres de las herramientas SkillScript que contiene
referenceNamesstring[]Nombres de los archivos de material de referencia que contiene
hasConfigbooleanSi declara campos de configuración
enabledbooleanSi está habilitada (por defecto true)
installtimenumberMarca de tiempo de instalación
updatetimenumberMarca de tiempo de última actualización

Nota: version e installUrl (usados por la función de verificación de actualizaciones de la página de gestión) no se devuelven a través de esta API de script — solo se usan internamente por la lógica de verificación de actualizaciones y la interfaz de la página de gestión.

get — obtener detalles de una Skill

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

Devuelve el SkillRecord completo, o null si no existe.

Estructura de SkillRecord:

Hereda todos los campos de SkillSummary, más:

CampoTipoDescripción
promptstringEl cuerpo Markdown de SKILL.cat.md (el prompt dado a la IA)
configRecord<string, SkillConfigField>Definiciones de campos de configuración (esquema)

Estructura de SkillConfigField:

CampoTipoDescripción
titlestringTítulo de visualización
type"text" | "number" | "select" | "switch"Tipo de campo
secretbooleanSi es sensible (enmascarado en la interfaz)
requiredbooleanSi es obligatorio
defaultunknownValor por defecto
valuesstring[]Lista de opciones (solo tipo select)

install — instalar una Skill

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

Parámetros:

ParámetroTipoDescripción
skillMdstringContenido del archivo SKILL.cat.md (obligatorio)
scriptsArray<{ name, code }>Lista de archivos SkillScript
referencesArray<{ name, content }>Lista de archivos de material de referencia

Si ya existe una Skill con el mismo nombre, la actualiza.

const record = await CAT.agent.skills.install(
`---
name: my-search
description: Herramienta de búsqueda personalizada
---

Usa la herramienta de búsqueda cuando el usuario necesite buscar.`,
[{ name: "search.js", code: skillScriptCode }],
[{ name: "api-docs.md", content: "# Documentación API\n..." }]
);

remove — desinstalar una Skill

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

Devuelve true si se eliminó correctamente, false si la Skill no existe.

call — llamar un SkillScript directamente

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

Ejecuta un SkillScript en la Skill especificada directamente, sin pasar por una conversación con IA.

Parámetros:

ParámetroTipoDescripción
skillNamestringNombre de la Skill (obligatorio)
scriptNamestringNombre del SkillScript (obligatorio)
paramsRecord<string, unknown>Parámetros a pasar (coincidentes con las declaraciones @param)
// Llamar el script de búsqueda dentro de una Skill directamente
const results = await CAT.agent.skills.call(
"my-search",
"search",
{ query: "ScriptCat", limit: 5 }
);

La ejecución de SkillScript tiene un tiempo de espera (300 segundos por defecto, personalizable con @timeout).