README.zh-CN.md
IronClaw 基于一个简单的原则:你的 AI 助手应该为你服务,而不是与你为敌。
在 AI 系统对数据处理日益不透明、与企业利益捆绑的今天,IronClaw 选择了一条不同的路:
IronClaw 是一个你真正可以信赖的 AI 助手,无论是个人生活还是工作。
访问 Releases 页面 查看最新版本。
<details> <summary>通过 Windows 安装程序安装 (Windows)</summary>下载 Windows 安装程序 并运行。
</details> <details> <summary>通过 PowerShell 脚本安装 (Windows)</summary>irm https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.ps1 | iex
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/nearai/ironclaw/releases/latest/download/ironclaw-installer.sh | sh
brew install ironclaw
确保你已安装 Rust。
# 克隆仓库
git clone https://github.com/nearai/ironclaw.git
cd ironclaw
# 编译
cargo build --release
# 运行测试
cargo test
如需进行完整发布构建(修改了渠道源码后),先运行 ./scripts/build-all.sh 重新编译渠道。
# 创建数据库
createdb ironclaw
# 启用 pgvector 扩展
psql ironclaw -c "CREATE EXTENSION IF NOT EXISTS vector;"
运行设置向导来配置 IronClaw:
ironclaw onboard
向导将引导你完成数据库连接、NEAR AI 身份验证(通过浏览器 OAuth)和密钥加密(使用系统钥匙串)。设置会保存在数据库中;引导变量(如 DATABASE_URL、LLM_BACKEND)写入 ~/.ironclaw/.env,以便在数据库连接前可用。
IronClaw 默认使用 NEAR AI,但开箱即用地支持多种 LLM 提供商。 内置提供商包括 Anthropic、OpenAI、Google Gemini、MiniMax、Mistral 和 Ollama(本地部署)。同时也支持 OpenAI 兼容服务,如 OpenRouter(300+ 模型)、Together AI、Fireworks AI 以及自托管服务器(vLLM、LiteLLM)。
在向导中选择你的提供商,或直接设置环境变量:
# 示例: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 获取完整的提供商指南。
IronClaw 实现了纵深防御策略来保护你的数据并防止滥用。
所有不受信任的工具都在隔离的 WebAssembly 容器中运行:
WASM ──► 白名单 ──► 泄露扫描 ──► 凭据 ──► 执行 ──► 泄露扫描 ──► WASM
验证器 (请求) 注入器 请求 (响应)
外部内容需通过多个安全层:
┌────────────────────────────────────────────────────────────────┐
│ 渠道 │
│ ┌──────┐ ┌──────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ REPL │ │ HTTP │ │ WASM 渠道 │ │ Web 网关 │ │
│ └──┬───┘ └──┬───┘ └──────┬──────┘ │ (SSE + WS) │ │
│ │ │ │ └──────┬──────┘ │
│ └─────────┴──────────────┴────────────────┘ │
│ │ │
│ ┌─────────▼─────────┐ │
│ │ 代理循环 │ 意图路由 │
│ └────┬──────────┬───┘ │
│ │ │ │
│ ┌──────────▼────┐ ┌──▼───────────────┐ │
│ │ 调度器 │ │ 定时任务引擎 │ │
│ │ (并行任务) │ │(cron, 事件, Webhook)│ │
│ └──────┬────────┘ └────────┬─────────┘ │
│ │ │ │
│ ┌─────────────┼────────────────────┘ │
│ │ │ │
│ ┌───▼─────┐ ┌────▼────────────────┐ │
│ │ 本地 │ │ 编排器 │ │
│ │ 工作器 │ │ ┌───────────────┐ │ │
│ │(进程内) │ │ │ Docker 沙箱 │ │ │
│ └───┬─────┘ │ │ 容器 │ │ │
│ │ │ │ ┌───────────┐ │ │ │
│ │ │ │ │工作器/CC │ │ │ │
│ │ │ │ └───────────┘ │ │ │
│ │ │ └───────────────┘ │ │
│ │ └─────────┬───────────┘ │
│ └──────────────────┤ │
│ │ │
│ ┌───────────▼──────────┐ │
│ │ 工具注册表 │ │
│ │ 内置、MCP、WASM │ │
│ └──────────────────────┘ │
└────────────────────────────────────────────────────────────────┘
| 组件 | 用途 |
|---|---|
| 代理循环 | 主消息处理和任务协调 |
| 路由器 | 分类用户意图(命令、查询、任务) |
| 调度器 | 管理带优先级的并行任务执行 |
| 工作器 | 执行包含 LLM 推理和工具调用的任务 |
| 编排器 | 容器生命周期、LLM 代理、每任务认证 |
| Web 网关 | 浏览器 UI,含聊天、记忆、任务、日志、扩展、定时任务 |
| 定时任务引擎 | 定时(cron)和响应式(事件、webhook)后台任务 |
| 工作空间 | 带混合搜索的持久记忆 |
| 安全层 | 提示注入防御和内容清理 |
# 首次设置(配置数据库、认证等)
ironclaw onboard
# 启动交互式 REPL
cargo run
# 启用调试日志
RUST_LOG=ironclaw=debug cargo run
# 格式化代码
cargo fmt
# 代码检查
cargo clippy --all --benches --tests --examples --all-features
# 运行测试
createdb ironclaw_test
cargo test
# 运行指定测试
cargo test test_name
cargo build 之前运行 ./channels-src/telegram/build.sh 以便打包更新后的 WASM。IronClaw 是受 OpenClaw 启发的 Rust 重新实现。参见 FEATURE_PARITY.md 了解完整的功能追踪矩阵。
主要差异:
可选择以下任一许可证: