メインコンテンツへスキップ

Skills(OpenClaw)

OpenClaw は、エージェントにツールの使い方を教えるために AgentSkills-互換の skill フォルダーを使用します。各 skill は、YAML フロントマターと手順を含む SKILL.md を持つディレクトリです。OpenClaw は 同梱 skills に加えて任意のローカル上書きを読み込み、環境・設定・バイナリの存在に基づいてロード時にフィルタリングします。

配置場所と優先順位

Skills は 3 か所から読み込まれます:
  1. 同梱 skills:インストール(npm パッケージまたは OpenClaw.app)に同梱
  2. マネージド/ローカル skills~/.openclaw/skills
  3. ワークスペース skills<workspace>/skills
Skill 名が競合した場合の優先順位は次のとおりです: <workspace>/skills(最優先)→ ~/.openclaw/skills → 同梱 skills(最下位) さらに、~/.openclaw/openclaw.json
skills.load.extraDirs で追加の skill フォルダー(最下位の優先順位)を設定できます。

エージェント別と共有 skills

マルチエージェント構成では、各エージェントは独自のワークスペースを持ちます。つまり:
  • エージェント別 skills は、そのエージェント専用として <workspace>/skills に配置されます。
  • 共有 skills~/.openclaw/skills(マネージド/ローカル)に配置され、同一マシン上の すべてのエージェント から参照できます。
  • 共有フォルダー は、複数エージェントで共通の skills パックを使いたい場合、skills.load.extraDirs(最下位の優先順位)でも追加できます。
同じ skill 名が複数の場所に存在する場合は、通常の優先順位が適用されます。ワークスペースが最優先、次にマネージド/ローカル、最後に同梱です。

プラグインと skills

プラグインは、プラグインルートからの相対パスとして openclaw.plugin.jsonskills ディレクトリを列挙することで、独自の skills を同梱できます。プラグインが有効になるとプラグイン skills がロードされ、通常の skill 優先順位ルールに従います。プラグインの設定エントリの metadata.openclaw.requires.config によってゲートできます。検出/設定については Plugins、それらの skills が教えるツールの表面については Tools を参照してください。

ClawHub(インストール+同期)

ClawHub は OpenClaw 向けの公開 skills レジストリです。閲覧は
https://clawhub.com から行えます。Skills の発見、インストール、更新、バックアップに使用します。完全なガイドは ClawHub を参照してください。
一般的なフロー:
  • ワークスペースに skill をインストール:
    • clawhub install <skill-slug>
  • インストール済み skills をすべて更新:
    • clawhub update --all
  • 同期(スキャン+公開更新):
    • clawhub sync --all
既定では、clawhub は現在の作業ディレクトリ配下の ./skills にインストールします(または設定された OpenClaw ワークスペースにフォールバックします)。OpenClaw は次のセッションでそれを <workspace>/skills として認識します。

セキュリティ上の注意

  • サードパーティ製 skills は 信頼できないコード として扱ってください。有効化する前に内容を確認してください。
  • 信頼できない入力やリスクの高いツールには、サンドボックス化された実行を優先してください。Sandboxing を参照してください。
  • skills.entries.*.envskills.entries.*.apiKey は、そのエージェントのターンにおいて ホスト プロセスにシークレットを注入します(サンドボックスではありません)。シークレットをプロンプトやログに含めないでください。
  • より広範な脅威モデルとチェックリストについては Security を参照してください。

形式(AgentSkills + Pi-compatible)

SKILL.md には、少なくとも次が含まれている必要があります:
---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image
---
注記:
  • レイアウト/意図については AgentSkills 仕様に従います。
  • 組み込みエージェントが使用するパーサーは、単一行のフロントマターキーのみをサポートします。
  • metadata単一行の JSON オブジェクトである必要があります。
  • 手順内で skill フォルダーパスを参照するには {baseDir} を使用してください。
  • 任意のフロントマターキー:
    • homepage — macOS Skills UI に「Website」として表示される URL(metadata.openclaw.homepage でも対応)。
    • user-invocabletrue|false(既定:true)。true の場合、skill はユーザーのスラッシュコマンドとして公開されます。
    • disable-model-invocationtrue|false(既定:false)。true の場合、skill はモデルプロンプトから除外されます(ユーザー呼び出しでは引き続き利用可能)。
    • command-dispatchtool(任意)。tool に設定すると、スラッシュコマンドはモデルをバイパスして直接ツールにディスパッチされます。
    • command-toolcommand-dispatch: tool が設定されている場合に呼び出すツール名。
    • command-arg-moderaw(default)。ツールディスパッチの場合、raw args 文字列をツールに転送します(コアパースなし)。 ツールは次のパラメータで呼び出されます:
      { command: "<raw args>", commandName: "<slash command>", skillName: "<skill name>" }

