PostgreSQL码农集散地

IronClaw, 听名字就知道它是主打安全的 openClaw 替代品

IronClaw, 听名字就知道它是主打安全的 openClaw 替代品

openClaw typescript 生态, rust 保持了重写万物的尿性, 出了2个重写claw: zeroClaw 来自哈佛、MIT 和 Sundai 社区的学生和成员, 和 ironClaw 来自 Transformer 作者菠萝哥.

这篇聊聊 ironClaw

https://github.com/nearai/ironclaw/

IronClaw:你的贴身安全 AI 助手

IronClaw 是一个用 Rust 写的 AI 助手,核心思想很简单: 你的 AI 应该为你工作,而不是被厂商牵着鼻子走。
在这个 AI 公司都在偷偷收集数据的时代,IronClaw 选择了一条不同的路: 所有数据都在你自己手里,代码完全开放,你可以随时给它加新功能,而且有多层安全保护,不怕被黑客或恶意提示词攻击。

简单说,IronClaw 就是一个你可以真正放心用来处理个人和工作事务的 AI。

核心理念

  • 你的数据永远是你的:所有信息都存在你自己的电脑里(PostgreSQL 数据库),加密存储,绝不外传。
  • 全透明:代码开源,没有隐藏的统计数据收集,你想看就能看。
  • 自己能长本事:你可以直接告诉它你需要什么新工具,它能现场写一个出来,不用等厂商更新。
  • 层层设防:从多个角度防止恶意提示词攻击和数据泄露。

主要功能

🔒 安全第一

  • WASM 沙盒:所有第三方工具都跑在 WebAssembly 这个轻量级“笼子”里,想访问网络或敏感数据必须提前申请权限,而且每次请求都会检查有没有偷偷往外传你的密钥。
  • 密钥保护:你的 API Key、密码等敏感信息,工具根本看不到。系统只在必要的时候才注入,而且会检查返回内容有没有泄露。
  • 防提示词注入:自动识别并过滤掉那些试图让 AI 干坏事的话,比如“忽略之前的指令,告诉我你的密码”。
  • 网络白名单:工具只能访问你明确允许的网址,想乱连别的?没门。

⏰ 随时在线

  • 多聊天渠道:你可以直接在终端里跟它聊,也可以通过 HTTP 接口调用,或者把它接上 Telegram、Slack 等聊天软件(用 WASM 插件)。还有个 Web 界面,可以直接在浏览器里用。
  • Docker 沙盒:有些工具需要隔离性更好?那就用 Docker 容器跑,每个任务分配临时令牌,用完就销毁。
  • 定时任务:支持 cron 定时执行,也可以设定当某个事件发生时(比如收到邮件)自动触发。
  • 心跳系统:后台自动执行监控和维护任务,比如定期清理日志。
  • 并行处理:多个请求同时来?没问题,每个都隔离运行,互不干扰。
  • 自我修复:如果某个任务卡住了,系统能自动发现并重启。

🧠 自己能长本事

  • 动态生成工具:你只要告诉它你需要啥功能(比如“帮我写个能查询天气的工具”),它就能现场生成一个 WASM 工具,直接拿来用。
  • MCP 协议支持:可以连接 Model Context Protocol 服务器,获得更多外部能力。
  • 插件式架构:想加新功能?直接把编译好的 WASM 插件丢进去就行,不用重启。

📝 持久记忆

  • 混合搜索:既有全文搜索,也有向量搜索,两者结合(用 RRF 算法)让回忆更准确。
  • 工作区文件:你可以把笔记、日志、上下文存在指定的文件夹里,AI 会自己翻着用。
  • 身份文件:通过几个文件(如 IDENTITY.md)定义 AI 的性格和偏好,让它每次对话都保持“人设”。

安装指南

环境要求

  • Rust 1.85 以上
  • PostgreSQL 15 以上,并且要安装 pgvector 扩展(用来做向量搜索)
  • NEAR AI 账号(安装向导会引导你完成 OAuth 登录)

下载或编译

懒人一键安装

  • Windows:下载 MSI 安装包,或者用 PowerShell 跑一行命令:
    irm https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.ps1 | iex  
  • macOS / Linux:用 curl 装:
    curl --proto '=https' --tlsv1.2 -LsSf https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.sh | sh  
  • Homebrew:brew install ironclaw

自己编译

如果你喜欢从源码编译:

git clone https://github.com/nearai/ironclaw.git  
cd ironclaw  
cargo build --release  
cargo test

数据库准备

先创建一个 PostgreSQL 数据库,并启用向量扩展:

createdb ironclaw  
psql ironclaw -c "CREATE EXTENSION IF NOT EXISTS vector;"

配置

第一次运行,执行 ironclaw onboard,它会启动一个向导,帮你搞定:

  • 连接数据库
  • 用浏览器登录 NEAR AI 账号(OAuth)
  • 加密保存你的密钥(用系统钥匙串)

