IronClaw:用 Rust 构建的安全个人 AI 助手

字节笔记本

2026年3月8日

IronClaw:用 Rust 构建的安全个人 AI 助手

IronClaw 是一个用 Rust 编写的安全个人 AI 助手,灵感来自 OpenClaw。它专注于隐私保护和安全性,通过 WASM 沙箱、凭证保护、提示注入防御等多层安全机制,确保你的数据始终在你的控制之下。

项目简介

IronClaw 是一个开源的 AI 助手实现,使用 Rust 语言编写,目前已在 GitHub 上获得超过 7200 个 star。该项目的核心理念是:你的 AI 助手应该为你工作,而不是对你不利

在一个 AI 系统越来越不透明、数据处理方式模糊不清的时代,IronClaw 采取了不同的方法:

  • 数据始终属于你 - 所有信息本地存储、加密,永不离开你的控制
  • 设计透明 - 开源、可审计、无隐藏的遥测或数据收集
  • 自我扩展能力 - 即时构建新工具,无需等待供应商更新
  • 深度防御 - 多层安全保护,防止提示注入和数据泄露

核心特性

安全优先

  • WASM 沙箱 - 不受信任的工具在隔离的 WebAssembly 容器中运行,具有基于能力的权限
  • 凭证保护 - 密钥永不暴露给工具;在主机边界注入,带有泄露检测
  • 提示注入防御 - 模式检测、内容清理和策略执行
  • 端点白名单 - HTTP 请求仅限明确批准的主机和路径

始终可用

  • 多渠道 - REPL、HTTP webhook、WASM 渠道(Telegram、Slack)和 Web 网关
  • Docker 沙箱 - 隔离容器执行,每个作业独立令牌,编排器/工作器模式
  • Web 网关 - 浏览器 UI,支持实时 SSE/WebSocket 流式传输
  • 例程系统 - Cron 调度、事件触发器、webhook 处理器用于后台自动化
  • 心跳系统 - 主动后台执行,用于监控和维护任务
  • 并行作业 - 隔离上下文处理多个并发请求
  • 自我修复 - 自动检测和恢复卡住的操作

自我扩展

  • 动态工具构建 - 描述你需要什么,IronClaw 会将其构建为 WASM 工具
  • MCP 协议 - 连接到模型上下文协议服务器以获取额外功能
  • 插件架构 - 无需重启即可添加新的 WASM 工具和渠道

持久化记忆

  • 混合搜索 - 使用倒数排名融合的全文 + 向量搜索
  • 工作区文件系统 - 灵活的基于路径的存储,用于笔记、日志和上下文
  • 身份文件 - 在会话间保持一致的个性和偏好

技术栈

  • Rust 1.85+ - 主要编程语言
  • PostgreSQL 15+ - 数据存储
  • pgvector - 向量搜索扩展
  • WebAssembly (WASM) - 工具沙箱隔离
  • Docker - 容器化执行环境
  • OpenAI API - 兼容多种 LLM 提供商

安装指南

前置要求

  • Rust 1.85+
  • PostgreSQL 15+ with pgvector 扩展
  • NEAR AI 账户(通过设置向导处理身份验证)

安装方式

Windows 安装程序

下载 Windows Installer 并运行。

PowerShell 脚本(Windows)

powershell
irm https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.ps1 | iex

Shell 脚本(macOS, Linux, Windows/WSL)

bash
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.sh | sh

Homebrew(macOS/Linux)

bash
brew install ironclaw

从源码编译

bash
# 克隆仓库
git clone https://github.com/nearai/ironclaw.git
cd ironclaw

# 构建
cargo build --release

# 运行测试
cargo test

快速开始

数据库设置

bash
# 创建数据库
createdb ironclaw

# 启用 pgvector
psql ironclaw -c "CREATE EXTENSION IF NOT EXISTS vector;"

配置向导

运行设置向导来配置 IronClaw:

bash
ironclaw onboard

向导会处理数据库连接、NEAR AI 身份验证(通过浏览器 OAuth)和密钥加密(使用系统密钥链)。设置会持久化到连接的数据库中;引导变量(如 DATABASE_URLLLM_BACKEND)会写入 ~/.ironclaw/.env

启动 REPL

bash
# 启动交互式 REPL
cargo run

# 带调试日志
RUST_LOG=ironclaw=debug cargo run

配置选项

替代 LLM 提供商

IronClaw 默认使用 NEAR AI,但支持任何 OpenAI 兼容端点。常用选项包括:

  • OpenRouter - 300+ 模型
  • Together AI
  • Fireworks AI
  • Ollama - 本地运行
  • 自托管服务器如 vLLMLiteLLM