ゲーティング(ロード時フィルター)

OpenClaw は、metadata(単一行 JSON)を使用して ロード時に skills をフィルタリングします:
---
name: nano-banana-pro
description: Generate or edit images via Gemini 3 Pro Image
metadata:
  {
    "openclaw":
      {
        "requires": { "bins": ["uv"], "env": ["GEMINI_API_KEY"], "config": ["browser.enabled"] },
        "primaryEnv": "GEMINI_API_KEY",
      },
  }
---
metadata.openclaw 配下のフィールド:
  • always: true — 常に skill を含めます(他のゲートをスキップ)。
  • emoji — macOS Skills UI で使用される任意の絵文字。
  • homepage — macOS Skills UI に「Website」として表示される任意の URL。
  • os — 任意のプラットフォーム一覧(darwin, linux, win32)。設定した場合、その OS のみで有効です。
  • requires.bins — リスト。各項目は PATH 上に存在する必要があります。
  • requires.anyBins — リスト。少なくとも 1 つが PATH 上に存在する必要があります。
  • requires.env — リスト。環境変数が存在する または 設定で提供されている必要があります。
  • requires.config — 真である必要がある openclaw.json パスのリスト。
  • primaryEnvskills.entries.<name>.apiKey に関連付けられた環境変数名。
  • install — macOS Skills UI で使用されるインストーラ仕様の任意の配列(brew/node/go/uv/download)。
サンドボックスに関する注意:
  • requires.bins は、skill のロード時に ホスト でチェックされます。
  • エージェントがサンドボックス化されている場合、バイナリも コンテナ内 に存在する必要があります。
    agents.defaults.sandbox.docker.setupCommand(またはカスタムイメージ)でインストールします。
    setupCommand はコンテナ作成後に一度実行されます。
    パッケージのインストールには、ネットワーク egress、書き込み可能なルート FS、およびサンドボックス内の root ユーザーも必要です。
    例:summarize skill(skills/summarize/SKILL.md)は、サンドボックスコンテナ内に summarize CLI が必要です。
インストーラ例:
---
name: gemini
description: Use Gemini CLI for coding assistance and Google search lookups.
metadata:
  {
    "openclaw":
      {
        "emoji": "♊️",
        "requires": { "bins": ["gemini"] },
        "install":
          [
            {
              "id": "brew",
              "kind": "brew",
              "formula": "gemini-cli",
              "bins": ["gemini"],
              "label": "Install Gemini CLI (brew)",
            },
          ],
      },
  }
---
注記:
  • 複数のインストーラが列挙されている場合、ゲートウェイは 単一 の優先オプション(利用可能な場合は brew、そうでなければ node)を選択します。
  • すべてのインストーラが download の場合、OpenClaw は各エントリを一覧表示します。
  • インストーラ仕様には、os: ["darwin"|"linux"|"win32"] を含めてプラットフォーム別にフィルタリングできます。
  • Node のインストールは、openclaw.jsonskills.install.nodeManager を尊重します(既定:npm;選択肢:npm/pnpm/yarn/bun)。
    これは skill installs のみに影響します。Gateway ランタイムは引き続き Node を使用してください(WhatsApp/Telegram では Bun は推奨されません)。
  • Go のインストール:go がなく brew が利用可能な場合、先に Homebrew で Go をインストールし、可能であれば GOBIN を Homebrew の bin に設定します。
  • Download のインストール:url(必須)、archivetar.gz | tar.bz2 | zip)、extract(既定:アーカイブ検出時は自動)、stripComponentstargetDir(既定:~/.openclaw/tools/<skillKey>)。
metadata.openclaw が存在しない場合、その skill は常に有効です(設定で無効化されている場合、または同梱 skills に対する skills.allowBundled によってブロックされている場合を除く)。