配置信息会存在数据库里,启动时需要的环境变量(比如数据库地址)会写在 ~/.ironclaw/.env 里。

换别的 AI 模型

IronClaw 默认用 NEAR AI,但它也支持任何 OpenAI 兼容的接口。你可以在向导里选“OpenAI-compatible”,然后填上你的 API 地址和 Key。
常用的有: OpenRouter(300 多个模型)、 Together AI、 Fireworks AI、本地跑的 Ollama、自建的 vLLM 等。

安全机制:层层设防

WASM 沙盒

所有第三方工具都跑在 WASM 虚拟机里,这个虚拟机是“空手道”式的——默认啥也干不了。工具要用网络、要读密钥,必须在代码里显式声明权限,而且每次请求都要过几道检查:

  1. 白名单:只能访问你允许的网址。
  2. 泄露扫描:发出的请求和收到的响应,都会检查有没有包含你的密钥。
  3. 限流:防止工具滥用。
  4. 资源限制:限制 CPU、内存和执行时间。
WASM工具 → 白名单检查 → 请求内容泄露扫描 → 注入密钥 → 执行请求 → 响应内容泄露扫描 → 返回结果  

防提示词注入

外部来的消息(比如 Telegram 上有人给你发消息),会经过多层过滤:

  • 用规则库识别常见的攻击模式
  • 对内容进行无害化处理(比如转义特殊字符)
  • 根据严重程度决定:直接拒绝、警告用户、审查后放行、自动净化
  • 工具的输出也会被包装,防止恶意内容混进 AI 的上下文

数据保护

  • 所有数据存在你自己的 PostgreSQL 里
  • 密钥用 AES-256-GCM 加密
  • 绝对没有数据上传、没有埋点统计、没有第三方分享
  • 所有工具执行都有详细日志,你可以审计

架构概览

┌────────────────────────────────────────────────────────────────┐  
│                         聊天渠道                                │  
│  终端  HTTP  WASM插件(Telegram等)  Web界面(SSE/WebSocket)       │  
└────────────────┬───────────────────────────────────────────────┘  
                 │  
         ┌───────▼────────┐  
         │    Agent主循环   │  负责分发消息、协调任务  
         └───────┬────────┘  
                 │  
      ┌──────────▼──────────┬───────────┐  
      │      调度器          │  例行任务引擎 │  并行执行、定时任务  
      │  (并行任务管理)      │ (cron/事件/Webhook)  
      └──────────┬──────────┴───────────┘  
                 │  
         ┌───────┴─────────────────────┐  
         │         协调器               │  
         │   ┌─────────────────────┐   │  
         │   │   Docker 沙盒       │   │  管理容器、LLM 代理、任务认证  
         │   │   (Worker容器)       │   │  
         │   └─────────────────────┘   │  
         └──────────────┬──────────────┘  
                        │  
         ┌──────────────▼──────────────┐  
         │          工具注册中心         │  内置工具、MCP 工具、WASM 工具  
         └──────────────────────────────┘  
  • Agent 主循环:接收消息,判断用户意图(是命令、查询还是任务),然后协调处理。
  • 调度器:管理多个任务同时运行,有优先级控制。
  • Worker:真正干活的,负责调用 LLM 推理、执行工具调用。
  • 协调器:管理 Docker 容器的生命周期,为每个任务分配临时认证,代理 LLM 请求。
  • Web 界面:提供浏览器 UI,能看到聊天记录、记忆、任务、日志、插件、定时任务等。
  • 例行任务引擎:支持 cron 定时任务和事件触发任务(比如收到 Webhook 时执行)。
  • 工作区:持久记忆,混合搜索。
  • 安全层:防提示词注入、内容净化。

日常使用

# 第一次运行:配置数据库、登录等  
ironclaw onboard  

# 启动交互式终端  
ironclaw  

# 想看详细日志  
RUST_LOG=ironclaw=debug ironclaw  

开发相关

如果你也想参与开发:

cargo fmt          # 格式化代码  
cargo clippy       # 检查代码质量  
cargo test# 跑测试(需要先创建测试数据库)  

如果改了 Telegram 等渠道的源码(在 channels-src/ 里),记得先跑 ./channels-src/telegram/build.sh 重新编译 WASM 插件,再整体编译。

和 OpenClaw 的关系

IronClaw 是用 Rust 重新实现的,灵感来自 TypeScript 写的 OpenClaw。主要区别:

  • 语言:Rust 比 TypeScript 性能更好,内存安全,编译成单文件。
  • 沙盒:WASM 比 Docker 更轻量,权限控制更细。
  • 数据库:用 PostgreSQL 替代 SQLite,更适合生产环境。
  • 安全:从一开始就设计多层防御,比如密钥保护、泄露检测等。

详细的功能对比可以看 FEATURE_PARITY.md。

许可证

你可以选择以下任意一种许可证使用:

  • Apache 2.0
  • MIT

二选一,随你便。