Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

スキル

スキルは、ZeroClawがエージェントセッションに読み込める、再利用可能な命令とオプションのツール定義です。コードレビューのチェックリスト、デプロイのランブック、サポート用のプレイブック、ドメイン固有のツールラッパーなど、繰り返し利用するワークフローに使用します。

スキルは、3 つの場所のいずれかに配置されます。

  • <install>/agents/<alias>/workspace/skills/<name>/ 配下のエージェントごとのワークスペーススキル。
  • <install>/shared/skills/<bundle>/<name>/ に配置される共有スキルバンドル。エージェントは、その設定の agents.<alias>.skill_bundles にバンドルが記載されている場合にこれらを読み込みます。
  • <install>/data/skills/<name>/ 配下のグローバルスキルディレクトリです。CLI はフォールバックとしてそこにインストールできますが、エージェントはグローバルスキルを自動的に読み込みません。

エージェントがランタイム中にロードすべきスキルには、バンドルを使用します。バンドルは[skill_bundles.<alias>]の下で設定されます。directoryが省略された場合、ZeroClawはこれを<install>/shared/skills/<alias>/に解決します。

<install>/shared/skills/<bundle>/<name>/

手書きのローカルスキルには、SKILL.md または SKILL.toml を使用してください。指示に加えてシンプルなメタデータを記述する場合は SKILL.md を使用します。スキルに構造化されたプロンプトやツール定義が必要な場合は SKILL.toml を使用します。ZeroClaw はレジストリ形式のスキルパッケージ向けに manifest.toml も認識しますが、ローカルでの作成には SKILL.mdSKILL.toml が推奨される形式です。

一連のスキルを署名付きでバージョン管理されたインストール可能なパッケージとして配布するには、スキルバンドル を参照してください。なお、これらはプラグインシステムを利用しますが、事前ビルド済みのリリースバイナリにはプラグインシステムが含まれていません。標準バイナリでは、このページにある共有バンドルがサポート対象の仕組みです。

Markdownスキルを作成

バンドルを作成し、その中に指示のみのスキルをスキャフォールドします:

sh

zeroclaw skills bundle add ops
zeroclaw skills add release-check \
  --bundle ops \
  --description "Check release readiness before tagging" \
  --edit

skills add コマンドは、解決されたバンドルディレクトリの下に SKILL.md を書き込み、エディタで開きます。生成された手順を、エージェントに従わせたいワークフローに置き換えてください:

# Release check

Review the release notes, changelog, version tags, and migration notes before confirming that a release is ready.

ディレクトリ名がスキル名になります。ZeroClaw は、フロントマターに description が存在しない場合、最初の見出し以外の段落を説明として使用します。

SKILL.md はメタデータ用のシンプルなフロントマターもサポートしています:

---
name: release-check
description: Check release readiness before tagging
version: 0.1.0
author: zeroclaw_user
tags: [release, docs]
---

# Release check

Review the release notes, changelog, version tags, and migration notes before confirming that a release is ready.

サポートされるフロントマターのフィールドは、namedescriptionauthorversiontagsalwaysslash_options です。

always: true を設定すると、エージェントがコンパクトなスキルプロンプトモード(他のスキルは要約され、その手順は必要に応じて read_skill 経由で読み込まれます)で実行されている場合でも、スキルの全手順がシステムプロンプトにインラインで保持されます。既定値は false です。これを使用するのは、モデルから常に参照できる必要があるポリシーまたは安全性に関わる重要なスキルに限定し、上記のリリースチェックのような通常のワークフロースキルには使用しないでください:

---
name: security-policy
description: Non-negotiable safety rules the agent must follow every turn.
version: 0.1.0
author: zeroclaw_user
tags: [policy]
always: true
---

# Security policy

Never exfiltrate secrets, never disable audit logging, and always ask for approval before touching production credentials.

TOML スキルを作成する

スキルは、構造化された TOML マニフェスト(SKILL.toml)にすることもできます。[skill] テーブルでは namedescription が必須です。version を省略した場合のデフォルト値は 0.1.0 です。authortagspromptsalways は省略可能です(always のデフォルト値は false です。上記を参照してください)。ツールエントリには kind = "shell"kind = "http"、または kind = "script" を使用できます。モデルがいつ使用すべきかを把握できるよう、ツールの説明は対象を絞り、具体的なものにしてください。

HTTP スキルツールでは、httphttps の URL のみ使用できます。引数は挿入前にパーセントエンコードされ、リダイレクトと環境プロキシは無効化されます。また、解決後の宛先は ZeroClaw のパブリックネットワークへの送信ポリシーに準拠している必要があります。プライベート宛先やメタデータ宛先は拒否され、1 メガバイトを超えるレスポンスボディは、実行時メモリの使用量を増大させる前に切り詰められます。

