メインコンテンツまでスキップ

Skill管理API

@grant CAT.agent.skills

Skill管理APIにより、スクリプトはSkill拡張パッケージのクエリ、インストール、削除、呼び出しができます。

Skillの開発とパッケージングについては、Skill開発ガイドを参照してください。公式Skill例:scriptscat/skills

list — インストール済みSkillの一覧

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

SkillSummary[]を返します:

フィールド説明
namestringSkill名
descriptionstringSkillの説明
toolNamesstring[]含まれるSkillScriptツールの名前
referenceNamesstring[]含まれる参照資料ファイルの名前
hasConfigboolean設定フィールドを宣言しているかどうか
enabledboolean有効かどうか(デフォルトはtrue
installtimenumberインストールタイムスタンプ
updatetimenumber最終更新タイムスタンプ

注意:versioninstallUrl(管理ページの更新チェック機能で使用)はこのスクリプトAPIでは返されません — 更新チェックロジックと管理ページUIの内部でのみ使用されます。

get — Skillの詳細を取得

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

完全なSkillRecordを返します。存在しない場合はnullを返します。

SkillRecordの構造:

SkillSummaryのすべてのフィールドを継承し、追加:

フィールド説明
promptstringSKILL.cat.mdのMarkdown本文(AIに与えるプロンプト)
configRecord<string, SkillConfigField>設定フィールド定義(スキーマ)

SkillConfigFieldの構造:

フィールド説明
titlestring表示タイトル
type"text" | "number" | "select" | "switch"フィールドタイプ
secretboolean機密かどうか(UIでマスク)
requiredboolean必須かどうか
defaultunknownデフォルト値
valuesstring[]選択肢リスト(selectタイプのみ)

install — Skillをインストール

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

パラメータ:

パラメータ説明
skillMdstringSKILL.cat.mdファイルの内容(必須)
scriptsArray<{ name, code }>SkillScriptファイルのリスト
referencesArray<{ name, content }>参照資料ファイルのリスト

同じ名前のSkillが既に存在する場合、更新します。

const record = await CAT.agent.skills.install(
`---
name: my-search
description: カスタム検索ツール
---

ユーザーが検索する必要がある場合に検索ツールを使用します。`,
[{ name: "search.js", code: skillScriptCode }],
[{ name: "api-docs.md", content: "# APIドキュメント\n..." }]
);

remove — Skillをアンインストール

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

正常に削除された場合はtrue、Skillが存在しない場合はfalseを返します。

call — SkillScriptを直接呼び出し

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

AI会話を経由せずに、指定されたSkill内のSkillScriptを直接実行します。

パラメータ:

パラメータ説明
skillNamestringSkill名(必須)
scriptNamestringSkillScript名(必須)
paramsRecord<string, unknown>渡すパラメータ(@param宣言に一致)
// Skill内の検索スクリプトを直接呼び出し
const results = await CAT.agent.skills.call(
"my-search",
"search",
{ query: "ScriptCat", limit: 5 }
);

SkillScriptの実行にはタイムアウトがあります(デフォルト300秒、@timeoutでカスタマイズ可能)。