NanoClaw 深度研究报告
2026-02-21 | 托尼
一、概述
NanoClaw 是 OpenClaw 的轻量级替代方案,核心理念:小到你能完全理解,安全靠容器隔离而非权限检查。
- 作者:qwibitai
- 项目地址:
- 协议:MIT
- 亮点:第一个支持 Agent Swarms(多 agent 协作)的个人 AI 助手
一句话:OpenClaw 的极简主义重写,用 Claude Agent SDK 跑在容器里。
二、为什么做 NanoClaw(作者原话)
作者对 OpenClaw 的批评:
- 52+ 模块,45+ 依赖,8 个配置管理文件,15 个渠道抽象
- 安全是应用级的(白名单、配对码),不是 OS 级隔离
- 所有东西跑在一个 Node 进程,共享内存
- "我没法安心地运行我看不懂的软件来管理我的生活"
NanoClaw 的回应:8 分钟读完整个代码库。
三、核心设计哲学
| 原则 | 实现 |
|---|---|
| **小到能理解** | 单进程,几个源文件,无微服务/消息队列/抽象层 |
| **容器隔离** | Agent 跑在 Linux 容器里(Apple Container / Docker),只能看到显式挂载的目录 |
| **为一个人而建** | 不是框架,是为作者自己写的工具。你 fork 后让 Claude Code 改成适合你的 |
| **改代码 > 改配置** | 没有配置文件。想改行为?直接改代码。代码库小到这么做是安全的 |
| **AI 原生** | 没有安装向导 → Claude Code 引导。没有监控面板 → 问 Claude。没有调试工具 → 描述问题让 Claude 修 |
| **技能 > 功能** | 不要往代码库加功能,贡献 Claude Code skill 来变换代码 |
四、架构
WhatsApp (baileys) → SQLite → Polling loop → Container (Claude Agent SDK) → Response
关键文件(一共就这几个):
| 文件 | 作用 |
|---|---|
| `src/index.ts` | 编排器:状态、消息循环、agent 调用 |
| `src/channels/whatsapp.ts` | WhatsApp 连接/认证/收发 |
| `src/ipc.ts` | IPC 监视和任务处理 |
| `src/router.ts` | 消息格式化和出站路由 |
| `src/group-queue.ts` | 每组队列 + 全局并发限制 |
| `src/container-runner.ts` | 启动 streaming agent 容器 |
| `src/task-scheduler.ts` | 定时任务 |
| `src/db.ts` | SQLite 操作 |
| `groups/*/CLAUDE.md` | 每组独立记忆 |
运行时:直接跑在 Anthropic Agent SDK 上,等于直接用 Claude Code 作为 agent harness。
五、功能对比:NanoClaw vs OpenClaw
| 维度 | NanoClaw | OpenClaw |
|---|---|---|
| **代码量** | 几个文件,8 分钟读完 | 52+ 模块 |
| **依赖** | 极少 | 45+ |
| **安全模型** | **容器隔离**(OS 级) | 应用级(白名单/配对码) |
| **Agent 引擎** | Anthropic Agent SDK (Claude Code) | 自有引擎(多模型支持) |
| **模型支持** | 仅 Claude | 多模型(Claude/GPT/Gemini/DeepSeek 等) |
| **渠道** | WhatsApp(默认),其他靠 skill 添加 | 15+ 渠道内置 |
| **配置方式** | 改代码 | 配置文件 |
| **定时任务** | ✅ | ✅ |
| **记忆** | 每组 CLAUDE.md | MEMORY.md + memory/*.md + memory_search |
| **群聊隔离** | ✅ 每组独立容器+文件系统 | ✅ session 隔离 |
| **Agent Swarms** | ✅(首创) | ✅ sub-agents |
| **技能系统** | Claude Code skills(变换代码) | OpenClaw skills(运行时加载) |
| **扩展性** | 靠 fork + 改代码 | 靠配置 + 插件 |
六、Agent Swarms(亮点功能)
NanoClaw 声称是第一个支持 Agent Swarms 的个人 AI 助手,基于 Claude Code 的 Agent Teams 功能。
可以在聊天中启动多个专业 agent 协作处理复杂任务。这类似我们 OpenClaw 的 sessions_spawn 子 agent 机制,但 NanoClaw 的实现更贴近 Claude Code 原生。
七、技能系统的独特设计
NanoClaw 的技能系统和 OpenClaw 完全不同:
OpenClaw 技能:运行时加载的 SKILL.md + 脚本,核心代码不变
NanoClaw 技能:代码变换器 — skill 教 Claude Code 如何修改你的代码库
例如,想加 Telegram 支持:
- OpenClaw:装一个 Telegram 插件/配置
- NanoClaw:运行
/add-telegramskill,Claude Code 直接改你的代码
哲学差异:
- OpenClaw = 通用框架 + 插件
- NanoClaw = 极简模板 + 代码变换
NanoClaw 的方式更极端但也更干净——你的代码库里只有你需要的东西,没有为支持"所有人的所有场景"而存在的代码。
八、安全模型对比
这是 NanoClaw 最有说服力的论点:
OpenClaw:
- Agent 和主进程跑在同一个 Node 进程
- 安全靠应用级检查(工具白名单、elevated 权限)
- 如果有漏洞,agent 理论上能访问主机所有内容
NanoClaw:
- Agent 跑在 Linux 容器里
- 只能看到显式挂载的目录
- Bash 命令在容器内执行,不在主机上
- 即使 agent "越狱",也只能访问挂载的文件
这是真正的 defense in depth。但代价是灵活性降低——我们现在能 SSH 到远程服务器、操作本地文件、控制浏览器,NanoClaw 的容器模型让这些变难了。
九、对我们的意义
不适合我们迁移,但值得学习
不迁移的原因:
1. 只支持 Claude,我们用多模型
2. 只有 WhatsApp,我们用 Discord + Telegram
3. 容器隔离会限制我们的 SSH/文件系统/浏览器操作
4. 我们的 OpenClaw 环境已经很成熟
值得借鉴的思路:
1. 容器隔离:对于不信任的 agent 或群聊场景,容器是比白名单更安全的方案
2. 代码变换式技能:每个用户的代码库只有自己需要的东西,这比"一个框架满足所有人"更干净
3. 极简主义:52+ 模块 vs 几个文件——有时候少即是多
4. "8 分钟读完"标准:值得思考——我们使用的工具,我们真的理解它吗?
十、总结
NanoClaw 是一个有明确观点的项目:
- 安全应该是 OS 级的,不是应用级的 ✅ 有道理
- 代码库应该小到能完全理解 ✅ 有道理
- 为一个人而建,不是为所有人 — 这是和 OpenClaw 最根本的分歧
OpenClaw 选择做平台(多渠道、多模型、插件生态),NanoClaw 选择做个人工具(极简、单模型、fork-and-modify)。
两种哲学都有道理,取决于你是想要一个"开箱即用的瑞士军刀"还是"你完全理解的一把好刀"。