Skills

Skills の作成

Skills は、エージェントがツールをいつどのように使うかを教えます。各Skillは、YAMLフロントマターとMarkdownの手順を含むSKILL.mdファイルを持つディレクトリです。 OpenClaw は、定義済みの優先順位に従って複数のルートからSkillsを読み込みます。

最初のSkillを作成する

  • Create the skill directory

    Skills はワークスペースのskills/フォルダーに置きます。新しいSkill用のディレクトリを作成します。

    bash
    mkdir -p ~/.openclaw/workspace/skills/hello-world

    整理のためにSkillsをサブフォルダーにまとめることもできます。Skillの名前はフォルダーパスではなく、SKILL.mdのフロントマターで決まります。

    bash
    mkdir -p ~/.openclaw/workspace/skills/personal/hello-world# skill name is still "hello-world", invoked as /hello-world
  • Write SKILL.md

    ディレクトリ内にSKILL.mdを作成します。フロントマターはメタデータを定義し、本文はエージェントへの手順を示します。

    markdown
    ---name: hello-worlddescription: A simple skill that prints a greeting.--- # Hello World When the user asks for a greeting, use the `exec` tool to run: ```bashecho "Hello from your custom skill!"
    Code
     命名規則:- `name`には小文字、数字、ハイフンを使用します。- ディレクトリ名とフロントマターの`name`を一致させます。- `description`はエージェントとスラッシュコマンド検出に表示されます。1行に収め、160文字未満にしてください。  OPENCLAW_DOCS_MARKER:stepClose:   OPENCLAW_DOCS_MARKER:stepOpen:IHRpdGxlPSJWZXJpZnkgdGhlIHNraWxsIGxvYWRlZCI ```bashopenclaw skills list

    OpenClaw はデフォルトでSkillsルート配下のSKILL.mdファイルを監視します。監視が無効になっている場合、または既存のセッションを継続している場合は、エージェントが更新済みリストを受け取れるように新しいセッションを開始します。

    bash
    # From chat — archive current session and start fresh/new # Or restart the gatewayopenclaw gateway restart
  • Test it

    Skillをトリガーするはずのメッセージを送信します。

    bash
    openclaw agent --message "give me a greeting"

    またはチャットを開き、エージェントに直接依頼します。名前で明示的に呼び出すには/skill hello-worldを使用します。

  • SKILL.mdリファレンス

    必須フィールド

    フィールド 説明
    name 小文字、数字、ハイフンを使った一意のスラッグ
    description エージェントと検出出力に表示される1行の説明

    任意のフロントマターキー

    フィールド デフォルト 説明
    user-invocable true Skillをユーザー用スラッシュコマンドとして公開する
    disable-model-invocation false Skillをエージェントのシステムプロンプトから除外する(/skillでは引き続き実行される)
    command-dispatch toolに設定すると、モデルをバイパスしてスラッシュコマンドを直接ツールへルーティングする
    command-tool command-dispatch: toolが設定されているときに呼び出すツール名
    command-arg-mode raw ツールディスパッチでは、生の引数文字列をツールへ転送する
    homepage macOS Skills UIで「Website」として表示されるURL

    ゲート用フィールド(requires.binsrequires.envなど)については、 Skills — ゲーティングを参照してください。

    {baseDir}の使用

    Skill本文内で{baseDir}を使うと、パスをハードコードせずにSkillディレクトリ内のファイルを参照できます。

    markdown
    Run the helper script at `{baseDir}/scripts/run.sh`.

    条件付き有効化を追加する

    依存関係が利用可能な場合にのみ読み込まれるように、Skillにゲートを設定します。

    markdown
    ---name: gemini-searchdescription: Search using Gemini CLI.metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }---
    Gating options
    キー 説明
    requires.bins すべてのバイナリがPATH上に存在する必要がある
    requires.anyBins 少なくとも1つのバイナリがPATH上に存在する必要がある
    requires.env 各環境変数がプロセスまたは設定内に存在する必要がある
    requires.config openclaw.jsonパスが真値である必要がある
    os プラットフォームフィルター: ["darwin"]["linux"]["win32"]
    always trueに設定するとすべてのゲートをスキップし、常にSkillを含める

    完全なリファレンス: Skills — ゲーティング

    Environment and API keys

    APIキーをopenclaw.json内のSkillエントリに接続します。

    json5
    {  skills: {    entries: {      "gemini-search": {        enabled: true,        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },      },    },  },}

    キーは、そのエージェントターンの間だけホストプロセスに注入されます。 サンドボックスには届きません。詳細は サンドボックス化された環境変数を参照してください。

    Skill Workshop経由で提案する

    エージェントが下書きしたSkillsや、Skillを有効化する前にオペレーターのレビューを受けたい場合は、SKILL.mdを直接書く代わりにSkill Workshopの提案を使用します。

    bash
    # Propose a brand-new skillopenclaw skills workshop propose-create \  --name "hello-world" \  --description "A simple skill that prints a greeting." \  --proposal ./PROPOSAL.md # Propose an update to an existing skillopenclaw skills workshop propose-update hello-world \  --proposal ./PROPOSAL.md \  --description "Updated greeting skill"

    提案にサポートファイルが含まれる場合は--proposal-dirを使用します。

    bash
    openclaw skills workshop propose-create \  --name "hello-world" \  --description "A simple skill that prints a greeting." \  --proposal-dir ./hello-world-proposal/

    ディレクトリにはPROPOSAL.mdが含まれている必要があります。サポートファイルはassets/examples/references/scripts/、またはtemplates/に置けます。

    レビュー後:

    bash
    openclaw skills workshop inspect <proposal-id>openclaw skills workshop apply <proposal-id>

    提案ライフサイクル全体についてはSkill Workshopを参照してください。

    ClawHubへ公開する

  • Ensure your SKILL.md is complete

    namedescription、およびmetadata.openclawのゲート用フィールドが設定されていることを確認します。プロジェクトページがある場合はhomepage URLを追加します。

  • Install the ClawHub skill

    ClawHub Skillには、現在の公開コマンド形式と必要なメタデータが記載されています。

    bash
    openclaw skills install @openclaw/clawhub-publish
  • Publish

    bash
    clawhub publish

    フロー全体についてはClawHub — 公開を参照してください。

  • ベストプラクティス

    関連

    Was this useful?
    On this page

    On this page