Skip to content

Latest commit

 

History

History
331 lines (242 loc) · 16.8 KB

File metadata and controls

331 lines (242 loc) · 16.8 KB

IronClaw

IronClaw

あなたの味方になる、安全なパーソナルAIアシスタント

License: MIT OR Apache-2.0 Telegram: @ironclawAI Reddit: r/ironclawAI

English | 简体中文 | Русский | 日本語 | 한국어

フィロソフィー機能インストール設定セキュリティアーキテクチャ


フィロソフィー

IronClawはシンプルな原則に基づいて構築されています:あなたのAIアシスタントは、あなたのために働くべきであり、あなたに不利益をもたらすべきではありません。

AIシステムがデータの取り扱いについて不透明になり、企業の利益に沿って調整されることが増えている世界で、IronClawは異なるアプローチを取ります:

  • あなたのデータはあなたのもの - すべての情報はローカルに保存・暗号化され、あなたの管理下から離れることはありません
  • 設計段階からの透明性 - オープンソース、監査可能、隠れたテレメトリやデータ収集なし
  • 自己拡張する能力 - ベンダーのアップデートを待たずに、新しいツールをその場で構築
  • 多層防御 - 複数のセキュリティレイヤーがプロンプトインジェクションやデータ流出から保護

IronClawは、個人生活にも仕事にも本当に信頼できるAIアシスタントです。

機能

セキュリティファースト

  • WASMサンドボックス - 信頼されていないツールは、機能ベースの権限を持つ隔離されたWebAssemblyコンテナで実行
  • 認証情報の保護 - シークレットはツールに公開されず、リーク検出付きでホスト境界で注入
  • プロンプトインジェクション防御 - パターン検出、コンテンツサニタイズ、ポリシー適用
  • エンドポイントの許可リスト - HTTPリクエストは明示的に許可されたホストとパスのみに制限

常時利用可能

  • マルチチャネル - REPL、HTTPウェブフック、WASMチャネル(Telegram、Slack)、Webゲートウェイ
  • Dockerサンドボックス - ジョブごとのトークンとオーケストレーター/ワーカーパターンによる隔離されたコンテナ実行
  • Webゲートウェイ - リアルタイムSSE/WebSocketストリーミング対応のブラウザUI
  • ルーティン - cronスケジュール、イベントトリガー、ウェブフックハンドラーによるバックグラウンド自動化
  • ハートビートシステム - 監視・保守タスクのためのプロアクティブなバックグラウンド実行
  • 並列ジョブ - 隔離されたコンテキストで複数のリクエストを同時に処理
  • 自己修復 - スタックした操作の自動検出と復旧

自己拡張

  • 動的ツール構築 - 必要なものを説明すると、IronClawがWASMツールとして構築
  • MCPプロトコル - Model Context Protocolサーバーに接続して追加機能を利用
  • プラグインアーキテクチャ - 再起動なしで新しいWASMツールやチャネルを追加

永続メモリ

  • ハイブリッド検索 - Reciprocal Rank Fusionを使用した全文検索+ベクトル検索
  • ワークスペースファイルシステム - メモ、ログ、コンテキストのための柔軟なパスベースストレージ
  • アイデンティティファイル - セッション間で一貫した人格と設定を維持

インストール

前提条件

  • Rust 1.85+
  • PostgreSQL 15+ (pgvector拡張機能を含む)
  • NEAR AIアカウント(セットアップウィザードで認証を処理)

ダウンロードまたはビルド

最新のアップデートはリリースページをご覧ください。

Windowsインストーラーでインストール(Windows)

Windowsインストーラーをダウンロードして実行してください。

PowerShellスクリプトでインストール(Windows)
irm https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.ps1 | iex
シェルスクリプトでインストール(macOS、Linux、Windows/WSL)
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.sh | sh
Homebrewでインストール(macOS/Linux)
brew install ironclaw
ソースコードからコンパイル(Windows、Linux、macOSでCargo)

