# ironclaw **Repository Path**: 80779898/ironclaw ## Basic Information - **Project Name**: ironclaw - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: staging - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-12 - **Last Updated**: 2026-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

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 webhook、WASM 渠道(Telegram、Slack)和 Web 网关 - **Docker 沙箱** — 隔离的容器执行,支持每任务令牌和编排器/工作器模式 - **Web 网关** — 浏览器 UI,支持实时 SSE/WebSocket 流式传输 - **定时任务** — Cron 调度、事件触发器、Webhook 处理器,实现后台自动化 - **心跳系统** — 主动后台执行,用于监控和维护任务 - **并行任务** — 使用隔离上下文同时处理多个请求 - **自修复** — 自动检测并恢复卡住的操作 ### 自主扩展 - **动态工具构建** — 描述你的需求,IronClaw 会将其构建为 WASM 工具 - **MCP 协议** — 连接模型上下文协议(Model Context Protocol)服务器以获取额外能力 - **插件架构** — 无需重启即可加载新的 WASM 工具和渠道 ### 持久记忆 - **混合搜索** — 全文搜索 + 向量搜索,采用倒数排名融合(Reciprocal Rank Fusion) - **工作空间文件系统** — 灵活的基于路径的存储,用于笔记、日志和上下文 - **身份文件** — 跨会话保持一致的个性和偏好设置 ## 安装 ### 前置要求 - Rust 1.85+ - PostgreSQL 15+,需安装 [pgvector](https://github.com/pgvector/pgvector) 扩展 - NEAR AI 账户(通过设置向导进行身份验证) ## 下载或编译 访问 [Releases 页面](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 ```
通过 Shell 脚本安装 (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) 确保你已安装 [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,但兼容任何 OpenAI 兼容的端点。 常用选项包括 **OpenRouter**(300+ 模型)、**Together AI**、**Fireworks AI**、**Ollama**(本地部署)以及自托管服务器如 **vLLM** 或 **LiteLLM**。 在向导中选择 *"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 ``` 详见 [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, 事件, Webhook)│ │ │ └──────┬────────┘ └────────┬─────────┘ │ │ │ │ │ │ ┌─────────────┼────────────────────┘ │ │ │ │ │ │ ┌───▼─────┐ ┌────▼────────────────┐ │ │ │ 本地 │ │ 编排器 │ │ │ │ 工作器 │ │ ┌───────────────┐ │ │ │ │(进程内) │ │ │ Docker 沙箱 │ │ │ │ └───┬─────┘ │ │ 容器 │ │ │ │ │ │ │ ┌───────────┐ │ │ │ │ │ │ │ │工作器/CC │ │ │ │ │ │ │ │ └───────────┘ │ │ │ │ │ │ └───────────────┘ │ │ │ │ └─────────┬───────────┘ │ │ └──────────────────┤ │ │ │ │ │ ┌───────────▼──────────┐ │ │ │ 工具注册表 │ │ │ │ 内置、MCP、WASM │ │ │ └──────────────────────┘ │ └────────────────────────────────────────────────────────────────┘ ``` ### 核心组件 | 组件 | 用途 | |------|------| | **代理循环** | 主消息处理和任务协调 | | **路由器** | 分类用户意图(命令、查询、任务) | | **调度器** | 管理带优先级的并行任务执行 | | **工作器** | 执行包含 LLM 推理和工具调用的任务 | | **编排器** | 容器生命周期、LLM 代理、每任务认证 | | **Web 网关** | 浏览器 UI,含聊天、记忆、任务、日志、扩展、定时任务 | | **定时任务引擎** | 定时(cron)和响应式(事件、webhook)后台任务 | | **工作空间** | 带混合搜索的持久记忆 | | **安全层** | 提示注入防御和内容清理 | ## 使用方式 ```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 渠道**:参见 [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))