スラッシュコマンドのオプションとローカライズ

slash タグ付きのスキルは、チャットチャンネルのスラッシュコマンドとして公開されます(例: Discord /search)。型付きの [[skill.slash_options]] を宣言できます。何も宣言しないスキルは、必須の単一自由テキスト入力にフォールバックします。コマンドの説明と各オプションの説明はどちらも、ロケールコードをキーとするオプションの description_localizations マップを受け付けます。不明またはサポートされていないロケールコードは登録を失敗させるのではなく警告とともに破棄されるため、タイプミスがコマンド登録を妨げることはありません。

[skill]
name = "search"
description = "Search the web"
tags = ["slash"]
# ロケールコードをキーとするローカライズされたコマンドの説明。
description_localizations = { fr = "Rechercher sur le web", ja = "ウェブを検索" }

[[skill.slash_options]]
name = "query"
description = "The search query"
type = "string"
required = true
# 同じ形式のローカライズされたオプションの説明。
description_localizations = { fr = "La requête de recherche" }

インストール済みスキルを管理する

完全なインベントリを一覧表示:

sh

zeroclaw skills list

1つのエージェントが実行時にロードするものを正確に一覧表示:

sh

zeroclaw skills list --agent default

バンドルを1つ直接一覧表示する:

sh

zeroclaw skills list --bundle ops

インストール済みスキルまたはローカルスキルディレクトリを監査します:

sh

zeroclaw skills audit release-check
zeroclaw skills audit ./release-check

ローカルディレクトリ、Git URL、またはレジストリ名からスキルをインストールします:

sh

zeroclaw skills install ./release-check --bundle ops
zeroclaw skills install https://example.com/zeroclaw-release-check.git --bundle ops
zeroclaw skills install release-check --agent default

Git カタログリポジトリ(スキルが skills/<name>/ 配下に格納されているリポジトリ)から、名前を指定してスキルを1つインストールします:

sh

zeroclaw skills install https://github.com/vercel-labs/skills --skill find-skills

インストール先の優先順位は:

  1. 明示的な --bundle <alias>
  2. 対象エージェントに割り当てられた単一のバンドル。--agent <alias> で対象エージェントを選択します。省略した場合、ZeroClaw はアクティブなランタイムエージェントを使用します。
  3. <install>/data/skills/ 配下のグローバルディレクトリ。

ターゲットエージェントに複数のバンドルがある場合は、宛先を明確にするために --bundle を渡してください。ZeroClaw がグローバルディレクトリにフォールバックした場合、スキルはインストールされ一覧表示されますが、エージェントは自動的には読み込みません。ランタイムで利用可能にするには、バンドルにアタッチしてください。

インストール済みのスキルを削除します:

sh

zeroclaw skills remove release-check --bundle ops
zeroclaw skills remove release-check --agent default

バンドルから削除すると、スキルディレクトリはアーカイブされ、後で復元できます。グローバルディレクトリから削除すると、既存のパス包含チェックを通過した後にグローバルコピーが削除されます。

1 つのスキルに対して TEST.sh の検証を実行します。名前を省略すると、インストールされているすべてのスキルをテストします:

sh

zeroclaw skills test release-check
zeroclaw skills test --verbose

zeroclaw skills test は、スキルに TEST.sh ファイルが存在する場合にそれを実行します。信頼していないスキルソースからテストを実行する前に、TEST.sh を確認してください。

zeroclaw skills list にスキルが表示されているのにエージェントが使用しない場合は、ランタイムビューを確認してください:

sh

zeroclaw skills list --agent default

スキルがグローバルグループにのみ存在する場合は、それをバンドルにインストールし、エージェントが agents.<alias>.skill_bundles にそのバンドルを列挙していることを確認してください。

組み込みツールを再利用可能なオペレーターワークフローに変える実践例については、スキルから relationship memory を使用する を参照してください。

プロンプトトリガーによる機能の提案

ZeroClaw は、送信されたプロンプトがキャッシュされたレジストリメタデータに存在するもののインストールされていない項目を明確に指定している場合に、インストール可能なスキル機能をオプションで提案できます。サーバー側の処理は、送信後、通常の LLM ターンの前に実行されます。提案を返すだけであり、スキルのインストール、有効化、メモリへの書き込み、またはスキル本体をグローバルな指示として扱うことはありません。

skills 設定(gateway、zerocode、または zeroclaw config set)から有効化できます。サジェスチョンマッチャーは、インストール済みのスキル名と、名前、エイリアス、フロントマターなどのキャッシュされたレジストリメタデータを使用します。これは意図的に、未承認のスキル本文とのマッチングを回避します。プラグイン/パッケージレベルの検出は、プラグインレジストリの検索/インストールサーフェスが利用可能になるまでフォローアップスコープのままです。ユーザーが入力中のコンポーザー時点での正確なサジェスチョンには、ACP、gateway、またはクライアント UI のサポートが必要であり、このサーバー専用パスの範囲外です。