cargoでインストールします。コンピューターにRustがインストールされていることを確認してください。

# リポジトリをクローン
git clone https://github.com/nearai/ironclaw.git
cd ironclaw

# ビルド
cargo build --release

# テストを実行
cargo test

フルリリース(チャネルソースを変更した後)の場合、まず./scripts/build-all.shを実行してチャネルを再ビルドしてください。

データベースのセットアップ

# データベースを作成
createdb ironclaw

# pgvectorを有効化
psql ironclaw -c "CREATE EXTENSION IF NOT EXISTS vector;"

設定

セットアップウィザードを実行してIronClawを設定します:

ironclaw onboard

ウィザードは、データベース接続、NEAR AI認証(ブラウザOAuth経由)、シークレットの暗号化(システムキーチェーンを使用)を処理します。設定は接続されたデータベースに永続化されます。ブートストラップ変数(例:DATABASE_URLLLM_BACKEND)は、データベース接続前に利用できるよう~/.ironclaw/.envに書き込まれます。

代替LLMプロバイダー

IronClawはデフォルトでNEAR AIを使用しますが、多くのLLMプロバイダーをすぐに利用できます。組み込みプロバイダーにはAnthropicOpenAIGoogle GeminiMiniMaxMistralOllama(ローカル)が含まれます。OpenRouter(300以上のモデル)、Together AIFireworks AI、セルフホストサーバー(vLLMLiteLLM)などのOpenAI互換サービスもサポートされています。

ウィザードでプロバイダーを選択するか、環境変数を直接設定してください:

# 例:MiniMax(組み込み、204Kコンテキスト)
LLM_BACKEND=minimax
MINIMAX_API_KEY=...

# 例:OpenAI互換エンドポイント
LLM_BACKEND=openai_compatible
LLM_BASE_URL=https://openrouter.ai/api/v1
LLM_API_KEY=sk-or-...
LLM_MODEL=anthropic/claude-sonnet-4

完全なプロバイダーガイドはdocs/capabilities/llm-providers.mdをご覧ください。

セキュリティ

IronClawは、データを保護し悪用を防ぐために多層防御を実装しています。

WASMサンドボックス

すべての信頼されていないツールは、隔離されたWebAssemblyコンテナで実行されます:

  • 機能ベースの権限 - HTTP、シークレット、ツール呼び出しの明示的なオプトイン
  • エンドポイントの許可リスト - 許可されたホスト/パスへのHTTPリクエストのみ
  • 認証情報の注入 - シークレットはホスト境界で注入され、WASMコードに公開されない
  • リーク検出 - リクエストとレスポンスのシークレット流出試行をスキャン
  • レート制限 - 悪用防止のためのツールごとのリクエスト制限
  • リソース制限 - メモリ、CPU、実行時間の制約
WASM ──► 許可リスト ──► リーク    ──► 認証情報 ──► リクエスト ──► リーク    ──► WASM
         バリデーター    スキャン       注入        実行          スキャン
                       (リクエスト)                             (レスポンス)

プロンプトインジェクション防御

外部コンテンツは複数のセキュリティレイヤーを通過します:

  • パターンベースのインジェクション試行検出
  • コンテンツのサニタイズとエスケープ
  • 重要度レベル付きポリシールール(ブロック/警告/レビュー/サニタイズ)
  • 安全なLLMコンテキスト注入のためのツール出力ラッピング

データ保護

  • すべてのデータはローカルのPostgreSQLデータベースに保存
  • AES-256-GCMでシークレットを暗号化
  • テレメトリ、分析、データ共有なし
  • すべてのツール実行の完全な監査ログ

アーキテクチャ

