Lewati ke konten utama

API Manajemen Skill

@grant CAT.agent.skills

API manajemen Skill memungkinkan skrip untuk mengkueri, memasang, menghapus, dan memanggil paket ekstensi Skill.

Untuk pengembangan dan pengemasan Skill, lihat Panduan Pengembangan Skill. Contoh Skill resmi: scriptscat/skills.

list — daftar Skill yang terpasang

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

Mengembalikan SkillSummary[]:

BidangJenisDeskripsi
namestringNama Skill
descriptionstringDeskripsi Skill
toolNamesstring[]Nama alat SkillScript yang dikandungnya
referenceNamesstring[]Nama file materi referensi yang dikandungnya
hasConfigbooleanApakah ia mendeklarasikan bidang konfigurasi
enabledbooleanApakah ia aktif (bawaan true)
installtimenumberStempel waktu pemasangan
updatetimenumberStempel waktu pembaruan terakhir

Catatan: version dan installUrl (digunakan oleh fitur pemeriksaan pembaruan halaman manajemen) tidak dikembalikan melalui API skrip ini — keduanya hanya digunakan secara internal oleh logika pemeriksaan pembaruan dan UI halaman manajemen.

get — dapatkan detail Skill

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

Mengembalikan SkillRecord lengkap, atau null jika tidak ada.

Bentuk SkillRecord:

Mewarisi semua bidang dari SkillSummary, ditambah:

BidangJenisDeskripsi
promptstringIsi Markdown dari SKILL.cat.md (prompt yang diberikan ke AI)
configRecord<string, SkillConfigField>Definisi bidang konfigurasi (skema)

Bentuk SkillConfigField:

BidangJenisDeskripsi
titlestringJudul tampilan
type"text" | "number" | "select" | "switch"Jenis bidang
secretbooleanApakah sensitif (disembunyikan di UI)
requiredbooleanApakah wajib
defaultunknownNilai bawaan
valuesstring[]Daftar opsi (hanya tipe select)

install — pasang Skill

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

Parameter:

ParameterJenisDeskripsi
skillMdstringIsi file SKILL.cat.md (wajib)
scriptsArray<{ name, code }>Daftar file SkillScript
referencesArray<{ name, content }>Daftar file materi referensi

Jika Skill dengan nama yang sama sudah ada, ini akan memperbaruinya.

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 — copot pemasangan Skill

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

Mengembalikan true jika berhasil dihapus, false jika Skill tidak ada.

call — panggil SkillScript secara langsung

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

Menjalankan SkillScript di Skill yang ditentukan secara langsung, tanpa melalui percakapan AI.

Parameter:

ParameterJenisDeskripsi
skillNamestringNama Skill (wajib)
scriptNamestringNama SkillScript (wajib)
paramsRecord<string, unknown>Parameter yang diteruskan (sesuai dengan deklarasi @param)
// Panggil skrip pencarian di dalam Skill secara langsung
const results = await CAT.agent.skills.call(
"my-search",
"search",
{ query: "ScriptCat", limit: 5 }
);

Eksekusi SkillScript memiliki batas waktu (300 detik secara bawaan, dapat disesuaikan melalui @timeout).