組織でAIエージェントを運用していると、スキルの数が10個、50個と増えるたびに「どこにあるスキルを誰が管理しているのか」が分からなくなる。チームAが作ったメール送信スキルとチームBが独自に作った同等のスキルが共存し、バージョン管理もなく、誰かのローカル環境にしか存在しない——この混乱は多くの組織で起きている。

SkillHubはこの問題を「npmレジストリのアプローチ」で解決するオープンソースプラットフォームだ。iFlytek(科大訊飛)が公開したApache License 2.0のOSSで、自社ファイアウォール内にDocker一発でデプロイできる。本記事では、SkillHubのアーキテクチャ、CLI操作、Kubernetes本番運用、他のエージェントプラットフォームとの連携までを公式ドキュメントベースで体系的に解説する。

この記事ではAIエージェントに特化して解説します。AIエージェント全般は AIエージェントフレームワーク比較2026年版 をご覧ください。

SkillHubとは:エージェントスキル専用のOSSレジストリ

SkillHubはエンタープライズ向けに設計された、AIエージェントスキル専用のレジストリだ。npmがJavaScriptパッケージを管理するように、AIエージェントが使う「スキル」をパッケージとして公開・検索・インストールできる仕組みを提供する。

SkillHub Demo

ここでいう「スキル」とは、AIエージェントが実行する機能をパッケージ化したものだ。メール送信、データ変換、外部API呼び出し、ファイル操作、社内システムとの連携など、エージェントが行う個々の処理をモジュールとして登録する。各スキルにはセマンティックバージョニングが付与され、betastable のタグで成熟度を管理できる。

最大の特徴はセルフホスト前提の設計にある。自社ファイアウォール内にデプロイでき、プロプライエタリなスキルを外部に漏らさずチーム間で共有できる。クラウド型レジストリではアップロードできない機密性の高いビジネスロジックも、SkillHub内で安全に流通させられる。OpenHandsのようなAIコーディングエージェントが企業内で増える中、スキルの一元管理基盤の重要性は急速に高まっている。

主な機能をnpmとの対比で整理すると以下の通りだ。

機能 SkillHubの提供内容 類似サービス
Publish & Version セマンティックバージョニング + beta/stableタグ npm publish
Discover フルテキスト検索 + 名前空間・ダウンロード数フィルタ npm search
Team Namespaces チーム単位でスキルをスコープ管理 npm org
Review & Governance 管理者レビュー + 監査ログ npm audit
CLI-First REST API + ClawHub互換レイヤー npm CLI
Pluggable Storage ローカル / S3 / MinIO切り替え

「スキルが10個までならGit + READMEで管理できる。50個を超えると検索とガバナンスが必須になる」——エンタープライズAI運用の現場でよく聞かれる声だ。SkillHubはまさにその「破綻ポイント」の前後を支える基盤として設計されている。

この章のポイント
SkillHubはエージェントスキル専用のOSSレジストリ(Apache 2.0、商用利用OK)
セルフホストでファイアウォール内にデプロイ可能、機密スキルも安全に共有
npmの体験をAIエージェントの世界に持ち込んだ「スキル管理基盤」

Docker一発で起動するクイックスタート

SkillHubの導入は驚くほど簡単だ。Docker環境さえあれば、curlスクリプト一発で全スタックが立ち上がる。検証用途であれば数分で手元にレジストリを構築できる。

# ランタイムをクリーンアップして起動
rm -rf /tmp/skillhub-runtime
curl -fsSL https://imageless.oss-cn-beijing.aliyuncs.com/runtime.sh | sh -s -- up

本番環境では --public-url を指定することで、CLIのインストールコマンドやOAuthコールバックが正しいURLで動作する。社内DNSで割り当てたドメインを渡すのが推奨だ。

# 本番向け:パブリックURLを指定して起動
curl -fsSL https://imageless.oss-cn-beijing.aliyuncs.com/runtime.sh | sh -s -- up \
  --public-url https://skillhub.your-company.com

起動後のデフォルトアカウントは admin / ChangeMe!2026 だ。本番では必ずパスワードを変更し、初期セットアップ後にブートストラップ管理者を無効化すること。validate-release-config.sh がデフォルトパスワードを拒否する仕組みになっており、変更しないと起動エラーになる。

ローカル開発の場合は make コマンドでさらに簡潔に操作できる。コアコントリビュータ向けの開発フローも整っている。