┌────────────────────────────────────────────────────────────────┐
│                          チャネル                               │
│  ┌──────┐  ┌──────┐   ┌─────────────┐  ┌─────────────┐         │
│  │ REPL │  │ HTTP │   │WASMチャネル │  │ Web         │         │
│  └──┬───┘  └──┬───┘   └──────┬──────┘  │ ゲートウェイ│         │
│     │         │              │         │(SSE + WS)   │         │
│     │         │              │         └──────┬──────┘         │
│     └─────────┴──────────────┴────────────────┘                │
│                              │                                 │
│                    ┌─────────▼─────────┐                       │
│                    │  エージェントループ │  インテントルーティング│
│                    └────┬──────────┬───┘                       │
│                         │          │                           │
│              ┌──────────▼────┐  ┌──▼───────────────┐           │
│              │ スケジューラー │  │ ルーティン       │           │
│              │ (並列ジョブ)  │  │ エンジン         │           │
│              └──────┬────────┘  │(cron,event,wh)   │           │
│                     │           └────────┬─────────┘           │
│       ┌─────────────┼────────────────────┘                     │
│       │             │                                          │
│   ┌───▼─────┐  ┌────▼────────────────┐                         │
│   │ ローカル │  │  オーケストレーター  │                         │
│   │ ワーカー │  │  ┌───────────────┐  │                         │
│   │(プロセス │  │  │ Docker        │  │                         │
│   │ 内)     │  │  │ サンドボックス│  │                         │
│   └───┬─────┘  │  │ コンテナ      │  │                         │
│       │        │  │ ┌───────────┐ │  │                         │
│       │        │  │ │Worker / CC│ │  │                         │
│       │        │  │ └───────────┘ │  │                         │
│       │        │  └───────────────┘  │                         │
│       │        └─────────┬───────────┘                         │
│       └──────────────────┤                                     │
│                          │                                     │
│              ┌───────────▼──────────┐                          │
│              │   ツールレジストリ    │                          │
│              │ 組み込み, MCP, WASM  │                          │
│              └──────────────────────┘                          │
└────────────────────────────────────────────────────────────────┘

コアコンポーネント

コンポーネント 目的
エージェントループ メインのメッセージ処理とジョブの調整
ルーター ユーザーの意図を分類(コマンド、クエリ、タスク)
スケジューラー 優先度付きの並列ジョブ実行を管理
ワーカー LLM推論とツール呼び出しでジョブを実行
オーケストレーター コンテナのライフサイクル、LLMプロキシ、ジョブごとの認証
Webゲートウェイ チャット、メモリ、ジョブ、ログ、拡張機能、ルーティンのブラウザUI
ルーティンエンジン スケジュール(cron)とリアクティブ(イベント、ウェブフック)のバックグラウンドタスク
ワークスペース ハイブリッド検索付き永続メモリ
セーフティレイヤー プロンプトインジェクション防御とコンテンツサニタイズ

使い方

# 初回セットアップ(データベース、認証などを設定)
ironclaw onboard

# インタラクティブREPLを起動
cargo run

# デバッグログ付き
RUST_LOG=ironclaw=debug cargo run

開発

# コードフォーマット
cargo fmt

# リント
cargo clippy --all --benches --tests --examples --all-features

# テスト実行
createdb ironclaw_test
cargo test

# 特定のテストを実行
cargo test test_name
  • チャネル: Telegram、Discord、その他のチャネルの設定はdocs/channels/overview.mdxを参照してください。
  • チャネルソースの変更: cargo buildの前に./channels-src/telegram/build.shを実行して、更新されたWASMをバンドルしてください。

OpenClawの系譜

IronClawはOpenClawにインスパイアされたRust再実装です。完全な対応表はFEATURE_PARITY.mdをご覧ください。

主な違い:

  • Rust vs TypeScript - ネイティブパフォーマンス、メモリ安全性、シングルバイナリ
  • WASMサンドボックス vs Docker - 軽量、機能ベースのセキュリティ
  • PostgreSQL vs SQLite - 本番環境対応の永続化
  • セキュリティファースト設計 - 複数の防御レイヤー、認証情報の保護

ライセンス

以下のいずれかのライセンスの下で提供されています:

お好みに応じて選択してください。