TL;DR
OpenClawの真の力は、スキルによる拡張性にあります。ClawHubを通じて利用できる700以上のコミュニティ構築スキルと、SKILL.mdファイルまたはTypeScriptを使用してカスタムスキルを作成する機能により、OpenClawアシスタントを事実上あらゆるタスクに特化したツールに変えることができます。このガイドでは、既存スキルのインストールから、独自のスキルの構築と公開まで、すべてを網羅しています。
はじめに
OpenClawは、すぐに使える強力な機能を提供していますが、その真の可能性はスキルによって解き放たれます。特殊なコーディング支援、DevOpsの自動化、調査ツール、業界固有の機能が必要な場合でも、それに対応するスキルがある可能性が高く、もしなければ自分で構築することができます。
700を超えるコミュニティ構築スキルがClawHubから利用でき、カスタムスキルを作成する機能により、OpenClawは必要なAIアシスタントになります。
この包括的なガイドでは、以下をカバーします。
- ClawHubからスキルを見つけてインストールする方法
- スキルを管理・整理する方法
- ゼロからカスタムスキルを構築する方法
- コミュニティ向けにスキルを公開する方法
- セキュリティのベストプラクティス
OpenClawスキルを理解する
スキルとは?
スキルは、OpenClawに特定の機能を追加するモジュラー拡張機能です。AIアシスタントに新しい能力を与えるプラグインと考えてください。特定の種類のメールを送信したり、特定のAPIと対話したりするなど、多岐にわたります。
スキルの種類
1. 自然言語スキル (SKILL.md)
最もシンプルな形式で、YAMLフロントマターを持つMarkdownで記述されます。これらは、特定の条件が満たされたときにOpenClawが実行する操作手順を定義します。
2. TypeScriptスキル
APIにアクセスし、複雑なロジックを実行し、外部サービスと深く統合できる、TypeScriptで構築されたフル機能のスキルです。
3. CLIベースのスキル
コマンドラインツールをラップするスキルで、OpenClawがシステムで利用可能なあらゆるツールを使用できるようにします。
スキルの仕組み
スキルは必要に応じて動的にロードされるため(ジャストインタイムロード)、メモリ使用量を管理しやすくなります。ユーザーのリクエストがスキルのトリガーに一致すると、OpenClawはスキルで定義されたアクションを実行します。
スキルカテゴリ
ClawHubには、以下の多数のカテゴリにわたるスキルがホストされています。
- コーディングエージェント&IDE(133以上のスキル)
- DevOps & クラウド(212以上のスキル)
- 検索&リサーチ(253以上のスキル)
- AI & LLM(287以上のスキル)
- 生産性(150以上のスキル)
- データ&アナリティクス(100以上のスキル)
- その他多数...

