diff --git a/README.ja.md b/README.ja.md new file mode 100644 index 00000000..887cf67e --- /dev/null +++ b/README.ja.md @@ -0,0 +1,330 @@ +

+ 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](https://github.com/pgvector/pgvector)拡張機能を含む) +- NEAR AIアカウント(セットアップウィザードで認証を処理) + +## ダウンロードまたはビルド + +最新のアップデートは[リリースページ](https://github.com/nearai/ironclaw/releases/)をご覧ください。 + +
+ Windowsインストーラーでインストール(Windows) + +[Windowsインストーラー](https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-x86_64-pc-windows-msvc.msi)をダウンロードして実行してください。 + +
+ +
+ PowerShellスクリプトでインストール(Windows) + +```sh +irm https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.ps1 | iex +``` + +
+ +
+ シェルスクリプトでインストール(macOS、Linux、Windows/WSL) + +```sh +curl --proto '=https' --tlsv1.2 -LsSf https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.sh | sh +``` +
+ +
+ Homebrewでインストール(macOS/Linux) + +```sh +brew install ironclaw +``` + +
+ +
+ ソースコードからコンパイル(Windows、Linux、macOSでCargo) + +`cargo`でインストールします。コンピューターに[Rust](https://rustup.rs)がインストールされていることを確認してください。 + +```bash +# リポジトリをクローン +git clone https://github.com/nearai/ironclaw.git +cd ironclaw + +# ビルド +cargo build --release + +# テストを実行 +cargo test +``` + +**フルリリース**(チャネルソースを変更した後)の場合、まず`./scripts/build-all.sh`を実行してチャネルを再ビルドしてください。 + +
+ +### データベースのセットアップ + +```bash +# データベースを作成 +createdb ironclaw + +# pgvectorを有効化 +psql ironclaw -c "CREATE EXTENSION IF NOT EXISTS vector;" +``` + +## 設定 + +セットアップウィザードを実行してIronClawを設定します: + +```bash +ironclaw onboard +``` + +ウィザードは、データベース接続、NEAR AI認証(ブラウザOAuth経由)、シークレットの暗号化(システムキーチェーンを使用)を処理します。設定は接続されたデータベースに永続化されます。ブートストラップ変数(例:`DATABASE_URL`、`LLM_BACKEND`)は、データベース接続前に利用できるよう`~/.ironclaw/.env`に書き込まれます。 + +### 代替LLMプロバイダー + +IronClawはデフォルトでNEAR AIを使用しますが、多くのLLMプロバイダーをすぐに利用できます。組み込みプロバイダーには**Anthropic**、**OpenAI**、**Google Gemini**、**MiniMax**、**Mistral**、**Ollama**(ローカル)が含まれます。**OpenRouter**(300以上のモデル)、**Together AI**、**Fireworks AI**、セルフホストサーバー(**vLLM**、**LiteLLM**)などのOpenAI互換サービスもサポートされています。 + +ウィザードでプロバイダーを選択するか、環境変数を直接設定してください: + +```env +# 例: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/LLM_PROVIDERS.md](docs/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)とリアクティブ(イベント、ウェブフック)のバックグラウンドタスク | +| **ワークスペース** | ハイブリッド検索付き永続メモリ | +| **セーフティレイヤー** | プロンプトインジェクション防御とコンテンツサニタイズ | + +## 使い方 + +```bash +# 初回セットアップ(データベース、認証などを設定) +ironclaw onboard + +# インタラクティブREPLを起動 +cargo run + +# デバッグログ付き +RUST_LOG=ironclaw=debug cargo run +``` + +## 開発 + +```bash +# コードフォーマット +cargo fmt + +# リント +cargo clippy --all --benches --tests --examples --all-features + +# テスト実行 +createdb ironclaw_test +cargo test + +# 特定のテストを実行 +cargo test test_name +``` + +- **Telegramチャネル**: セットアップとDMペアリングについては[docs/TELEGRAM_SETUP.md](docs/TELEGRAM_SETUP.md)を参照してください。 +- **チャネルソースの変更**: `cargo build`の前に`./channels-src/telegram/build.sh`を実行して、更新されたWASMをバンドルしてください。 + +## OpenClawの系譜 + +IronClawは[OpenClaw](https://github.com/openclaw/openclaw)にインスパイアされたRust再実装です。完全な対応表は[FEATURE_PARITY.md](FEATURE_PARITY.md)をご覧ください。 + +主な違い: + +- **Rust vs TypeScript** - ネイティブパフォーマンス、メモリ安全性、シングルバイナリ +- **WASMサンドボックス vs Docker** - 軽量、機能ベースのセキュリティ +- **PostgreSQL vs SQLite** - 本番環境対応の永続化 +- **セキュリティファースト設計** - 複数の防御レイヤー、認証情報の保護 + +## ライセンス + +以下のいずれかのライセンスの下で提供されています: + +- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE)) +- MIT License ([LICENSE-MIT](LICENSE-MIT)) + +お好みに応じて選択してください。 diff --git a/README.md b/README.md index 9684ee4d..fa73dc45 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,8 @@

English | 简体中文 | - Русский + Русский | + 日本語

diff --git a/README.ru.md b/README.ru.md index c64770a9..0546e7f4 100644 --- a/README.ru.md +++ b/README.ru.md @@ -17,7 +17,8 @@

English | 简体中文 | - Русский + Русский | + 日本語

diff --git a/README.zh-CN.md b/README.zh-CN.md index 34023822..a337d713 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -17,7 +17,8 @@

English | 简体中文 | - Русский + Русский | + 日本語