ShibaClaw
セルフホスト型、セキュリティ最優先の AI エージェント(内蔵 Web UI 付き)
機能 ·
クイックスタート ·
セキュリティ ·
メモリ ·
プロバイダ ·
アーキテクチャ ·
チャンネル ·
トラブルシューティング
🌐 简体中文 ·
Español ·
Português (BR) ·
日本語 ·
Deutsch ·
Français
---
> [!NOTE]
> リリースノートは [CHANGELOG.md](./CHANGELOG.md) にあります。
📢 最新情報 — v0.9.12(クリックで展開)
**最新リリース(2026-07-22):**
- **ExecTool のコマンドインジェクション脆弱性の修正** — シェル実行における重大なコマンドインジェクション脆弱性(CWE-78)を、`shlex` による引数解析と直接プロセス実行(`create_subprocess_exec`)に置き換えて解決しました。
- **依存関係のセキュリティ脆弱性の修正** — `protobufjs`(v7.6.5)および `sharp`(v0.35.3)のオーバーライドを更新し、bridge npm 依存関係の脆弱性を解決しました。
- **エージェントループとステアリングの安定化** — `/update` コマンドのクラッシュを解消し、アクティブタスク中のメッセージステアリングにおけるセッションルーティングとイベント発行を修正しました。
- **WebUI トークン見積もり** — メッセージリスト渡す際の API エンドポイント `estimate_prompt_tokens` の引数型処理を修正しました。
- **Cloud RAG 依存関係** — Cloud RAG の依存範囲とデフォルト埋め込みモデル構成を修正しました。
完全なリリース履歴は [Changelog](./CHANGELOG.md) を参照してください。
---
ShibaClaw は、自分のマシンやサーバーで動かすセルフホスト型の AI エージェントです。Python エンジンに内蔵 Web UI を備え、28 のモデルプロバイダにネイティブ対応し、11 のチャットプラットフォーム(Discord、Telegram、Slack、WhatsApp、Matrix など)と統合します。シンプルさ・セキュリティ・プライバシーの 3 本柱を中心に構築されており、インストール時の CVE 監査、プロンプトインジェクションのラップ、SSRF 保護といった防御は、外部の糊付けコードではなくコアエンジンに組み込まれています。
> [!NOTE]
> リリースノートは [CHANGELOG.md](./CHANGELOG.md) にあります。
## 機能
- **セキュリティ最優先のコア** —— 暗号化された認証情報保管庫、インストール時 CVE 監査、プロンプトインジェクションのラップ、SSRF/DNS リバインディング保護
- **3 層メモリ** —— ワーキング・セマンティック(FAISS)・プロシージャル。プロアクティブ学習と自動圧縮付き
- **28 プロバイダ、ネイティブ SDK** —— OpenAI、Anthropic、Gemini、DeepSeek など。LiteLLM プロキシ層なし
- **Web とモバイル** —— WebUI を LAN に公開すれば、スマホから同じエージェントを利用可能
- **Windows デスクトップアプリ** —— システムトレイ統合付きのネイティブランチャー
- **MCP 対応** —— 任意の MCP サーバーに接続でき、ツールが自動登録される
## クイックスタート
**要件:** Docker、または pip 経路の場合は Python 3.12+。Windows 自動インストーラーはどちらも不要 —— あらかじめビルドされたデスクトップアプリを同梱しています。
### 自動インストーラー(推奨)
1 つのコマンドで最新リリースをダウンロードし、ショートカットを作成して UI を起動します。
> [!TIP]
> 持参モデル:ローカルエンドポイント(Ollama、LM Studio)に接続するか、OpenRouter の無料 API 枠を使ってゼロコストでチャットを始められます。
**🪟 Windows(PowerShell):**
```powershell
irm https://github.com/RikyZ90/ShibaClaw/releases/latest/download/install.ps1 | iex
```
**🐧 Linux / 🍎 macOS:**
```bash
curl -fsSL https://github.com/RikyZ90/ShibaClaw/releases/latest/download/install.sh | bash
```
> [!NOTE]
> Windows では、最新の GitHub Release からプリビルドのデスクトップアプリをダウンロードします —— Python 不要。デスクトップとスタートメニューにショートカットが作成され、「アプリと機能」からクリーンにアンインストールできます。Linux/macOS ではスクリプトが分離仮想環境へ pip でインストールします。
### Docker
```bash
curl -fsSL https://raw.githubusercontent.com/RikyZ90/ShibaClaw/main/docker-compose.yml -o docker-compose.yml
docker compose up -d # Docker Hub から取得
docker exec -it shibaclaw-gateway shibaclaw print-token
```
**http://localhost:3000** を開き、トークンを貼り付けてオンボードウィザードに従います。スマホから使うには `shibaclaw-web` を LAN に公開(リバースプロキシ等)し、同じ URL を開きます。
### pip
```bash
pip install shibaclaw
shibaclaw web --with-gateway # :3000 で WebUI + エージェントエンジンを起動
```
**http://localhost:3000** を開きウィザードに従います。
CLI が良ければ `shibaclaw onboard` で同じガイド付きセットアップを端末から実行できます。
---
## セキュリティ
セキュリティは通常アプリの糊付けコードや外部プロキシに散らばっていますが、ShibaClaw ではコアに組み込まれ、デフォルトで有効です。
| 層 | 内容 |
|---|---|
| インストール時監査 | 実行前に `pip` と `npm` を監査 —— 重大/高 CVE をブロック |
| プロンプトインジェクションのラップと事前スキャン | 各ツール結果をランダムな `` 境界で囲む。 jailbreak を正規表現で事前スキャン |
| シェルの堅牢化 | 20 以上の拒否パターン、エスケープ正規化、内部 URL 検出 |
| ローカル優先エンジン | ネイティブコマンドエミュレータ(`ls`、`cat`)がサブプロセスオーバーヘッドを回避。オフライン `tiktoken` フォールバック |
| ネットワークガード | SSRF フィルタリング、リダイレクト再検証、DNS リバインディング安全解決 |
| ワークスペースサンドボックス | ファイルツールとファイルブラウザを設定済みワークスペースにロック |
| アクセス制御 | Bearer トークン認証、一定時間比較、チャンネル許可リスト、任意のレート制限 |
| 分散エンジン | UI(約 128 MB)とエージェント脳(約 256 MB+)を分離 |
各ツール結果は、ランダムな nonce を持つ動的生成境界(例:``)で囲まれるため、攻撃者はタグを早閉じしたり、ツール出力を通じて偽のシステム指示を注入できません —— 境界はセッションごとに予測不可能です。
> [!TIP]
> このラップ機構は [Muzzle](https://github.com/RikyZ90/Muzzle) として単独でも利用できます。これはゼロ依存の Python ライブラリで、任意のエージェントフレームワーク(LangChain、LlamaIndex、CrewAI、AutoGen、独自ループ)に組み込めます。
## メモリシステム
ShibaClaw は 3 層のメモリアーキテクチャを採用しています:
1. **ワーキングメモリ**(セッション内) —— 自動要約とトークン認識型切り詰めを行うローリングコンテキスト
2. **セマンティックメモリ**(セッション間) —— FAISS + sentence-transformers ベクトルストア。自動事実抽出と意味検索
3. **プロシージャルメモリ**(スキルと自動化) —— 再利用可能なスキルとして保存された学習済みワークフローと cron 風スケジュール
プロアクティブ学習が有用な事実を自動抽出・保存し、自動圧縮がコンテキストの溢れを防ぎ、セッションはキャッシュに優しい高速ログのためのみ追加型 JSONL として保存されます。
## MCP と統合
ShibaClaw は Model Context Protocol に対応しているため、コアコードを変更せずに任意の MCP 準拠サーバー(Google Drive、Slack、GitHub、PostgreSQL など)に接続できます。サーバーは設定パネルから構成します。
人気の SaaS ツール(Gmail、Google Drive、Slack、GitHub、Outlook……)向けに、ShibaClaw は [Klavis](https://klavis.ai) と統合しています。1 つの API キーでワンクリック OAuth 接続が得られ、各プロバイダごとに OAuth アプリを手動登録する必要がありません。接続済みアプリはアクティブセッションで自動的に MCP サーバーとして登録されます。
## 対応プロバイダ
ShibaClaw はネイティブ SDK を使用します —— LiteLLM プロキシなし。選択したモデル、またはプロバイダ接頭辞付きモデル ID からプロバイダを解決します。設定済みのすべてのプロバイダカタログは WebUI で 1 つの検索可能なリストに統合されます。
**API キー**
| プロバイダ | 環境変数 |
|---|---|
| OpenAI | `OPENAI_API_KEY` |
| Anthropic | `ANTHROPIC_API_KEY` |
| DeepSeek | `DEEPSEEK_API_KEY` |
| Google Gemini | `GEMINI_API_KEY`¹ |
| Groq | `GROQ_API_KEY` |
| Moonshot | `MOONSHOT_API_KEY` |
| MiniMax | `MINIMAX_API_KEY` |
| Zhipu AI | `ZAI_API_KEY` |
| DashScope | `DASHSCOPE_API_KEY` |
¹ `GEMINI_API_KEY` を設定するだけで十分です —— OpenAI 互換エンドポイントは事前設定済みです。
**ゲートウェイ / プロキシ** —— OpenRouter、AiHubMix、SiliconFlow、VolcEngine、BytePlus。キー接頭辞または `api_base` で自動検出。
**ローカル** —— Ollama、LM Studio、llama.cpp、vLLM、または任意の OpenAI 互換エンドポイント。
> [!NOTE]
> Docker では `localhost` はコンテナ内を指します。ホスト上のローカルサーバー(LM Studio、Ollama)に到達するには、Windows/macOS では `http://host.docker.internal:PORT`、ネイティブ Linux では `http://172.17.0.1:PORT` を使用してください。
**OAuth**
| プロバイダ | フロー | 設定 |
|----------|------|-------|
| OpenRouter | PKCE ブラウザフロー。返された API キーをプロバイダ設定に保存 | WebUI 設定 |
| GitHub Copilot | デバイスフロー。トークン自動更新 | `shibaclaw provider login github-copilot` または WebUI 設定 |
| OpenAI Codex | PKCE ブラウザフロー | `shibaclaw provider login openai-codex` または WebUI 設定 |
| Google Gemini CLI | PKCE ブラウザフロー。`SHIBACLAW_GEMINI_OAUTH_CLIENT_ID` と `SHIBACLAW_GEMINI_OAUTH_CLIENT_SECRET` 環境変数が必要。`**注意:** 非公式のサードパーティ統合。Google がアカウント制限を適用する場合があります。懸念がある場合は別アカウントを使用してください。 | WebUI 設定 |
OpenRouter のコールバックはデフォルトで現在の WebUI の URL とポートを再利用するため、`http://localhost:3000` は専用の OAuth ポートではありません。WebUI をリバースプロキシ配下に公開する場合や、別の公開コールバック起点が必要な場合は、サーバー起動前に `SHIBACLAW_OPENROUTER_CALLBACK_BASE_URL=https://your-public-webui-host` を設定してください。
### 💡 プロ向けヒント:費用対効果とプレミアムモデル
ShibaClaw は高額な API を使わなくても非常に良く動作します:
- **無料/オープンモデル:** 強力な無料モデル(例:`nvidia/nemotron-3-super-120b-a12b:free` や `gemma-4-31b-it:free`)にアクセスするには **OpenRouter** の利用を強くお勧めします。
- **無制限プレミアム:** **GitHub Copilot** の OAuth 統合を使えば、`raptor`(`oswe-vscode-prime`)のようなプレミアムモデルに追加費用ゼロでアクセスでき、事実上無制限のリクエストが得られます。
***
## 📊 ShibaClaw の比較(セキュリティ最優先)
> [!NOTE]
> OpenRouter の OAuth コールバックは現在の WebUI の URL とポートを再利用します。リバースプロキシ配下では、サーバー起動前に `SHIBACLAW_OPENROUTER_CALLBACK_BASE_URL` を設定してください。
ゼロコスト利用には、OpenRouter の無料枠(例:`nvidia/nemotron-3-super-120b-a12b:free`)と GitHub Copilot OAuth 統合(`raptor` などのモデルへの無制限アクセス)のどちらも、有料 API キーなしで良好に動作します。
## アーキテクチャ
**Docker Compose**
| サービス | 役割 | デフォルトポート |
|---|---|---|
| `shibaclaw-gateway` | コアエージェントループ、メッセージバス、チャンネル統合 | 19999 (HTTP) · 19998 (WS) |
| `shibaclaw-web` | WebUI(Starlette + WebSocket)、自動化サービス | 3000 |
両者は `~/.shibaclaw/` ボリューム(設定、ワークスペース、メモリ、自動化ジョブ、メディアキャッシュ)を共有します。単独の `shibaclaw web` はエージェント + WebUI + 自動化を単一プロセスで実行し、ゲートウェイコンテナは不要です。
**スタック** —— Uvicorn/Starlette(ASGI)、ネイティブ WebSocket、バニラ JS + Marked.js + Highlight.js フロントエンド、JSONL のみ追加型セッション。
**リソース使用量** —— コンポーネント(ゲートウェイ、WebUI)ごとにアイドル時約 120 MB / ピーク時約 350 MB。Docker Compose は各コンテナを 512 MB / 予約 256 MB に制限。ツール出力は有界バッファでストリーミングされるため、長時間コマンドでもメモリが爆発しません。
## CLI リファレンス
```bash
shibaclaw web # WebUI 起動(プロセス内でエージェント + 自動化)
shibaclaw gateway # ゲートウェイのみ起動(Docker 分割用)
shibaclaw onboard # CLI ベースの初回セットアップウィザード
shibaclaw agent -m "Hello" # ターミナルからのワンショットメッセージ
shibaclaw agent # 履歴付き対話型 REPL
shibaclaw status # プロバイダ、ワークスペース、OAuth のヘルスチェック
shibaclaw print-token # WebUI 認証トークンを表示
shibaclaw channels status # 有効なチャンネルを一覧表示
shibaclaw provider login # OAuth ログイン(github-copilot、openai-codex)
shibaclaw desktop # Windows デスクトップアプリを起動
```
## チャンネル
| チャンネル | 種類 | 備考 |
|---|---|---|
| WebUI | 内蔵 | メインインターフェース、全機能アクセス |
| Discord | Bot | リッチ埋め込み、スラッシュコマンド、添付ファイル |
| Telegram | Bot | インラインキーボード、メディア、返信マークアップ |
| WhatsApp | プラグイン | WhatsApp Web 経由 |
| Slack | Bot | Block kit、スレッド、アプリメンション |
| DingTalk | Bot | 企業メッセージング |
| Feishu/Lark | Bot | リッチカード、インタラクティブ要素 |
| QQ | Bot | グループ・プライベートメッセージ |
| WeCom | Bot | 職場コミュニケーション |
| Matrix | Bot | 分散型、E2E 暗号化 |
| MoChat | Bot | WeChat エコシステム |
各チャンネルは WebUI 設定で個別に構成され、設定変更時のホットリロードに対応しています。
## プラグインシステム
ShibaClaw は Python のエントリーポイント経由でプラグインを発見します:
- **チャンネルプラグイン** —— `BaseChannel` を実装、`shibaclaw.integrations` から発見可能
- **TTS プラグイン** —— `BaseTTS` を実装、`shibaclaw.tts` から発見可能
内蔵:`shibaclaw-channel-whatsapp`(WhatsApp Web)と `shibaclaw-tts-supertonic`(無料・オフライン ONNX 音声合成、31 言語)。WebUI 設定 > プラグインからプラグインのインストール・削除ができ、ホットリロードとバージョン固定に対応。独自のプラグイン作成は [`docs/PLUGINS_DEVELOPMENT_GUIDE.md`](./docs/PLUGINS_DEVELOPMENT_GUIDE.md) を参照。
## テキスト読み上げ(TTS)
内蔵の Supertonic エンジンは ONNX 上でオフライン動作(PyTorch 非依存、CPU のみ)し、31 言語に対応。`F1`/`M1` 音声プロファイルと調整可能な速度を備え、ブラウザ内ウィジェットで再生します。WebUI 設定 > TTS で有効化してください。
## 自動化とスケジューリング
バックグラウンドタスクは cron 風のスケジュールまたはイベントトリガー(メッセージ、webhook、システムイベント)で実行され、チャット履歴を汚染しない分離セッションで動作します。自動化パネルから管理・監視・ログ閲覧ができ、ジョブは JSONL 保存により再起動後も保持されます。
## ナレッジベース(RAG)
ローカル・プライバシー最優先の検索拡張生成:ドキュメントを命名コレクション(PDF、CSV、HTML、TXT、Markdown)に整理し、ドラッグ&ドロップでアップロード、`all-MiniLM-L6-v2` 埋め込み上の FAISS インデックスで検索します。エージェントは会話中に `knowledge_search` を呼び出すか、`@kb:name` で特定のコレクションを指定できます。これはオプション依存で、`pip install shibaclaw[rag]` でインストールします。
## トラブルシューティング
| 問題 | 対処 |
|---|---|
| 一般的な状態確認 | `shibaclaw status` |
| コンテナログ | `docker logs shibaclaw-gateway` / `docker logs shibaclaw-web` |
| WebUI に接続できない | `shibaclaw print-token` でトークンを確認、ポートバインドを検証 |
| プロバイダエラー | `shibaclaw status` で API キーと OAuth 状態を表示 |
| v0.9.5 からアップグレード後のログイン失敗 | `shibaclaw reset-admin` を実行 |
| セキュリティポリシー | [`SECURITY.md`](./SECURITY.md) |
---
貢献は CONTRIBUTING.md を、リリース履歴は CHANGELOG.md を参照してください。