Chuyển tới nội dung chính

API quản lý Skills

@grant CAT.agent.skills

API quản lý Skills cho phép script truy vấn, cài đặt, xóa và gọi các gói tiện ích mở rộng Skill.

Để phát triển và đóng gói Skills, xem Hướng dẫn phát triển Skills. Ví dụ Skills chính thức: scriptscat/skills.

list — liệt kê Skills đã cài đặt

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

Trả về SkillSummary[]:

TrườngKiểuMô tả
namestringTên Skill
descriptionstringMô tả Skill
toolNamesstring[]Tên các công cụ SkillScript chứa trong đó
referenceNamesstring[]Tên các tệp tài liệu tham khảo chứa trong đó
hasConfigbooleanCó khai báo trường cấu hình không
enabledbooleanCó được bật không (mặc định true)
installtimenumberThời gian cài đặt
updatetimenumberThời gian cập nhật gần nhất

Lưu ý: versioninstallUrl (được sử dụng bởi tính năng kiểm tra cập nhật của trang quản lý) không được trả về thông qua API script này — chúng chỉ được sử dụng nội bộ bởi logic kiểm tra cập nhật và giao diện trang quản lý.

get — lấy chi tiết Skill

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

Trả về SkillRecord đầy đủ, hoặc null nếu không tồn tại.

Cấu trúc SkillRecord:

Kế thừa tất cả các trường từ SkillSummary, cộng thêm:

TrườngKiểuMô tả
promptstringNội dung Markdown của SKILL.cat.md (prompt đưa cho AI)
configRecord<string, SkillConfigField>Định nghĩa trường cấu hình (schema)

Cấu trúc SkillConfigField:

TrườngKiểuMô tả
titlestringTiêu đề hiển thị
type"text" | "number" | "select" | "switch"Kiểu trường
secretbooleanCó nhạy cảm không (ẩn trong giao diện)
requiredbooleanCó bắt buộc không
defaultunknownGiá trị mặc định
valuesstring[]Danh sách tùy chọn (chỉ kiểu select)

install — cài đặt Skill

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

Tham số:

Tham sốKiểuMô tả
skillMdstringNội dung tệp SKILL.cat.md (bắt buộc)
scriptsArray<{ name, code }>Danh sách tệp SkillScript
referencesArray<{ name, content }>Danh sách tệp tài liệu tham khảo

Nếu đã tồn tại Skill với cùng tên, nó sẽ được cập nhật.

const record = await CAT.agent.skills.install(
`---
name: my-search
description: Công cụ tìm kiếm tùy chỉnh
---

Sử dụng công cụ tìm kiếm khi người dùng cần tìm kiếm.`,
[{ name: "search.js", code: skillScriptCode }],
[{ name: "api-docs.md", content: "# Tài liệu API\n..." }]
);

remove — gỡ cài đặt Skill

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

Trả về true nếu xóa thành công, false nếu Skill không tồn tại.

call — gọi trực tiếp SkillScript

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

Thực thi SkillScript trong Skill được chỉ định trực tiếp, không qua cuộc trò chuyện AI.

Tham số:

Tham sốKiểuMô tả
skillNamestringTên Skill (bắt buộc)
scriptNamestringTên SkillScript (bắt buộc)
paramsRecord<string, unknown>Các tham số truyền vào (khớp với các khai báo @param)
// Gọi trực tiếp script tìm kiếm trong Skill
const results = await CAT.agent.skills.call(
"my-search",
"search",
{ query: "ScriptCat", limit: 5 }
);

Thực thi SkillScript có thời gian chờ (300 giây mặc định, có thể tùy chỉnh bằng @timeout).