在向导中选择 "OpenAI-compatible",或直接设置环境变量:

env
LLM_BACKEND=openai_compatible
LLM_BASE_URL=https://openrouter.ai/api/v1
LLM_API_KEY=sk-or-...
LLM_MODEL=anthropic/claude-sonnet-4

安全架构

WASM 沙箱工作流程

text
WASM ──► 白名单 ──► 泄露扫描 ──► 凭证注入 ──► 执行 ──► 泄露扫描 ──► WASM
         验证器      (请求)                        (响应)

所有不受信任的工具都在隔离的 WebAssembly 容器中运行:

  • 基于能力的权限 - 显式选择 HTTP、密钥、工具调用
  • 端点白名单 - HTTP 请求仅限批准的主机/路径
  • 凭证注入 - 密钥在主机边界注入,永不暴露给 WASM 代码
  • 泄露检测 - 扫描请求和响应中的密钥泄露尝试
  • 速率限制 - 每个工具的请求限制,防止滥用
  • 资源限制 - 内存、CPU 和执行时间约束

提示注入防御

外部内容通过多层安全层:

  • 基于模式的注入尝试检测
  • 内容清理和转义
  • 具有严重性级别的策略规则(阻止/警告/审查/清理)
  • 工具输出包装以安全注入 LLM 上下文

数据保护

  • 所有数据本地存储在 PostgreSQL 数据库中
  • 密钥使用 AES-256-GCM 加密
  • 无遥测、分析或数据共享
  • 所有工具执行的完整审计日志

架构概览

text
┌────────────────────────────────────────────────────────────────┐
│                          渠道层                                │
│  ┌──────┐  ┌──────┐   ┌─────────────┐  ┌─────────────┐         │
│  │ REPL │  │ HTTP │   │WASM Channels│  │ Web Gateway │         │
│  └──┬───┘  └──┬───┘   └──────┬──────┘  │ (SSE + WS)  │         │
│     └─────────┴──────────────┴────────────────┘                │
│                              │                                 │
│                    ┌─────────▼─────────┐                       │
│                    │    Agent Loop     │  意图路由             │
│                    └────┬──────────┬───┘                       │
│                         │          │                           │
│              ┌──────────▼────┐  ┌──▼───────────────┐           │
│              │  Scheduler    │  │ Routines Engine  │           │
│              │(并行作业)     │  │(cron, event, wh) │           │
│              └──────┬────────┘  └────────┬─────────┘           │
│       ┌─────────────┼────────────────────┘                     │
│       │             │                                          │
│   ┌───▼─────┐  ┌────▼────────────────┐                         │
│   │ Local   │  │    Orchestrator     │                         │
│   │Workers  │  │  ┌───────────────┐  │                         │
│   │(进程内) │  │  │ Docker Sandbox│  │                         │
│   └───┬─────┘  │  │   Containers  │  │                         │
│       │        │  │ ┌───────────┐ │  │                         │
│       │        │  │ │Worker / CC│ │  │                         │
│       │        │  │ └───────────┘ │  │                         │
│       │        │  └───────────────┘  │                         │
│       │        └─────────┬───────────┘                         │
│       └──────────────────┤                                     │
│              ┌───────────▼──────────┐                          │
│              │    Tool Registry     │                          │
│              │  Built-in, MCP, WASM │                          │
│              └──────────────────────┘                          │
└────────────────────────────────────────────────────────────────┘

核心组件

组件用途
Agent Loop主消息处理和作业协调
Router分类用户意图(命令、查询、任务)
Scheduler管理带优先级的并行作业执行
Worker使用 LLM 推理和工具调用执行作业
Orchestrator容器生命周期、LLM 代理、每作业认证
Web Gateway浏览器 UI(聊天、记忆、作业、日志、扩展、例程)
Routines Engine定时(cron)和响应式(事件、webhook)后台任务
Workspace持久化记忆,支持混合搜索
Safety Layer提示注入防御和内容清理

开发指南

bash
# 格式化代码
cargo fmt

# 代码检查
cargo clippy --all --benches --tests --examples --all-features

# 运行测试
createdb ironclaw_test
cargo test

# 运行特定测试
cargo test test_name

项目链接

总结

IronClaw 是一个注重隐私和安全的个人 AI 助手框架,通过 Rust 语言的强大性能和 WASM 沙箱的安全隔离,为开发者提供了一个可靠的 AI 助手解决方案。无论是个人使用还是商业部署,IronClaw 都能确保你的数据安全和隐私保护。如果你正在寻找一个可以完全信任的 AI 助手,IronClaw 是一个值得尝试的选择。


文章来源: IronClaw GitHub 仓库
最后更新: 2026-03-08

分享: