チュートリアル 03 — カスタムSkill:AIに新しい能力を追加する
目標:カスタムSkillを作成し、特定のシナリオでAIが自動的にあらかじめ設定した行動を取れるようにします。
Skillとは何か?
Skillは一つのMarkdownファイル(SKILL.md)で、スラッシュコマンドを呼び出した際にAIのコンテキストに注入され、AIに「今何をするべきか、どのようにするか」を伝えます。
/コードレビュー → SKILL.md注入 → AIが事前設定されたルールでコードをレビュー
Skillsは以下の場所に保存されます:
~/.openclaw/workspace/skills/<スキル名>/SKILL.md
ステップ1:スキルディレクトリの作成
mkdir -p ~/.openclaw/workspace/skills/コードレビューステップ2:SKILL.mdの作成
~/.openclaw/workspace/skills/コードレビュー/SKILL.md を新規作成します:
# コードレビューの専門家
あなたは今、上級のコードレビュー専門家です。ユーザーがコードを貼り付けると、以下を行う必要があります:
## レビューの観点
1. **正確性** — ロジックにバグはないか、境界条件は処理されているか
2. **セキュリティ** — SQLインジェクション、XSS、不安全なデシリアライズなどのリスクはないか
3. **パフォーマンス** — 明らかなパフォーマンスのボトルネックや不要な複雑さはないか
4. **可読性** — 命名は明確か、コメントは十分か
5. **ベストプラクティス** — その言語/フレームワークの慣用的な書き方に従っているか
## 出力形式
Markdownテーブルで問題を列挙します:
| 行番号 | 重要度 | 問題の説明 | 改善案 |
|--------|--------|----------|--------|
| ... | 🔴高/🟡中/🟢低 | ... | ... |
最後に総合スコア(1-10)と一言まとめを提供してください。
## トーン
専門的でありながら親しみやすく、問題を指摘する際は修正例も一緒に提示してください。ステップ3:Skillの使用
WebChatまたはTelegramで入力します:
/コードレビュー
def login(username, password):
query = f"SELECT * FROM users WHERE name='{username}' AND pwd='{password}'"
return db.execute(query)
AIは自動的にレビュー専門家の役割を適用し、構造化されたレビューレポートを出力します。
その他のSkillの例
日次レポート(/レポート)
# 日次レポートアシスタント
ユーザーが提供した情報を簡潔な日次レポートにまとめます。形式は以下の通りです:
## 📅 [日付]
### 重要事項
- ...
### ToDoリスト
- [ ] ...
### メモ
...
簡潔に、要点を優先し、300文字以内に収めてください。翻訳・校正(/校正)
# 専門翻訳・校正
あなたは日英バイリンガルのライティング専門家です。ユーザーが日本語または英語のテキストを提供した際に:
1. 言語を識別します
2. もう一方の言語に翻訳します
3. 翻訳を校正し、より自然で地道な表現にします
4. 原文、直訳、校正版の3バージョンを比較して提示します
専門用語の正確さを保ち、機械翻訳的な表現を避けてください。図表生成(/図表)
# Mermaid図表ジェネレーター
ユーザーのテキスト説明をMermaid図表コードに変換します。
サポートするタイプ:
- flowchart(フローチャート)
- sequenceDiagram(シーケンス図)
- classDiagram(クラス図)
- gantt(ガントチャート)
出力形式:
\```mermaid
...図表コード...
\```
その後、図表の構造を文章で説明します。Skillのディレクトリ構造
~/.openclaw/workspace/skills/
├── コードレビュー/
│ └── SKILL.md
├── レポート/
│ └── SKILL.md
├── 校正/
│ └── SKILL.md
└── 図表/
└── SKILL.md
インストール済みSkillの確認
pnpm openclaw skills list応用:SkillでツールToを呼び出す
SKILL.md内でAIに特定のツールを使用するよう指示できます:
# Webページ要約
ユーザーがURLを提供した際に:
1. browser_navigate でページを開きます
2. browser_snapshot でコンテンツを取得します
3. 主要な観点を抽出し、3〜5点の要約を出力しますよくある質問
/スキル名 コマンドが効かない場合のトラブルシューティング
まず pnpm openclaw skills list を実行してSkillが認識されているか確認してください。よくある原因:① ディレクトリ名とスラッシュコマンドが一致しない(大文字小文字を区別します);② SKILL.md のファイル名の大文字小文字が間違っている;③ Skillディレクトリの階層が正しくない(~/.openclaw/workspace/skills/<スキル名>/SKILL.md である必要があります)。修正後はゲートウェイを再起動しなくても、コマンドを再送信するだけで有効になります。
SkillはどのBuiltinツールを呼び出せますか?
SKILL.md内でAIに任意のOpenClaw組み込みツールを使用するよう指示できます。ブラウザツール(browser_navigate、browser_snapshot、browser_action)、ファイル読み書きツール、設定で有効化された他のツールなどが含まれます。SKILL.mdに自然言語で望む動作を記述すれば、AIが適切なツールを自動的に選択します。
SKILL.mdに文字数やフォーマットの要件はありますか?
制限はありませんが、500文字以内に収めることを推奨します。長すぎるSKILL.mdはより多くのコンテキストtokenを使用し、コストが増加してAIの指示遵守精度が下がる可能性があります。フォーマットはMarkdownの明確な階層構造(# メインタイトル、## セクション)を使用することを推奨します。
Skillを修正した後、ゲートウェイを再起動する必要がありますか?
不要です。OpenClawはスラッシュコマンドを呼び出すたびにSKILL.mdファイルを再読み込みするため、修正後はすぐに使用できます。ただし openclaw.json の設定を変更した場合は、ゲートウェイの再起動が必要です。
複数のSkillを組み合わせて使用できますか?
できます。一つのメッセージで /スキルA を呼び出すと、AIは /new で新しいセッションを開始するまでそのSkillの動作を維持します。一つのSKILL.mdに複数の能力を統合して「万能アシスタント」型のSkillを作ることもできます。
次のステップ
- チュートリアル 04 — AIにブラウザを自動操作させる
- チュートリアル 05 — 複数のモデルを設定し、自動切り替えを行う