# ローカル開発環境の起動
make dev-all

# Web UI: http://localhost:3000
# Backend API: http://localhost:8080

# 停止
make dev-all-down

# リセット(依存関係含む完全クリーン)
make dev-all-reset

ローカル開発モードでは local-user(一般ユーザー)と local-admin(SUPER_ADMIN)の2つのモックユーザーが自動作成される。X-Mock-User-Id ヘッダーで切り替えて開発できるため、権限境界の動作確認も簡単だ。

クイックスタートの落とし穴
curlスクリプト方式は内部で複数のDockerコンテナ(PostgreSQL/Redis/Nginx/バックエンド/フロントエンド)を立ち上げる。8080・3000・5432などのポートが空いていることを事前に確認しよう。既存のローカルPostgreSQLとぶつかると起動失敗する。
この章のポイント
curlスクリプト1本で全スタックが起動、検証なら数分で完了
本番は --public-url でドメイン指定、デフォルト管理者は必ず変更
ローカル開発は make dev-all + モックユーザーで権限テストも可能

アーキテクチャ:Spring Boot + React + PostgreSQLの構成

SkillHubの全体像を把握するために、アーキテクチャを図で確認しよう。MCPサーバーの構築と同様に、フロントエンドとバックエンドが明確に分離されたモダンな三層構成になっている。

