## 一、一个令人不安的事实
OpenClaw 是一个令人印象深刻的项目,愿景宏大。但作者 Gavriel Cohen 无法安心使用它——
**一个他不了解、却能访问他个人隐私的软件。**
看看 OpenClaw 的架构:
- 52+ 个模块
- 8 个配置管理文件
- 45+ 个依赖项
- 15 个渠道提供商的抽象层
- 所有东西在一个共享内存的 Node 进程中运行
- 安全是**应用级别**的(白名单、配对码),而非操作系统级别的隔离
这意味着:如果某个模块出问题,整个系统都可能被波及。你的文件、日历、消息——所有东西都在同一个进程里。
**NanoClaw 的诞生,就是为了解决这个问题。**
## 二、NanoClaw 是什么?
NanoClaw 是一个**轻量级、容器化、AI 原生**的个人 AI 助手。
| 维度 | OpenClaw | NanoClaw |
|------|----------|----------|
| 代码量 | 52+ 模块,数万行 | **单一进程,少量文件** |
| 配置 | 8 个配置文件 | **无配置文件** |
| 安全 | 应用级权限检查 | **OS 级容器隔离** |
| 依赖 | 45+ | 最小化 |
| 理解时间 | 数天 | **8 分钟** |
**核心特点:**
1. **小巧易懂** —— 代码库小到你能真正读完
2. **容器隔离** —— Agent 运行在真实 Linux 容器中,不是权限检查
3. **AI 原生** —— 没有安装向导、监控仪表盘或调试工具,直接问 Claude
4. **技能优于功能** —— 不添加功能,而是添加技能来改造你的 fork
## 三、设计哲学:少即是多
### 1. 通过隔离保障安全
传统方式:
```
应用层安全检查 → 允许/拒绝操作
└── 如果检查代码有 bug,整个系统暴露
```
NanoClaw 方式:
```
Agent 运行在容器中 ──→ 只能看到被挂载的内容
└── 即使容器被攻破,宿主机仍然安全
```
**容器运行时:**
- macOS: Apple Container 或 Docker
- Linux: Docker
所有命令都在容器内执行,不会直接操作宿主机。
### 2. 为单一用户打造
这不是一个框架,是一个**完全符合个人需求的、可工作的软件**。
> "您可以 Fork 本项目,然后让 Claude Code 根据您的精确需求进行修改和适配。"
每个人的 NanoClaw 都应该是独一无二的——只做你需要的事,没有多余功能。
### 3. 定制即代码修改
**没有配置文件。**
想要不同的行为?直接修改代码。代码库足够小,这样做是安全的。
| 传统软件 | NanoClaw |
|---------|---------|
| 编辑 `config.yaml` | 告诉 Claude "把触发词改成 <span class="mention-invalid">@Bob</span>" |
| 查阅文档了解选项 | 直接描述你想要的行为 |
| 被不支持的功能困扰 | 删除不需要的代码 |
### 4. AI 原生
| 传统软件 | AI 原生 |
|---------|---------|
| 安装向导 | Claude Code 指导安装 |
| 监控仪表盘 | 直接问 Claude "系统状况如何?" |
| 调试工具 | 描述问题,Claude 修复它 |
## 四、核心功能
### 已内置
- **WhatsApp 输入/输出** —— 通过手机给 Claude 发消息
- **隔离的群组上下文** —— 每个群组独立 `CLAUDE.md` 记忆和文件系统
- **主频道** —— 私有频道(self-chat)用于管理控制
- **计划任务** —— 周期性作业,可回发消息
- **网络访问** —— 搜索和抓取网页
- **容器隔离** —— Apple Container 或 Docker 沙箱
- **智能体集群(Agent Swarms)** —— 首个支持此功能的个人 AI 助手
### 通过技能添加
运行命令,Claude 会自动改造代码:
- `/add-gmail` —— 添加 Gmail 集成
- `/add-telegram` —— 添加 Telegram 支持
- `/add-slack` —— 添加 Slack
- `/add-discord` —— 添加 Discord
## 五、使用方法
### 快速开始
```bash
git clone https://github.com/qwibitai/nanoclaw.git
cd nanoclaw
claude
```
然后运行 `/setup`。Claude Code 会处理:依赖安装、身份验证、容器设置、服务配置。
### 与助手对话
使用触发词(默认为 `@Andy`):
```
@Andy 每周一到周五早上9点,给我发一份销售渠道的概览
@Andy 每周五回顾过去一周的 git 历史,如果与 README 有出入,就更新它
@Andy 每周一早上8点,从 Hacker News 收集 AI 资讯,发给我简报
```
### 管理群组和任务
在主频道(self-chat)中:
```
@Andy 列出所有群组的计划任务
@Andy 暂停周一简报任务
@Andy 加入"家庭聊天"群组
```
### 定制
直接告诉 Claude Code:
- "把触发词改成 <span class="mention-invalid">@Bob</span>"
- "记住以后回答要更简短直接"
- "当我说早上好的时候,加一个自定义问候"
- "每周存储一次对话摘要"
或运行 `/customize` 进行引导式修改。
## 六、架构:极简主义的艺术
```
WhatsApp (baileys) --> SQLite --> 轮询循环 --> 容器 (Claude Agent SDK) --> 响应
```
**单一 Node.js 进程。**
| 文件 | 职责 |
|------|------|
| `src/index.ts` | 编排器:状态管理、消息循环、智能体调用 |
| `src/channels/whatsapp.ts` | WhatsApp 连接、认证、收发消息 |
| `src/ipc.ts` | IPC 监听与任务处理 |
| `src/router.ts` | 消息格式化与出站路由 |
| `src/group-queue.ts` | 各带全局并发限制的群组队列 |
| `src/container-runner.ts` | 生成流式智能体容器 |
| `src/task-scheduler.ts` | 运行计划任务 |
| `src/db.ts` | SQLite 操作(消息、群组、会话、状态)|
| `groups/*/CLAUDE.md` | 各群组的记忆 |
**关键设计:**
- 每个群组的消息队列都带有全局并发控制
- 通过文件系统进行进程间通信(IPC)
- Agent 在具有挂载目录的隔离 Linux 容器中执行
## 七、Agent Swarms:智能体集群
NanoClaw 是**首个支持 Agent Swarms 的个人 AI 助手**。
这意味着你可以:
- 启动多个专业智能体
- 让它们协作完成复杂任务
- 每个智能体在自己的容器中运行,拥有独立的上下文
例如:
```
@Andy 启动一个研究团队,分析这个市场机会
→ Agent 1: 研究竞争对手
→ Agent 2: 分析市场规模
→ Agent 3: 评估技术可行性
→ 汇总结果,生成报告
```
## 八、贡献:技能而非功能
**核心理念:不要添加功能,而是添加技能。**
如果你想添加 Telegram 支持:
**❌ 错误方式:**
创建一个 PR,在代码库中同时添加 Telegram 和 WhatsApp 支持。
**✅ 正确方式:**
贡献一个技能文件 `.claude/skills/add-telegram/SKILL.md`,教 Claude Code 如何改造 NanoClaw 以使用 Telegram。
然后用户在自己的 fork 上运行 `/add-telegram`,得到**只做他们需要事情的整洁代码**,而不是一个试图支持所有用例的臃肿系统。
### 希望看到的技能
**通信渠道**
- `/add-telegram` —— 添加 Telegram,可选择替换 WhatsApp 或作为额外渠道
- `/add-slack` —— 添加 Slack
- `/add-discord` —— 添加 Discord
**平台支持**
- `/setup-windows` —— 通过 WSL2 + Docker 支持 Windows
**会话管理**
- `/add-clear` —— 添加 `/clear` 命令,用于压缩会话
## 九、FAQ
**Q: 为什么是 WhatsApp 而不是 Telegram/Signal?**
A: 因为我用 WhatsApp。Fork 这个项目然后运行一个技能来改变它。正是这个项目的核心理念。
**Q: 这个项目安全吗?**
A: 智能体在容器中运行,而不是在应用级别的权限检查之后。它们只能访问被明确挂载的目录。代码库小到你可以真正审查它。
**Q: 为什么没有配置文件?**
A: 我们不希望配置泛滥。每个用户都应该定制它,让代码完全符合他们的需求,而不是去配置一个通用的系统。
**Q: 我该如何调试问题?**
A: 问 Claude Code。"为什么计划任务没有运行?" "最近的日志里有什么?" 这就是 AI 原生的方法。
## 十、结语:软件的新范式
NanoClaw 代表了一种新的软件设计哲学:
**在 AI 能写代码的时代,软件应该小到人类能理解,让 AI 来负责定制和扩展。**
不是做一个包罗万象的框架,而是做一个最小化的核心,让每个人都能拥有完全符合自己需求的版本。
**关键启示:**
- 安全通过隔离实现,而非权限检查
- 定制通过代码修改实现,而非配置文件
- 功能通过技能添加实现,而非功能膨胀
- 调试通过对话实现,而非工具
这就是 AI 原生软件的未来。
---
## 参考
- GitHub: https://github.com/qwibitai/nanoclaw
- 官网: https://nanoclaw.dev
- Discord: https://discord.gg/VDdww8qS42
---
*你会考虑用 NanoClaw 替代 OpenClaw 吗?或者你已经尝试过其他轻量级 AI 助手方案?欢迎在评论区分享你的想法。*
登录后可参与表态
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!