nearai/ironclaw
GitHub: nearai/ironclaw
一个基于 Rust 的隐私优先型本地 AI 助手,通过 WASM 沙箱、凭证保护和多层安全设计,实现可信的自我扩展与任务自动化。
Stars: 11372 | Forks: 1304
IronClaw
您的安全私人 AI 助手,始终站在您这一边
English |
简体中文 |
Русский |
日本語
理念 •
功能 •
安装 •
配置 •
安全 •
架构
## 理念
IronClaw 建立在一个简单的原则之上:**您的 AI 助手应该为您工作,而不是与您作对**。
在一个 AI 系统在数据处理方面越来越不透明,且与企业利益保持一致的世界里,IronClaw 采取了不同的方法:
- **您的数据始终属于您** - 所有信息都存储在本地,经过加密,且从未脱离您的控制
- **设计上的透明度** - 开源、可审计,无隐藏的遥测或数据收集
- **自我扩展能力** - 即时构建新工具,无需等待供应商更新
- **深度防御** - 多层安全保护,防止 prompt 注入和数据泄露
IronClaw 是您可以真正信任的 AI 助手,可处理您的个人和职业生活。
## 功能
### 安全至上
- **WASM 沙箱** - 不受信任的工具在具有基于能力权限的隔离 WebAssembly 容器中运行
- **凭证保护** - 密钥永远不会暴露给工具;在主机边界注入,并带有泄露检测
- **Prompt 注入防御** - 模式检测、内容清理和策略执行
- **端点白名单** - HTTP 请求仅限于明确批准的主机和路径
### 始终可用
- **多通道** - REPL、HTTP webhooks、WASM 通道 (Telegram, Slack) 和 Web 网关
- **Docker 沙箱** - 隔离的容器执行,具有单作业令牌和编排器/工作器模式
- **Web 网关** - 浏览器 UI,支持实时 SSE/WebSocket 流
- **例行程序** - Cron 计划、事件触发器、用于后台自动化的 webhook 处理程序
- **心跳系统** - 用于监控和维护任务的前台后台执行
- **并行作业** - 在隔离的上下文中并发处理多个请求
- **自我修复** - 自动检测并恢复卡住的操作
### 自我扩展
- **动态工具构建** - 描述您的需求,IronClaw 会将其构建为 WASM 工具
- **MCP 协议** - 连接到模型上下文协议服务器以获取额外功能
- **插件架构** - 无需重启即可插入新的 WASM 工具和通道
### 持久记忆
- **混合搜索** - 使用倒数排名融合的全文本 + 向量搜索
- **工作区文件系统** - 基于路径的灵活存储,用于笔记、日志和上下文
- **身份文件** - 在会话之间保持一致的个性和偏好
## 安装
### 前置条件
- Rust 1.85+
- PostgreSQL 15+ 及 [pgvector](https://github.com/pgvector/pgvector) 扩展
- NEAR AI 账户(通过设置向导处理身份验证)
## 下载或构建
访问 [Releases 页面](https://github.com/nearai/ironclaw/releases/) 查看最新更新。
通过 Windows 安装程序安装
下载 [Windows 安装程序](https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-x86_64-pc-windows-msvc.msi) 并运行它。
通过 powershell 脚本安装
```
irm https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.ps1 | iex
```
通过 shell 脚本安装
```
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.sh | sh
```
通过 Homebrew 安装
```
brew install ironclaw
```
编译源代码
使用 `cargo` 安装,只需确保您的计算机上已安装 [Rust](https://rustup.rs)。
```
# Clone repository
git clone https://github.com/nearai/ironclaw.git
cd ironclaw
# Build
cargo build --release
# Run tests
cargo test
```
对于**完整发布**(修改通道源代码后),请先运行 `./scripts/build-all.sh` 重新构建通道。
### 数据库设置
```
# Create database
createdb ironclaw
# Enable pgvector
psql ironclaw -c "CREATE EXTENSION IF NOT EXISTS vector;"
```
## 配置
运行设置向导以配置 IronClaw:
```
ironclaw onboard
```
该向导处理数据库连接、NEAR AI 身份验证(通过浏览器 OAuth)和密钥加密(使用您的系统钥匙串)。设置保存在连接的数据库中;引导变量(例如 `DATABASE_URL`、`LLM_BACKEND`)写入 `~/.ironclaw/.env`,以便在数据库连接之前可用。
### 替代 LLM 提供商
IronClaw 默认使用 NEAR AI,但开箱即支持许多 LLM 提供商。
内置提供商包括 **Anthropic**、**OpenAI**、**GitHub Copilot**、**Google Gemini**、**MiniMax**、**Mistral** 和 **Ollama**(本地)。也支持兼容 OpenAI 的服务,如 **OpenRouter**(300+ 模型)、**Together AI**、**Fireworks AI** 和自托管服务器(**vLLM**、**LiteLLM**)。
在向导中选择您的提供商,或直接设置环境变量:
```
# Example: MiniMax (built-in, 204K context)
LLM_BACKEND=minimax
MINIMAX_API_KEY=...
# Example: OpenAI-compatible endpoint
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 ──► Allowlist ──► Leak Scan ──► Credential ──► Execute ──► Leak Scan ──► WASM
Validator (request) Injector Request (response)
```
### Prompt 注入防御
外部内容通过多层安全层:
- 基于模式的注入尝试检测
- 内容清理和转义
- 具有严重性级别的策略规则
- 工具输出包装,用于安全的 LLM 上下文注入
### 数据保护
- 所有数据本地存储在您的 PostgreSQL 数据库中
- 密钥使用 AES-256-GCM 加密
- 无遥测、分析或数据共享
- 所有工具执行的完整审计日志
## 架构
```
┌────────────────────────────────────────────────────────────────┐
│ Channels │
│ ┌──────┐ ┌──────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ REPL │ │ HTTP │ │WASM Channels│ │ Web Gateway │ │
│ └──┬───┘ └──┬───┘ └──────┬──────┘ │ (SSE + WS) │ │
│ │ │ │ └──────┬──────┘ │
│ └─────────┴──────────────┴────────────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ Agent Loop │ Intent routing │
│ └────┬──────────┬───┘ │
│ │ │ │
│ ┌──────────▼────┐ ┌──▼───────────────┐ │
│ │ Scheduler │ │ Routines Engine │ │
│ │(parallel jobs)│ │(cron, event, wh) │ │
│ └──────┬────────┘ └────────┬─────────┘ │
│ │ │ │
│ ┌─────────────┼────────────────────┘ │
│ │ │ │
│ ┌───▼─────┐ ┌────▼────────────────┐ │
│ │ Local │ │ Orchestrator │ │
│ │Workers │ │ ┌───────────────┐ │ │
│ │(in-proc)│ │ │ Docker Sandbox│ │ │
│ └───┬─────┘ │ │ Containers │ │ │
│ │ │ │ ┌───────────┐ │ │ │
│ │ │ │ │Worker / CC│ │ │ │
│ │ │ │ └───────────┘ │ │ │
│ │ │ └───────────────┘ │ │
│ │ └─────────┬───────────┘ │
│ └──────────────────┤ │
│ │ │
│ ┌───────────▼──────────┐ │
│ │ Tool Registry │ │
│ │ Built-in, MCP, WASM │ │
│ └──────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
```
### 核心组件
| 组件 | 用途 |
|-----------|---------|
| **Agent Loop** | 主消息处理和作业协调 |
| **Router** | 分类用户意图(命令、查询、任务) |
| **Scheduler** | 管理具有优先级的并行作业执行 |
| **Worker** | 使用 LLM 推理和工具调用执行作业 |
| **Orchestrator** | 容器生命周期、LLM 代理、单作业认证 |
| **Web Gateway** | 浏览器 UI,包含聊天、记忆、作业、日志、扩展、例行程序 |
| **Routines Engine** | 计划和反应式(事件、webhook)后台任务 |
| **Workspace** | 具有混合搜索的持久记忆 |
| **Safety Layer** | Prompt 注入防御和内容清理 |
## 使用
```
# First-time setup (configures database, auth, etc.)
ironclaw onboard
# Start interactive REPL
cargo run
# With debug logging
RUST_LOG=ironclaw=debug cargo run
```
## 开发
```
# Format code
cargo fmt
# Lint
cargo clippy --all --benches --tests --examples --all-features
# Run tests
createdb ironclaw_test
cargo test
# Run specific 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 与 TypeScript** - 原生性能、内存安全、单一二进制文件
- **WASM 沙箱与 Docker** - 轻量级、基于能力的安全性
- **PostgreSQL 与 SQLite** - 生产级持久性
- **安全第一设计** - 多层防御、凭证保护
## 许可证
根据以下任一许可证授权:
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE))
- MIT License ([LICENSE-MIT](LICENSE-MIT))
由您选择。
标签:AI 助手, Linux 软件, LLM 客户端, meg, OpenClaw 替代, Privacy-First AI, Rust, 个人助理, 人工智能, 信息安全, 可视化界面, 开源, 数据主权, 无遥测, 本地知识库, 本地部署, 测试用例, 用户模式Hook绕过, 端到端加密, 网络安全, 网络流量审计, 自我扩展, 请求拦截, 透明设计, 通知系统, 隐私保护