設定による上書き(~/.openclaw/openclaw.json

バンドル/マネージド skills は有効化の切り替えや env 値の指定ができます:
{
  skills: {
    entries: {
      "nano-banana-pro": {
        enabled: true,
        apiKey: "GEMINI_KEY_HERE",
        env: {
          GEMINI_API_KEY: "GEMINI_KEY_HERE",
        },
        config: {
          endpoint: "https://example.invalid",
          model: "nano-pro",
        },
      },
      peekaboo: { enabled: true },
      sag: { enabled: false },
    },
  },
}
注:skill 名にハイフンが含まれる場合はキーをクォートしてください(JSON5 ではクォート付きキーが許可されています)。 設定キーは既定で skill name と一致します。skill が metadata.openclaw.skillKey を定義している場合は、skills.entries 配下でそのキーを使用してください。 ルール:
  • enabled: false は、同梱/インストール済みであっても skill を無効化します。
  • env:その変数がプロセス内ですでに設定されていない場合に のみ 注入されます。
  • apiKeymetadata.openclaw.primaryEnv を宣言する skills 向けの簡便機能です。
  • config:カスタムの skill ごとのフィールドを入れる任意の入れ物です。カスタムキーはここに配置する必要があります。
  • allowBundled同梱 skills のみを対象とした任意の許可リスト。設定されている場合、リスト内の同梱 skills のみが有効になります(マネージド/ワークスペース skills には影響しません)。

環境変数の注入(エージェント実行ごと)

エージェント実行が開始されると、OpenClaw は:
  1. Skill メタデータを読み取ります。
  2. skills.entries.<key>.env または skills.entries.<key>.apiKeyprocess.env に適用します。
  3. 有効な skills を用いてシステムプロンプトを構築します。
  4. 実行終了後、元の環境を復元します。
これは エージェント実行にスコープ されたものであり、グローバルなシェル環境ではありません。

セッションスナップショット(パフォーマンス)

OpenClaw は、セッション開始時に有効な skills をスナップショットし、同一セッション内の後続ターンでその一覧を再利用します。Skills や設定の変更は、次の新しいセッションから有効になります。 スキルウォッチャーが有効な場合や、新しい対象リモートノードが出現した場合(下記参照)には、セッション中にリフレッシュされることもあります。これは ホットリロード と考えてください。更新された一覧は次のエージェントターンで使用されます。

リモート macOS ノード(Linux gateway)

Gateway が Linux 上で稼働しており、macOS ノードsystem.run を許可した状態(Exec approvals のセキュリティが deny でない)で接続されている場合、OpenClaw は必要なバイナリがそのノード上に存在すれば macOS 専用 skills を有効として扱えます。エージェントはそれらの skills を nodes ツール(通常は nodes.run)経由で実行する必要があります。 これは、ノードがコマンド対応状況を報告し、system.run による bin プローブを行えることに依存します。後で macOS ノードがオフラインになっても skills は表示されたままですが、再接続されるまで呼び出しが失敗する可能性があります。

Skills ウォッチャー(自動更新)

既定では、OpenClaw は skill フォルダーを監視し、SKILL.md が変更されると skills スナップショットを更新します。skills.load で設定します:
{
  skills: {
    load: {
      watch: true,
      watchDebounceMs: 250,
    },
  },
}

Token impact(skills list)

Skills が有効な場合、OpenClaw は利用可能な skills のコンパクトな XML 一覧をシステムプロンプトに注入します(pi-coding-agentformatSkillsForPrompt 経由)。コストは決定的です:
  • Base overhead(1 つ以上の skill がある場合のみ): 195 characters。
  • Per skill: 97 characters + XML エスケープされた <name><description><location> の長さ。
式(characters):
total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(location_escaped))
注記:
  • XML エスケープにより & < > " ' はエンティティ(&amp;, &lt; など)に展開され、長さが増加します。
  • トークン数はモデルのトークナイザーによって異なります。OpenAI 風の概算では約 4 chars/token のため、97 chars ≈ 24 tokens/skill に加えて実際のフィールド長が加算されます。

マネージド skills のライフサイクル

OpenClaw は、インストール(npm パッケージまたは OpenClaw.app)の一部として、ベースラインの skills を bundled skills として提供します。~/.openclaw/skills はローカル上書き用(例:同梱コピーを変更せずにスキルをピン留め/パッチする場合)です。ワークスペース skills はユーザー所有で、同名競合時には他を上書きします。

設定リファレンス

完全な設定スキーマについては Skills config を参照してください。

さらに skills を探していますか?

https://clawhub.com を参照してください。