スクリプトの安全性

ZeroClawはスキルをロードまたはインストールする前に監査を実施します。.sh.bash.ps1などのスクリプト系ファイルや、シェルのshebangを含むファイルはデフォルトでブロックされます。

スクリプトを含むスキルを意図的に使用する場合は、skills.allow_scripts を有効にします。スキルのソースを信頼し、スクリプトの動作を確認した場合を除き、これは無効のままにしてください。

Python固有の実行パターン、インタープリタポリシー、ネイティブとDockerのトレードオフについては、Pythonスキルの実行を参照してください。

コミュニティスキルを読み込んでいます

コミュニティのopen-skillsの読み込みは、skills設定によるオプトイン方式です。有効にすると、ZeroClawは設定されたopen_skills_dirから、ディレクトリが設定されていない場合は$HOME/open-skillsからスキルを読み込みます。そのディレクトリが存在しない場合、ZeroClawはコミュニティのopen-skillsリポジトリをクローンすることがあります。存在し、かつgitのチェックアウトである場合は、ZeroClawが更新をpullすることがあります。これは信頼できるコミュニティソースに対してのみ有効にするか、レビュー済みのローカルコピーをopen_skills_dirに指定してください。

高度な設定

デフォルトのプロンプトインジェクションモードは full で、システムプロンプトにスキルの完全な手順が含まれます。グローバルまたはランタイムプロファイルで prompt_injection_mode = "compact" を設定すると、通常のスキルメタデータをコンテキストに保持し、read_skill を通じて必要に応じて手順を読み込めます。always: true とマークされたスキルは、コンパクトモードでも完全な手順を保持します。コンパクトモードはプロンプトサイズを削減しますが、信頼できないスキルソースに対する分離境界ではありません。

自律的スキル作成

成功したマルチステップタスク(少なくとも2回のツール呼び出し)の後、ZeroClaw は実行を再利用可能なスキルとして永続化できます。これはデフォルトでオフであり、オプトインです:

[skills.skill_creation]
enabled = true              # off by default
max_skills = 500            # LRU cap: oldest auto-generated skill is evicted past this
similarity_threshold = 0.85 # embedding-dedup cutoff; near-duplicate tasks are skipped

デフォルトでは、作成された各スキルはツールコールのトレースから直接生成される決定的な SKILL.toml であり、モデル呼び出しは関与しません。

リフレクション(SKILL.md の統合)

リフレクションを有効にすると、ZeroClaw は代わりに、エージェントに設定されたモデルプロバイダーに対して、実行の境界付きスライス(タスク、ツール呼び出しのトレース、最終的な回答)から正規の SKILL.md を合成するよう要求します。各入力は設定された文字数の予算に応じて独立して切り詰められるため、大規模な実行でも境界のないリフレクション要求が生成されることはありません。

[skills.skill_creation]
enabled = true
reflection_enabled = true   # opt-in; requires enabled = true
max_task_chars = 1000           # task description budget
max_tool_trace_chars = 4000     # tool-call trace budget
max_final_answer_chars = 2000   # final assistant answer budget

リフレクション呼び出しが失敗した場合(プロバイダーエラー、不正な形式の出力、または空のボディ)、ZeroClaw は決定的な SKILL.toml パスにフォールバックするため、リフレクションを有効にしてもスキルが作成されないままになることはありません。リフレクションされたスキルには zeroclaw-auto 作者がスタンプされ、SKILL.toml スキルと同じ重複排除と LRU エビクションに参加します。

リフレクションはターン内容をモデルプロバイダーに転送するため、タスク、ツールコールのトレース、最終回答はそれぞれ、認証情報らしい値(APIキー、トークン、AWS認証情報、PEM秘密鍵、JWT、データベース接続URL、高エントロピーのシークレット)についてスキャンされ、プロンプトが構成されて送信される前に、ZeroClawがチャネル応答に適用するのと同じアウトバウンドコンテンツガードレールを使用してリダクションされます。リダクションはリクエストの前にプロセス内で実行されるため、ツール引数または最終回答に現れるシークレットは、プロバイダーに届くのではなく [REDACTED_…] マーカーに置き換えられます。

リフレクションとスキル改善。 リフレクション([skills.skill_creation] reflection_enabled)は、完了した実行トレースから_新しいスキルを作成_します。[skills.skill_improvement] のバックグラウンドレビューフォークは、使用後に_既存のスキルをパッチ_する別の機能です。これらは独立して有効にできます。

関連項目も参照してください