ClawHubからスキルをインストールする
スキルを探す
clawhub.aiでClawHubマーケットプレイスを閲覧するか、OpenClawから直接検索してください。
# Search for skills
openclaw skills search "github"
# List popular skills
openclaw skills popular
# Browse a category
openclaw skills browse devops
スキルをインストールする
目的のスキルを見つけたら、インストールは簡単です。
# Install a specific skill
openclaw skills install github-actions
# Install with a specific version
openclaw skills install github-actions@1.2.0
# Install from a specific publisher
openclaw skills install @username/skill-name
推奨スキルをすべてインストールする
# Install popular starter skills
openclaw skills install-recommended
インストールを確認する
# List all installed skills
openclaw skills list
# Check skill details
openclaw skills info github-actions
インストール済みのスキルを管理する
スキルを有効化・無効化する
# Disable a skill (keeps it installed but unused)
openclaw skills disable github-actions
# Enable a disabled skill
openclaw skills enable github-actions
スキルを更新する
# Update a specific skill
openclaw skills update github-actions
# Update all skills
openclaw skills update-all
スキルを削除する
# Uninstall a skill
openclaw skills uninstall github-actions
スキルの設定
多くのスキルはカスタム設定をサポートしています。
# Configure a skill
openclaw skills config github-actions --set token=your-github-token
または、スキルの設定ファイルを直接編集します。
# ~/.openclaw/skills/github-actions/config.yaml
token: your-github-token
default-branch: main
auto-merge: false
カスタムスキルを構築する
いつカスタムスキルを構築すべきか
以下が必要な場合にカスタムスキルを構築します。
- 既存のスキルではカバーされていない特定のAPI連携
- カスタム自動化ワークフロー
- 業界固有の機能
- 独自の社内ツール
スキルの構造
基本的なスキルは以下で構成されます。
my-custom-skill/
├── SKILL.md # スキル定義(自然言語スキル用)
├── config.yaml # 設定スキーマ
└── icon.svg # スキルアイコン(任意)
TypeScriptスキルの場合:
my-typescript-skill/
├── src/
│ └── index.ts # メインスキルコード
├── package.json
├── tsconfig.json
├── config.schema.json
└── skill.yaml # スキルマニフェスト
SKILL.mdスキルを作成する
基本的なSKILL.mdの構造
最小限のSKILL.mdファイルは次のとおりです。
---
name: weather-alert
description: お住まいの地域の気象警報を取得
triggers:
- "weather"
- "weather alert"
- "forecast"
requires:
- location
actions:
- name: get_weather
api: https://api.weather.com/v3
params:
location: "{location}"
---
# 気象警報スキル
このスキルは、お住まいの地域の気象警報と予報を提供します。
## 設定
スキルの設定でお住まいの地域を設定してください。
- city: 市区町村名
- units: metric または imperial
完全な例:メール要約スキル
---
name: daily-email-summary
description: 重要なメールの毎日の要約を受け取る
triggers:
- "email summary"
- "daily emails"
- "summarize my emails"
requires:
- email_access
- api_key
actions:
- name: fetch_emails
method: gmail.users.messages.list
params:
q: "is:unread"
maxResults: 10
- name: summarize
model: gpt-4
prompt: "これらのメールを箇条書きで要約する"
---
# 毎日のメール要約スキル
自動化された毎日の要約で、受信トレイを常に把握しましょう。
## 機能
- Gmailから未読メールを取得する
- AIを使用して要点を要約する
- 好みのチャネルに要約を送信する
## セットアップ
1. OpenClawの設定でGmail APIアクセスを設定します
2. 希望の要約時間を設定します
3. 配信チャネル(Telegram、Discordなど)を選択します
## 使用例
あなたは:メールの要約を送って
OpenClaw:未読メール8件の要約です:
- Johnからの第3四半期計画に関する会議リクエスト
- Amazonからの注文確認
- TechCrunchからのニュースレター...
### 高度なトリガー
より高度なトリガーを使用します。
```markdown
---
name: smart-reminder
triggers:
# 正確なフレーズ
- "remind me to {action}"
# パターン
- "remind me in {duration}"
# 文脈に応じた
context:
- channel: work
patterns: ["meeting", "deadline", "project"]
---
# スマートリマインダースキル
インテリジェントな解析で、すべてのリマインダーリクエストを処理します。
TypeScriptスキルを構築する
より複雑な統合には、TypeScriptスキルが完全な制御を提供します。
開発環境をセットアップする
# Create a new skill project
openclaw skills create my-awesome-skill
# Navigate to the skill directory
cd my-awesome-skill
# Install dependencies
npm install
# Start development server
npm run dev
TypeScriptスキルの構造
// src/index.ts
import { Skill, SkillContext, SkillResult } from '@openclaw/skill-sdk';
export default class MyAwesomeSkill implements Skill {
name = 'my-awesome-skill';
description = '何か素晴らしいことをするスキル';
// スキルがロードされたときに呼び出される
async onLoad(context: SkillContext): Promise<void> {
console.log('スキルがロードされました!');
}
// スキルがトリガーに一致したときに呼び出される
async execute(context: SkillContext): Promise<SkillResult> {
const { userMessage, config } = context;
// ここにスキルのロジックを記述
const result = await this.doSomethingAwesome(userMessage.content);
return {
message: result,
actions: []
};
}
private async doSomethingAwesome(input: string): Promise<string> {
// スキルのロジックを実装
return `あなたに言われました: ${input}`;
}
}
スキルマニフェスト (skill.yaml)
name: my-awesome-skill
version: 1.0.0
description: 何か素晴らしいことをするスキル
author:
name: あなたの名前
email: you@example.com
triggers:
- pattern: "do something awesome"
type: exact
config:
apiKey:
type: string
required: true
description: サービスのAPIキー
permissions:
- network
- filesystem
runtime: nodejs18
設定スキーマ (config.schema.json)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"apiKey": {
"type": "string",
"description": "サービスのAPIキー"
},
"enabled": {
"type": "boolean",
"default": true
}
},
"required": ["apiKey"]
}
ビルドとテスト
# Build the skill
npm run build
# Run tests
npm test
# Package for distribution
npm run package
例:GitHub連携スキル
ここに、API統合を示すより完全な例を示します。
import { Skill, SkillContext, SkillResult } from '@openclaw/skill-sdk';
import axios from 'axios';
export default class GitHubSkill implements Skill {
name = 'github';
description = 'GitHubリポジトリと対話する';
async execute(context: SkillContext): Promise<SkillResult> {
const { userMessage, config } = context;
const message = userMessage.content.toLowerCase();
if (message.includes('list repos')) {
return this.listRepositories(config);
} else if (message.includes('create issue')) {
return this.createIssue(context);
}
return {
message: 'リポジトリのリスト表示、イシューの作成などをお手伝いできます。',
actions: []
};
}
private async listRepositories(config: any): Promise<SkillResult> {
const response = await axios.get('https://api.github.com/user/repos', {
headers: {
Authorization: `token ${config.githubToken}`
}
});
const repos = response.data.slice(0, 5).map((r: any) => r.name).join('\n');
return {
message: `あなたの最近のリポジトリ:\n${repos}`,
actions: []
};
}
private async createIssue(context: SkillContext): Promise<SkillResult> {
// ユーザーメッセージからイシューの詳細を抽出
return {
message: 'イシューを作成するには詳細情報が必要です。リポジトリ、タイトル、説明を指定してください。',
actions: [
{
type: 'request_input',
fields: ['repo', 'title', 'description']
}
]
};
}
}
ClawHubにスキルを公開する
スキルを公開する準備
- 徹底的にテストする:様々なシナリオでスキルが機能することを確認します。
- ドキュメントを追加する:例を含む明確なSKILL.md
- 適切なパーミッションを設定する:必要なアクセス権のみを要求します。
- アイコンを追加する:シンプルなSVGアイコンを作成します。
- バージョン管理:セマンティックバージョニング(1.0.0、1.1.0など)を使用します。
公開プロセス
# Login to ClawHub
openclaw skills login
# Check your skill is ready
openclaw skills validate
# Publish your skill
openclaw skills publish
公開要件
- 有効なスキルマニフェスト(skill.yaml)
- 必須:名前、バージョン、説明、著者
- 少なくとも1つのトリガーが定義されていること
- virusTotalスキャン(自動的に実行されます)
- 身元確認
バージョン管理
# Bump version
openclaw skills version patch # 1.0.0 -> 1.0.1
openclaw skills version minor # 1.0.0 -> 1.1.0
openclaw skills version major # 1.0.0 -> 2.0.0
# Publish new version
openclaw skills publish
セキュリティのベストプラクティス
サードパーティ製スキルをインストールする
重要なセキュリティに関する注意:2026年初頭のClawHavoc事件では、ClawHub上の悪意のあるスキルが明らかになりました。常に以下の予防策に従ってください。
- 公開元を確認する:信頼できる、検証済みの公開元からのスキルのみをインストールします。
- パーミッションを確認する:スキルが要求するパーミッションを確認します。
- コードを監査する:TypeScriptスキルの場合は、ソースコードを確認します。
- 分離して開始する:まず、別の環境でスキルをテストします。
# インストールする前にスキルのパーミッションを確認する
openclaw skills inspect github-actions
安全なスキルを構築する
独自のスキルを構築する際:
# 常に最小限の必須パーミッションを指定する
permissions:
- network # 必要な場合のみ
- filesystem # 必要な場合のみ
# シークレットをハードコードしない
# BAD:
const apiKey = "sk-1234567890";
# GOOD:
const apiKey = process.env.API_KEY;
推奨されるセキュリティ設定
# ~/.openclaw/security.yaml
skill_security:
require_virustotal: true
require_verified_publisher: false # 本番環境ではtrueに設定
audit_permissions: true
sandbox_mode: true
高度なスキル開発
スキルの依存関係
スキルは他のスキルに依存することができます。
# skill.yaml
dependencies:
- name: github
version: ">=1.0.0"
- name: slack
version: ">=2.0.0"
イベント駆動型スキル
OpenClawイベントに反応します。
export default class EventSkill implements Skill {
async onMessage(context: SkillContext): Promise<SkillResult> {
// すべてのメッセージで呼び出される
}
async onTimer(context: SkillContext): Promise<SkillResult> {
// スケジュールに基づいて呼び出される
}
async onStartup(context: SkillContext): Promise<void> {
// OpenClawが起動したときに呼び出される
}
async onShutdown(context: SkillContext): Promise<void> {
// OpenClawが停止したときに呼び出される
}
}
スキルでMCPを使用する
スキルをMCPサーバーと組み合わせます。
# skill.yaml
mcpServers:
- name: filesystem
command: npx @modelcontextprotocol/server-filesystem ./data
- name: github
command: npx @modelcontextprotocol/server-github
トラブルシューティング
スキルがロードされない
# Check skill status
openclaw skills status my-skill
# View skill logs
openclaw logs --skill my-skill
一般的な原因:
- 依存関係の不足
- 無効な設定
- パーミッションの問題
トリガーが一致しない
# Test trigger matching
openclaw skills test-trigger "your trigger phrase"
パフォーマンスの問題
# Check skill resource usage
openclaw skills monitor
# Disable resource-heavy skills temporarily
openclaw skills disable heavy-skill
結論
OpenClawのスキルシステムは、シンプルなAIアシスタントを強力で拡張性の高いプラットフォームに変えます。ClawHubからコミュニティ構築スキルをインストールする場合でも、独自のカスタムソリューションを構築する場合でも、その可能性は事実上無限です。
OpenClawエコシステムは、新しいスキルが追加されるたびに強化されていきます。今日から構築を始めましょう!

