IronClaw - 企业级安全与记忆
约 1183 字大约 4 分钟
2026-03-07
企业级安全与向量记忆 - 工业级 AI Agent 解决方案,提供 WASM 沙箱隔离和 PostgreSQL 向量记忆。
核心特性
WASM 沙箱隔离
- WebAssembly 运行时隔离
- 比 Docker 更轻量的安全边界
- 细粒度权限控制
- 零性能损失的安全保障
向量记忆系统
- PostgreSQL + pgvector 存储
- HNSW 混合语义检索
- 多级缓存机制
- 长期记忆能力
企业级安全
- 端到端加密
- 审计日志完整
- 权限管理系统
- 合规性支持
高可用架构
- 主从复制
- 自动故障转移
- 负载均衡
- 水平扩展
快速开始
系统要求
- Rust 1.70+
- PostgreSQL 14+ with pgvector
- 4GB+ RAM
- Linux/macOS
安装
# 安装 PostgreSQL 和 pgvector
# Ubuntu/Debian
sudo apt-get install postgresql-14 postgresql-14-pgvector
# macOS
brew install postgresql@14
brew install pgvector
# 克隆仓库
git clone https://github.com/nearai/ironclaw.git
cd ironclaw
# 构建
cargo build --release
# 初始化数据库
./scripts/init_db.sh配置
创建 config.toml:
[server]
host = "0.0.0.0"
port = 8080
[database]
url = "postgresql://user:password@localhost/ironclaw"
pool_size = 10
[security]
wasm_memory_limit = "512MB"
max_execution_time = 30
[memory]
embedding_model = "text-embedding-ada-002"
vector_dimensions = 1536启动
# 启动服务
./target/release/ironclaw --config config.toml
# 使用 Docker Compose
docker-compose up -d技术架构
安全隔离层
WASM 沙箱
- 运行时: Wasmtime
- 内存隔离: 独立线性内存空间
- 系统调用: WASI 接口限制
- 资源限制: CPU、内存、时间配额
权限系统
pub struct Permission {
pub read_files: Vec<PathBuf>,
pub write_files: Vec<PathBuf>,
pub network_access: bool,
pub max_memory: usize,
}向量记忆层
数据模型
CREATE TABLE memories (
id UUID PRIMARY KEY,
content TEXT NOT NULL,
embedding vector(1536),
metadata JSONB,
created_at TIMESTAMP DEFAULT NOW()
);
CREATE INDEX ON memories USING hnsw (embedding vector_cosine_ops);检索策略
- 语义检索: 向量相似度搜索
- 关键词检索: 全文搜索
- 混合检索: 语义 + 关键词融合
- 时间衰减: 记忆重要性随时间衰减
缓存架构
┌─────────────┐
│ L1 Cache │ 内存缓存 (Redis)
├─────────────┤
│ L2 Cache │ 本地 SSD 缓存
├─────────────┤
│ L3 Store │ PostgreSQL
└─────────────┘功能特性
长期记忆
// 存储记忆
let memory = Memory::new("用户喜欢喝咖啡");
ironclaw.store_memory(memory).await?;
// 检索记忆
let results = ironclaw
.search_memory("用户的饮品偏好")
.limit(5)
.await?;安全执行
// 在 WASM 沙箱中执行代码
let result = ironclaw
.execute_sandboxed(code, permissions)
.timeout(Duration::from_secs(30))
.await?;审计日志
// 所有操作自动记录
pub struct AuditLog {
pub user_id: Uuid,
pub action: String,
pub resource: String,
pub timestamp: DateTime<Utc>,
pub result: Result<(), Error>,
}适用场景
企业知识库
- 内部文档问答
- 知识管理系统
- 智能客服后台
敏感数据处理
- 金融数据分析
- 医疗记录处理
- 法律文档审查
长期记忆应用
- 个人 AI 助手
- 客户关系管理
- 项目历史追踪
性能指标
| 指标 | 数值 |
|---|---|
| 向量检索延迟 | < 10ms (1M 向量) |
| 并发处理能力 | 1000+ QPS |
| 内存占用 | ~500MB (基础) |
| 数据库连接池 | 10-50 连接 |
安全特性
数据加密
- 传输加密: TLS 1.3
- 存储加密: AES-256
- 密钥管理: HashiCorp Vault 集成
访问控制
pub enum Role {
Admin,
User,
ReadOnly,
}
pub struct AccessControl {
pub role: Role,
pub resources: Vec<Resource>,
pub actions: Vec<Action>,
}审计合规
- SOC 2 Type II 支持
- GDPR 合规
- HIPAA 兼容
- 完整审计日志
部署方案
单机部署
# 使用 systemd
sudo systemctl enable ironclaw
sudo systemctl start ironclaw集群部署
# Kubernetes 部署
apiVersion: apps/v1
kind: Deployment
metadata:
name: ironclaw
spec:
replicas: 3
template:
spec:
containers:
- name: ironclaw
image: ironclaw:latest
resources:
requests:
memory: "1Gi"
cpu: "500m"高可用配置
- PostgreSQL 主从复制
- Redis Sentinel 高可用
- Nginx 负载均衡
- 自动故障转移
监控与运维
指标监控
// Prometheus 指标导出
pub struct Metrics {
pub requests_total: Counter,
pub request_duration: Histogram,
pub memory_usage: Gauge,
pub vector_search_latency: Histogram,
}健康检查
# 健康检查端点
curl http://localhost:8080/health
# 响应
{
"status": "healthy",
"database": "connected",
"cache": "available",
"uptime": "72h"
}与其他版本对比
vs 官方版
- 官方版无向量记忆,IronClaw 内置 pgvector
- 官方版安全隔离较弱,IronClaw 使用 WASM 沙箱
- 官方版不适合企业场景,IronClaw 专为企业设计
vs NanoClaw
- NanoClaw 使用 Docker 隔离,IronClaw 使用 WASM
- NanoClaw 无记忆系统,IronClaw 有完整向量记忆
- NanoClaw 更轻量,IronClaw 更企业级
vs ZeroClaw
- ZeroClaw 追求性能,IronClaw 追求安全和记忆
- ZeroClaw 使用 Sled,IronClaw 使用 PostgreSQL
- 两者都是 Rust 实现,但侧重点不同
相关链接
- GitHub: nearai/ironclaw
- 文档: 完整文档
- 问题反馈: Issues
- 企业支持: 联系我们
贡献
欢迎企业级功能贡献!
# 克隆仓库
git clone https://github.com/nearai/ironclaw.git
# 运行测试
cargo test
# 运行集成测试
cargo test --features integration许可证
Apache 2.0 License - 详见 LICENSE