Pular para o conteúdo principal

API de gerenciamento de Skills

@grant CAT.agent.skills

A API de gerenciamento de Skills permite que um script consulte, instale, remova e chame pacotes de extensão Skill.

Para desenvolvimento e empacotamento de Skills, consulte o Guia de desenvolvimento de Skills. Exemplos oficiais de Skills: scriptscat/skills.

list — listar Skills instaladas

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

Retorna SkillSummary[]:

CampoTipoDescrição
namestringNome da Skill
descriptionstringDescrição da Skill
toolNamesstring[]Nomes das ferramentas SkillScript que contém
referenceNamesstring[]Nomes dos arquivos de material de referência que contém
hasConfigbooleanSe declara campos de configuração
enabledbooleanSe está habilitada (padrão true)
installtimenumberCarimbo de data/hora da instalação
updatetimenumberCarimbo de data/hora da última atualização

Nota: version e installUrl (usados pela funcionalidade de verificação de atualizações da página de gerenciamento) não são retornados através desta API de script — são usados internamente pela lógica de verificação de atualizações e pela interface da página de gerenciamento.

get — obter detalhes de uma Skill

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

Retorna o SkillRecord completo, ou null se não existir.

Estrutura de SkillRecord:

Hereda todos os campos de SkillSummary, mais:

CampoTipoDescrição
promptstringO corpo Markdown de SKILL.cat.md (o prompt dado à IA)
configRecord<string, SkillConfigField>Definições de campos de configuração (esquema)

Estrutura de SkillConfigField:

CampoTipoDescrição
titlestringTítulo de exibição
type"text" | "number" | "select" | "switch"Tipo de campo
secretbooleanSe é sensível (mascarado na interface)
requiredbooleanSe é obrigatório
defaultunknownValor padrão
valuesstring[]Lista de opções (apenas tipo select)

install — instalar uma Skill

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

Parâmetros:

ParâmetroTipoDescrição
skillMdstringConteúdo do arquivo SKILL.cat.md (obrigatório)
scriptsArray<{ name, code }>Lista de arquivos SkillScript
referencesArray<{ name, content }>Lista de arquivos de material de referência

Se já existe uma Skill com o mesmo nome, ela é atualizada.

const record = await CAT.agent.skills.install(
`---
name: my-search
description: Ferramenta de busca personalizada
---

Use a ferramenta de busca quando o usuário precisar pesquisar.`,
[{ name: "search.js", code: skillScriptCode }],
[{ name: "api-docs.md", content: "# Documentação da API\n..." }]
);

remove — desinstalar uma Skill

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

Retorna true se removida com sucesso, false se a Skill não existir.

call — chamar um SkillScript diretamente

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

Executa um SkillScript na Skill especificada diretamente, sem passar por uma conversa com IA.

Parâmetros:

ParâmetroTipoDescrição
skillNamestringNome da Skill (obrigatório)
scriptNamestringNome do SkillScript (obrigatório)
paramsRecord<string, unknown>Parâmetros a passar (correspondentes às declarações @param)
// Chamar o script de busca dentro de uma Skill diretamente
const results = await CAT.agent.skills.call(
"my-search",
"search",
{ query: "ScriptCat", limit: 5 }
);

A execução de SkillScript tem um timeout (300 segundos por padrão, personalizável via @timeout).