投稿する
📚 OpenClaw基礎講座

第34回: 自分だけのスキルを作る — SKILL.mdの書き方

※この動画はローカルに存在しません(配信元で削除/非公開)

この回で学ぶこと

  • SKILL.mdの構造と書き方

  • 自作スキルの作成手順

  • スキルが発動する仕組み

  • 最初のカスタムスキルの完成


前回のおさらい

ClawHubからスキルをインストールする方法と、安全チェックリスト(作者確認・スペル確認・ダウンロード数・verifiedバッジ・clawhub audit)を学んだ。今回は、他人のスキルを使うのではなく、自分でスキルを作る。


SKILL.mdの構造

カスタムスキルは SKILL.md というファイル1つで作れる。ClawHubからインストールしたスキルも、中身はこのSKILL.mdファイルでできている。コードは不要。日本語で「こうしてほしい」と指示を書くだけ。

SKILL.mdは2つのパートで構成される。

パート1: メタデータ(YAMLフロントマター)

ファイルの冒頭にある --- で囲まれた部分。スキルの名前と説明を書く。

必須フィールドは2つだけ:

  • name: スキルの名前(英語小文字、ハイフン区切り。例: my-translate)

  • description: スキルの説明(秘書がこの説明を読んで「このスキルを使うべきか」を判断する。後述)

パート2: 指示書(Markdown本文)

スキルが何をするか、どう動くかを書く部分。秘書はこの指示を読んで、その通りに実行する。

ポイントは、処理内容を「日本語で手順を書く」だけでよいこと。プログラミング言語は不要。実際にClawHubで公開されている翻訳スキルや語学学習スキルも、100%自然言語の指示だけで動いている。


スキルが発動する仕組み

スキルを作る前に、秘書がどうやってスキルを選ぶのかを理解しておくと、うまくいきやすい。

秘書は常に「使えるスキルの一覧」を頭の中に持っている。一覧には各スキルの name と description だけが載っている。ユーザーからメッセージが来ると、秘書はこの一覧を見て「今回のリクエストにぴったりのスキルはあるか?」と判断する。ぴったりのスキルがあれば、そのSKILL.mdの指示書を読んで実行する。

つまり、description の書き方がスキル発動のカギになる。

descriptionの書き方のコツ:

  • 20〜40語程度で、スキルが何をするか簡潔に書く

  • 動詞で始める(「翻訳する」「要約する」「検索する」等)

  • 可能であれば英語で書く(秘書のマッチング精度が高くなる)

  • 日本語でも動くが、英語の方が確実


翻訳スキルを作る(ハンズオン)

最初のカスタムスキルとして、翻訳スキルを作る。

ステップ1: スキル用のフォルダを作る

mkdir -p ~/.openclaw/skills/my-translate

~/.openclaw/skills/ に置いたスキルは、そのPCの全エージェントで共有される。特定のプロジェクト専用にしたい場合は <ワークスペース>/skills/ に置く。

ステップ2: SKILL.mdを作成する

~/.openclaw/skills/my-translate/SKILL.md というファイルを作り、以下の内容を書く:

---
name: my-translate
description: "Translate user text into a specified language. Use when the user asks to translate text, convert language, or says words like translate, 翻訳, translation."
version: 1.0.0
---

# 翻訳スキル

ユーザーからテキストと翻訳先の言語を受け取り、翻訳結果を返す。

## ルール
- 翻訳先の言語が指定されていなければ、英語に翻訳する
- 原文のニュアンスをできるだけ保つ
- 翻訳結果のみを返す(余計な説明は不要)

## 使い方の例
- 「"こんにちは"を英語に翻訳して」→ 「Hello」
- 「"Thank you"をフランス語に翻訳して」→ 「Merci」
- 「"おはようございます"を翻訳して」→ 英語がデフォルトなので「Good morning」

フロントマターの注意点:

  • description の値にコロン+スペース(: )が含まれる場合、必ずダブルクォート(")で囲む。囲まないとYAML構文エラーになり、スキルがエラーメッセージなしで無視される(これはOpenClawの既知の問題)

  • name は英語小文字とハイフンのみ。日本語やスペースは使えない

  • description は英語推奨(秘書のマッチング精度が高い)。指示書本文は日本語でOK

ステップ3: 新しいセッションを開始する

スキルを追加した後、OpenClawは次のセッション開始時にスキルを読み込む。ターミナルで新しいセッションを開始するか、OpenClawを再起動する。

スキルが読み込まれたか確認する方法: 秘書に「使えるスキルを教えて」と聞くと、認識しているスキルの一覧を教えてくれる。my-translate が含まれていればOK。


動作確認

Telegramから以下のように話しかけてテストする:

  • 「"こんにちは"を英語に翻訳して」→ 「Hello」と返ってくる

  • 「"Thank you"をフランス語に翻訳して」→ 「Merci」と返ってくる

  • 「"おはようございます"を翻訳して」→ 言語指定なしなのでデフォルトの英語で「Good morning」

スキルが正しく認識されていれば、秘書がSKILL.mdの指示に従って翻訳を実行する。

うまく動かない場合のチェック:

  • ファイルの配置場所が正しいか(~/.openclaw/skills/my-translate/SKILL.md)

  • フロントマターの -- が正しく閉じられているか

  • description のYAML構文にエラーがないか(コロン+スペースを含む場合はダブルクォートで囲む)

  • 新しいセッションを開始したか(古いセッションでは新しいスキルが読み込まれない)


自作スキルの可能性

翻訳スキルは最もシンプルな例だが、同じ仕組みでもっと複雑なスキルも作れる:

  • メール返信テンプレートスキル: よく使う返信パターンを指示書に書いておき、「このメールに返信して」で定型返信を生成

  • 議事録フォーマットスキル: 会議の内容を伝えると、決まったフォーマット(日時・参加者・決定事項・TODO)に整理してくれる

  • 日記要約スキル: その日あったことを伝えると、決まった構造で日記を書いてくれる

どれもSKILL.md1つで作れる。コードは不要。


ゴール状態

  • SKILL.mdの2パート構造(フロントマター + 指示書)を理解している

  • description がスキル発動のカギであることを理解している

  • 翻訳スキルを自作して動かせた

  • YAML構文の注意点(コロン+スペース問題)を知っている