graph TB subgraph Client["クライアント層"] WebUI["Web UI
React 19 + TypeScript"] CLI["CLI Tools
OpenClaw / clawhub"] API["REST API
外部クライアント"] end subgraph Gateway["ゲートウェイ"] Nginx["Nginx
リバースプロキシ"] end subgraph Backend["バックエンド"] Spring["Spring Boot 3.2.3
Java 21"] Auth["Auth モジュール
OAuth2 + API Token"] Domain["Domain モジュール
スキル管理 + RBAC"] Search["Search モジュール
フルテキスト検索"] Storage["Storage モジュール
S3 / MinIO"] end subgraph Data["データ層"] PG["PostgreSQL 16
Flyway マイグレーション"] Redis["Redis 7
セッション管理"] S3["S3 / MinIO
パッケージ保存"] end WebUI --> Nginx CLI --> Nginx API --> Nginx Nginx --> Spring Spring --> Auth Spring --> Domain Spring --> Search Spring --> Storage Auth --> Redis Domain --> PG Search --> PG Storage --> S3

バックエンドはクリーンアーキテクチャに基づくマルチモジュールMavenプロジェクトだ。app(エントリーポイント)、domain(ビジネスロジック)、auth(認証認可)、search(検索)、storage(ストレージ抽象化)、infra(インフラ実装)の6モジュールに分離されており、依存方向が一方向に揃っている。テスタビリティを意識した設計で、ストレージバックエンドの差し替え(ローカル/S3/MinIO)も容易だ。

フロントエンドはTanStack Router + TanStack QueryによるモダンなReact構成で、OpenAPI TypeScriptで型安全なAPIクライアントを自動生成している。Vite + React 19の組み合わせで開発体験も良好だ。

モジュール構成と責務

モジュール 役割 主要技術
app Spring Bootエントリーポイント、設定統合 Spring Boot 3.2.3
domain スキルのライフサイクル、RBAC、レビュー Hexagonal Architecture
auth OAuth2、APIトークン、セッション Spring Security + Redis
search フルテキスト検索、フィルタリング PostgreSQL tsvector
storage パッケージのアップロード/ダウンロード S3 SDK / MinIO Client
infra DBマイグレーション、インフラ抽象 Flyway, Testcontainers

データ永続化はPostgreSQL 16でFlywayがスキーママイグレーションを管理する。セッションとレートリミットはRedis 7、スキルパッケージ本体はS3互換ストレージ(AWS S3またはMinIO)に保存される。

この章のポイント
クライアント層→Nginx→Spring Boot→PostgreSQL/Redis/S3の三層構成
バックエンドは6モジュールのクリーンアーキテクチャ、ストレージ差し替え可能
フロントエンドはReact 19 + TanStack + 型安全なOpenAPIクライアント

CLIとエージェント連携:スキルの公開・検索・インストール

SkillHubの操作はCLI中心で設計されている。OpenClawクライアントを使えば、npmライクなコマンドでスキルの公開からインストールまで完結する。LangChainなどのフレームワークと組み合わせるスキルも、このレジストリで一元管理できる。

# レジストリURLを設定
export CLAWHUB_REGISTRY=https://skillhub.your-company.com

# 認証(APIトークンを使用)
clawhub login --token YOUR_API_TOKEN

# スキルの検索
npx clawhub search email

# スキルのインストール
npx clawhub install my-skill

# チーム名前空間のスキルをインストール
npx clawhub install my-namespace--my-skill

# グローバル名前空間にスキルを公開
npx clawhub publish ./my-skill --slug my-skill --version 1.0.0

# チーム名前空間に公開
npx clawhub publish ./my-skill --slug my-space--my-skill --version 1.0.0

名前空間のスラッグは チーム名--スキル名 のフォーマットで、SkillHubが自動的に名前空間とスキルスラッグを分離して解釈する。これにより、同じスキル名をチームごとに持てる(例: marketing--email-sendersupport--email-sender は別物として共存できる)。

また、ForgeCodeのようなAIコーディングツールのスキルディレクトリに直接インストールすることも可能だ。--dir オプションでインストール先を任意に指定できる。

# Claude Codeのスキルディレクトリに直接インストール
npx clawhub --dir ~/.claude/skills install my-skill

# プロジェクトローカルのスキルディレクトリにインストール
npx clawhub --dir ./.claude/skills install my-skill --version 1.2.0

# 特定バージョンのスキルを取得(CI/CDで再現性確保)
npx clawhub install [email protected]

スキルの公開フロー

スキルを公開する典型的なフローは以下の通りだ。

# 1. スキルディレクトリを準備
mkdir my-skill && cd my-skill
# SKILL.md, manifest.json, scripts/ などを配置

# 2. ローカルでパッケージを検証
npx clawhub validate ./

# 3. betaタグで公開(一部ユーザーのみ閲覧)
npx clawhub publish ./ --slug team--my-skill --version 0.1.0 --tag beta

# 4. 動作確認後、stableに昇格
npx clawhub tag [email protected] stable

# 5. 廃止する場合
npx clawhub deprecate [email protected] --message "use 0.2.0 instead"

他のエージェントプラットフォームとの連携

SkillHubはスキルレジストリのバックエンドとして、複数のエージェントプラットフォームと連携できる。

プラットフォーム 種別 連携方法 特徴
OpenClaw CLI CLAWHUB_REGISTRY 環境変数 npmライクなスキル管理
AstronClaw クラウドアシスタント ビルトイン接続 WeChat Work/DingTalk/Feishu対応、130+公式スキル
Loomy デスクトップAI レジストリ接続 ローカルファイル統合、デスクトップ自動化
astron-agent フレームワーク スキル参照・ロード バージョン管理されたスキルライフサイクル

OpenClawが最も一般的な連携パスで、CLI経由でスキルの検索・インストール・公開がすべて完結する。AstronClawはエンタープライズ向けに130以上の公式スキルを内蔵しており、自社SkillHubレジストリに接続することで組織固有のスキルをワンクリックでインストールできる。

この章のポイント
CLIはnpm互換の体験:search/install/publish/tag/deprecate を網羅
名前空間スラッグ team--skill でチームごとに同名スキルが共存可能
OpenClaw/AstronClaw/Loomy/astron-agentと連携、Claude Codeにも直接インストール可

バージョニングとレビュー:エンタープライズ運用の核心

SkillHubが汎用パッケージレジストリと一線を画すのが、エンタープライズ運用に必要なガバナンス機能だ。バージョニング、レビュー、監査ログがビルトインで提供される。

セマンティックバージョニング + タグ

スキルは MAJOR.MINOR.PATCH 形式のセマンティックバージョニングに加えて、beta / stable / deprecated のタグを付与できる。これによりカナリアリリースや段階的ロールアウトが容易になる。

# 0.x系列をbetaとして配布
clawhub publish ./ --version 0.5.0 --tag beta

# 1.0.0をstableとしてリリース
clawhub publish ./ --version 1.0.0 --tag stable

# インストール時のタグ指定
clawhub install my-skill@beta     # 最新のbeta
clawhub install my-skill@stable   # 最新のstable
clawhub install [email protected]    # 特定バージョン

stableタグは「本番投入可能」のシグナルとして機能する。betaで一定期間運用してから昇格する運用ルールを組織で定めておくと、品質担保とリリース速度の両立が可能だ。

管理者レビューと監査ログ

公開前に管理者レビューを必須化する設定も可能だ。レビュー対象には以下の項目が含まれる。

  • スキルパッケージの中身(コード/設定/スクリプト)
  • manifest.json の権限要求
  • 依存ライブラリのセキュリティ脆弱性
  • ライセンス互換性

すべての公開・更新・削除操作は監査ログに記録される。SOC2やISO27001の要件を満たすトレーサビリティが標準で得られる。

ガバナンス機能 提供内容 設定箇所
公開前レビュー 管理者承認が必要 namespace settings
監査ログ 全操作のwho/when/what記録 audit_log テーブル
RBAC Owner/Admin/Member/Viewer チーム単位で設定
API Token スコープ付き発行・失効 ユーザー設定
レート制限 Redis経由で実装 application.yml

RBAC(ロールベースアクセス制御)

チーム単位で4種類のロールが用意されている。

  • Owner: チームの全権限、メンバー追加削除、削除可
  • Admin: スキル管理、レビュー、メンバー追加(削除不可)
  • Member: スキルの公開・更新が可能
  • Viewer: 閲覧・インストールのみ
運用Tips:betaタグの活用
新スキルは必ず beta で公開し、社内Slackで募集→2週間試用→問題なければ stable 昇格、というフローを組むと事故が激減する。clawhub install my-skill@beta で先行ユーザーだけが取得する仕組みを作れる。
この章のポイント
セマンティックバージョニング + beta/stable/deprecatedタグでカナリア運用が可能
管理者レビュー・監査ログ・RBACでSOC2/ISO27001水準のガバナンス
チーム単位のOwner/Admin/Member/Viewer権限で組織運用に対応

Kubernetes本番デプロイとモニタリング

本番運用では、deploy/k8s/ 配下のKubernetesマニフェストを使ってデプロイできる。サンプルマニフェストがリポジトリに同梱されているため、自社環境に合わせてカスタマイズすればすぐに本番化できる。

# Kubernetesマニフェストの適用
kubectl apply -f deploy/k8s/configmap.yaml
kubectl apply -f deploy/k8s/secret.yaml
kubectl apply -f deploy/k8s/backend-deployment.yaml
kubectl apply -f deploy/k8s/frontend-deployment.yaml
kubectl apply -f deploy/k8s/services.yaml
kubectl apply -f deploy/k8s/ingress.yaml

本番運用で推奨される設定は以下の通りだ。

  • SKILLHUB_PUBLIC_BASE_URL に最終的なHTTPSエンドポイントを設定
  • PostgreSQL / Redisは 127.0.0.1 にバインド、もしくはマネージドサービスを利用
  • ストレージは外部S3 / OSSを SKILLHUB_STORAGE_S3_* で設定
  • BOOTSTRAP_ADMIN_PASSWORD をデフォルトから変更(validate-release-config.sh がデフォルトパスワードを拒否)
  • 初期セットアップ後にブートストラップ管理者をローテーションまたは無効化
  • バックアップはPostgreSQLの定期スナップショット + S3バケットのバージョニング

validate-release-config.sh がデフォルトパスワードや弱い設定を起動時に検出してエラー終了する仕組みは、エンタープライズOSSの設計思想として注目に値する。「動くけど安全でない」状態を防ぐガードレールがビルトインだ。

モニタリングスタック

モニタリングにはPrometheus + Grafanaスタックが monitoring/ ディレクトリに用意されている。Spring Boot Actuatorのメトリクスを自動収集できる。

# モニタリングスタックの起動
cd monitoring
docker compose -f docker-compose.monitoring.yml up -d

# Prometheus: http://localhost:9090
# Grafana: http://localhost:3001 (admin / admin)

主要なダッシュボードでは以下のメトリクスを可視化できる。

  • HTTPリクエスト数・レイテンシ(P50/P95/P99)
  • スキル公開・ダウンロード数の推移
  • PostgreSQLコネクションプール使用率
  • Redisセッション数・ヒット率
  • S3ストレージ使用量

環境変数の設定例

# 本番用 .env の例
SKILLHUB_PUBLIC_BASE_URL=https://skillhub.your-company.com
SKILLHUB_DB_HOST=postgres-primary.internal
SKILLHUB_DB_PORT=5432
SKILLHUB_DB_NAME=skillhub_prod
SKILLHUB_REDIS_HOST=redis-master.internal
SKILLHUB_STORAGE_TYPE=s3
SKILLHUB_STORAGE_S3_BUCKET=skillhub-packages
SKILLHUB_STORAGE_S3_REGION=ap-northeast-1
SKILLHUB_STORAGE_S3_ENDPOINT=https://s3.ap-northeast-1.amazonaws.com
BOOTSTRAP_ADMIN_PASSWORD=$(openssl rand -base64 32)
この章のポイント
deploy/k8s/ にサンプルマニフェスト同梱、自社環境にコピーで本番化可能
validate-release-config.sh がデフォルト設定を拒否する安全装置
Prometheus + Grafanaダッシュボードがすぐに立ち上げられる

既存ツールとの比較:SkillHubを選ぶ理由

エージェントのスキル管理にはいくつかのアプローチがある。SkillHubの位置づけを整理する。

比較軸 SkillHub ファイルシステム直管理 汎用パッケージレジストリ(npm等)
スキル特化の検索・フィルタ フルテキスト + 名前空間 + 評価 なし パッケージ名のみ
チーム名前空間 Owner/Admin/Member権限 OS権限に依存 org scope
レビュー・ガバナンス 管理者レビュー + 監査ログ なし 限定的
セルフホスト ファイアウォール内デプロイ ローカルのみ 有償プラン
エージェント連携 OpenClaw/AstronClaw/Loomy 手動読み込み アダプタ必要
バージョン管理 セマンティック + タグ Git依存 セマンティック

ファイル直管理はスキルが少ないうちは手軽だが、10個を超えると検索・権限・バージョンの管理が破綻する。npmのような汎用レジストリはパッケージ管理は得意だが、エージェントスキル特有のレビューフローやチーム名前空間がない。SkillHubはこの中間を埋める専用ツールだ。

どの規模で導入すべきか

組織規模 スキル数 推奨アプローチ
個人・小規模 〜10 Gitリポジトリ + READMEで十分
チーム(10-50人) 10-50 SkillHub Docker版で軽量運用
中規模企業(50-500人) 50-200 SkillHub + Kubernetes + S3
大企業(500人〜) 200+ SkillHub HA構成 + 監査・SSO統合

「とりあえずGitで管理していたが、3チーム×10人になった瞬間に誰が何をどのバージョンで使っているのか分からなくなった」——SkillHub採用組織の典型的な導入動機だ。

スキルの内容そのものについて

SkillHubはあくまで「レジストリ」であり、スキルの中身(SKILL.md、manifest.json、スクリプト)は別途設計する必要がある。スキルそのものの書き方については、Claude Skillsの徹底解説も参照してほしい。レジストリ + スキル設計の両輪で、組織のAI活用基盤が完成する。

この章のポイント
ファイル直管理は10個、汎用レジストリは「スキル特化」が弱い
SkillHubはエージェントスキル専用のニッチを埋めるOSS
チーム10人/スキル10個を超えたら導入検討のタイミング

📌 まとめ

SkillHubが解決するのは「スキルが増えるほど管理が破綻する」という、エージェント運用の必然的な課題だ。npmが2010年代のJavaScriptエコシステムを爆発的に成長させたように、エージェントスキル専用のレジストリは2026年以降のAI活用基盤として重要性を増していくだろう。

ポイントを整理すると:

  1. アーキテクチャ: Spring Boot 3.2.3 + React 19 + PostgreSQL 16の三層構成
  2. 導入: Docker一発(curl ... | sh -s -- up)で数分で起動
  3. CLI: npm互換の search/install/publish/tag で直感的に操作
  4. ガバナンス: セマンティックバージョニング + beta/stable + 管理者レビュー + 監査ログ
  5. 連携: OpenClaw/AstronClaw/Loomy/astron-agent + Claude Codeへの直接インストール
  6. 本番運用: Kubernetes + Prometheus/Grafana + S3互換ストレージで企業利用に耐える

「とりあえずGitで管理」から「専用レジストリで一元管理」へのシフトは、組織のAIエージェント運用が本格化するタイミングで必ず訪れる。SkillHubはApache License 2.0でセルフホスト前提の設計のため、機密性の高いビジネスロジックを抱える企業でも安心して導入できる。

まずは検証環境で make dev-all を叩いてみるところから始めてほしい。Docker一発で立ち上がる手軽さと、エンタープライズ運用に耐える堅牢さの両立こそが、SkillHubが選ばれる理由だ。


参照ソース