SKILL.md を含むディレクトリです。 OpenClaw は、バンドルされたスキル とオプションのローカル オーバーライドをロードし、環境、構成、バイナリの存在に基づいてロード時にそれらをフィルタリングします。
場所と優先順位
スキルは3の場所からロードされます:- バンドルされたスキル: インストールに同梱されています (npm パッケージまたは OpenClaw.app)
- マネージド/ローカル スキル:
~/.openclaw/skills - ワークスペーススキル:
<workspace>/skills
<workspace>/skills (最高) → ~/.openclaw/skills → バンドルスキル (最低)
さらに、追加のスキル フォルダー (優先順位が最も低い) を次のように設定できます。
skills.load.extraDirs の ~/.openclaw/openclaw.json。
エージェントごとのスキルと共有スキル
マルチエージェント セットアップでは、各エージェントに独自のワークスペースがあります。つまり:- エージェントごとのスキルは、そのエージェントに対してのみ
<workspace>/skillsに存在します。 - 共有スキル は
~/.openclaw/skills(管理/ローカル) に存在し、表示されます 同じマシン上のすべてのエージェントに。 - 共有フォルダーは、
skills.load.extraDirs(最低) 経由で追加することもできます。 優先) 複数のエージェントが使用する共通のスキル パックが必要な場合。同じスキル名が複数箇所に存在する場合は、通常のスキルが優先されます。 適用: ワークスペースが優先され、次に管理/ローカル、次にバンドルされます。
プラグイン + スキル
プラグインは、skills ディレクトリをリストすることで独自のスキルを出荷できます。
openclaw.plugin.json (プラグインのルートに対する相対パス)。プラグインスキルのロード
プラグインが有効化され、通常のスキル優先ルールに参加する場合。
プラグインの設定の metadata.openclaw.requires.config を介してそれらをゲートできます。
エントリー。検出/設定については プラグイン を、また、
ツールの表面にこれらのスキルが教えられます。
ClawHub (インストール + 同期)
ClawHub は、OpenClaw の公開スキル レジストリです。で閲覧 https://clawhub.com。これを使用して、スキルの検出、インストール、更新、バックアップを行います。 完全なガイド: ClawHub。 一般的なフロー:- ワークスペースにスキルをインストールします。
clawhub install <skill-slug>
- インストールされているすべてのスキルを更新します。
clawhub update --all
- 同期 (スキャン + 更新の公開):
clawhub sync --all
clawhub は現在の作業環境の ./skills にインストールされます。
ディレクトリに移動します (または、設定された OpenClaw ワークスペースにフォールバックします)。オープンクローピック
それは次のセッションで <workspace>/skills になります。
セキュリティに関する注意事項- サードパーティのスキルを 信頼できないコード として扱います。有効にする前に読んでください
- 信頼できない入力や危険なツールに対しては、サンドボックスでの実行を優先します。 サンドボックス を参照してください。
- ワークスペースおよび追加ディレクトリのスキル検出は、解決されたリアルパスが構成されたルート内に留まるスキル ルートおよび
SKILL.mdファイルのみを受け入れます。 skills.entries.*.envおよびskills.entries.*.apiKeyは ホスト プロセスにシークレットを挿入します そのエージェントのターン (サンドボックスではありません)。プロンプトやログに秘密を記載しないでください。- より広範な脅威モデルとチェックリストについては、セキュリティ を参照してください。
形式 (AgentSkills + Pi 互換)
SKILL.md には少なくとも以下を含める必要があります:
- 組み込みエージェントによって使用されるパーサーは、単一行 フロントマター キーのみをサポートします。
metadataは 単一行の JSON オブジェクトである必要があります。- スキルフォルダーのパスを参照するには、手順内で
{baseDir}を使用します。 - オプションの前付キー:
-
homepage— URL は macOS スキル UI に「ウェブサイト」として表示されます (metadata.openclaw.homepage経由でもサポートされています)。 -
user-invocable—true|false(デフォルト:true)。trueの場合、スキルはユーザーのスラッシュ コマンドとして公開されます。 -
disable-model-invocation—true|false(デフォルト:false)。trueの場合、スキルはモデル プロンプトから除外されます (ユーザー呼び出しを通じて引き続き使用できます)。 -
command-dispatch—tool(オプション)。toolに設定すると、スラッシュ コマンドはモデルをバイパスし、ツールに直接ディスパッチされます。 -
command-tool—command-dispatch: toolが設定されている場合に呼び出すツール名。 -
command-arg-mode—raw(デフォルト)。ツールのディスパッチでは、生の引数文字列をツールに転送します (コア解析なし)。 このツールは params を使用して呼び出されます。{ command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }。
-
ゲーティング (ロード時間フィルター)
OpenClaw は、metadata (単一行 JSON) を使用して ロード時にスキルをフィルタリングします。
metadata.openclaw の下のフィールド:- always: true — 常にスキルを含めます (他のゲートをスキップします)。
emoji— macOS スキル UI で使用されるオプションの絵文字。homepage— macOS スキル UI で「Web サイト」として表示されるオプションの URL。os— プラットフォームのオプションのリスト (darwin、linux、win32)。設定されている場合、スキルはそれらの OS でのみ有効です。requires.bins— リスト;それぞれがPATHに存在する必要があります。requires.anyBins— リスト;少なくとも 1 つはPATHに存在する必要があります。requires.env— リスト; env var は存在する必要があります**、または構成で指定する必要があります。requires.config— 真実でなければならないopenclaw.jsonパスのリスト。primaryEnv—skills.entries.<name>.apiKeyに関連付けられた環境変数名。install— macOS スキル UI で使用されるインストーラー仕様のオプションの配列 (brew/node/go/uv/download)。
requires.binsはスキルのロード時に ホスト上でチェックされます。- エージェントがサンドボックス化されている場合、バイナリは コンテナ内にも存在する必要があります。
agents.defaults.sandbox.docker.setupCommand(またはカスタム イメージ) を介してインストールします。setupCommandは、コンテナーの作成後に 1 回実行されます。 パッケージのインストールには、ネットワーク出力、書き込み可能なルート FS、およびサンドボックス内のルート ユーザーも必要です。 例:summarizeスキル (skills/summarize/SKILL.md) にはsummarizeCLI が必要です サンドボックスコンテナ内で実行します。
- すべてのインストーラーが
downloadの場合、OpenClaw は各エントリをリストするので、利用可能なアーティファクトを確認できます。 - インストーラーの仕様には、プラットフォームごとにオプションをフィルターするための
os: ["darwin"|"linux"|"win32"]を含めることができます。 - ノードは
openclaw.jsonにskills.install.nodeManagerをインストールします (デフォルト: npm; オプション: npm/pnpm/yarn/bun)。 これは スキルのインストールにのみ影響します。ゲートウェイ ランタイムは依然として Node である必要があります (Bun は WhatsApp/Telegram には推奨されません)。 - Go のインストール:
goが見つからず、brewが利用可能な場合、ゲートウェイは最初に Homebrew 経由で Go をインストールし、可能な場合はGOBINを Homebrew のbinに設定します。 - ダウンロード インストール:
url(必須)、archive(tar.gz|tar.bz2|zip)、extract(デフォルト: アーカイブ検出時に自動)、stripComponents、targetDir(デフォルト:~/.openclaw/tools/<skillKey>)。
metadata.openclaw が存在しない場合、スキルは常に適格です (ただし、
構成で無効になっているか、バンドルされたスキルの skills.allowBundled によってブロックされています)。
構成の上書き (~/.openclaw/openclaw.json)
バンドル/管理スキルを切り替えて、env 値を指定することができます。
metadata.openclaw.skillKey、skills.entries でそのキーを使用します。
ルール:
enabled: falseは、バンドル/インストールされている場合でもスキルを無効にします。env: 変数がプロセスにまだ設定されていない場合にのみ挿入されます。apiKey:metadata.openclaw.primaryEnvを宣言するスキルの利便性。 プレーンテキスト文字列または SecretRef オブジェクト ({ source, provider, id }) をサポートします。config: スキルごとのカスタムフィールド用のオプションのバッグ。カスタムキーはここに存在する必要があります。allowBundled: バンドル スキルのみのオプションの許可リスト。設定されている場合のみ、 リスト内のバンドルされたスキルが対象となります (管理/ワークスペース スキルは影響を受けません)。
環境インジェクション (エージェント実行ごと)
エージェントの実行が開始されると、OpenClaw は次のことを行います。- スキルのメタデータを読み取ります。
skills.entries.<key>.envまたはskills.entries.<key>.apiKeyをprocess.env。- 資格のあるスキルを使用してシステム プロンプトを構築します。
- 実行終了後に元の環境を復元します。
セッションのスナップショット (パフォーマンス)
OpenClaw は セッションの開始時に対象となるスキルのスナップショットを作成し、そのリストを同じセッション内の後続のターンで再利用します。スキルまたは構成への変更は、次の新しいセッションで有効になります。スキル ウォッチャーが有効になっている場合、または新しい対象となるリモート ノードが表示された場合、セッション中にスキルを更新することもできます (下記を参照)。これを ホット リロード と考えてください。更新されたリストは次のエージェント ターンで取得されます。リモート macOS ノード (Linux ゲートウェイ)
ゲートウェイが Linux 上で実行されているが、macOS ノードがsystem.run を許可して接続されている場合 (実行承認セキュリティが deny に設定されていない場合)、必要なバイナリがそのノード上に存在する場合、OpenClaw は macOS のみのスキルを適格なものとして扱うことができます。エージェントは、nodes ツール (通常は nodes.run) を介してこれらのスキルを実行する必要があります。
これは、コマンド サポートを報告するノードと、system.run を介した bin プローブに依存します。後で macOS ノードがオフラインになっても、スキルは表示されたままになります。ノードが再接続されるまで呼び出しは失敗する可能性があります。
スキルウォッチャー (自動更新)
デフォルトでは、OpenClaw はスキル フォルダーを監視し、SKILL.md ファイルが変更されるとスキル スナップショットを作成します。これを skills.load で構成します。
トークンの影響 (スキルリスト)
スキルが適格である場合、OpenClaw は利用可能なスキルのコンパクトな XML リストをシステム プロンプトに挿入します (pi-coding-agent の formatSkillsForPrompt 経由)。コストは決定的です。- 基本オーバーヘッド (スキルが 1 つ以上の場合のみ): 195 文字。
- スキルごと: 97 文字 + XML エスケープされた
<name>、<description>、および<location>値の長さ。
- XML エスケープにより、
& < > " 'がエンティティ (&、<など) に展開され、長さが増加します。 - トークン数はトークナイザーのモデルによって異なります。 OpenAI スタイルの大まかな見積もりは、トークンあたり最大 4 文字であるため、スキルあたり 97 文字 ≈ 24 トークン + 実際のフィールドの長さになります。
マネージド スキルのライフサイクル
OpenClaw は、スキルのベースライン セットを バンドル スキルとして、 インストールします (npm パッケージまたは OpenClaw.app)。~/.openclaw/skills はローカルに存在します
オーバーライド(たとえば、バンドルされたスキルを変更せずにスキルを固定/パッチ適用する)
コピー)。ワークスペース スキルはユーザーが所有し、名前の競合の両方をオーバーライドします。