NanoClaw:回到初心,构建属于你的 OpenClaw

引言

OpenClaw 早已不只是开发者的玩具。越来越多的普通用户开始尝试这个 AI 助手,但安装配置过程却成了一大门槛——各种依赖冲突、环境配置、权限问题让人望而却步。

NanoClaw 的诞生正是为了解决这个痛点:让 Claude Code 来帮你完成整个安装部署。你不需要手动编辑配置文件,也不需要理解复杂的依赖关系,只需简单的自然语言交互,AI 就能自动搞定一切。

当然,这引出了另一个问题:普通用户往往连 Claude Code 都没有,甚至可能不知道如何打开命令行。所以 NanoClaw 的定位更偏向于有技术背景、追求极简和安全的用户群体。

除了安装门槛,OpenClaw 还面临另一个困境:经过持续的功能堆砌,它已经变成了一座"人类难以读完的屎山"。其中大量需求可能是 Peter 个人或国外用户特有的,对于普通用户来说反而成了负担。

NanoClaw 选择了一条不同的路:回到 OpenClaw 的初心,用极简主义重构核心功能,打造最小可用原型。每个用户都可以从这个"最小公约数"出发,构建属于自己的定制化 “OpenClaw”。

今天我们要介绍的 NanoClaw,正是这样一次回归初心的实践。相比 OpenClaw 近 73 万行的核心代码,NanoClaw 仅用约 7500 行 TypeScript 就实现了核心功能,主打安全隔离简洁易懂两大特性。本文将深入剖析 NanoClaw 的架构设计、安装流程和核心机制。


一、项目概览

1.1 什么是 NanoClaw?

NanoClaw 是一个轻量级 AI 助手,可以简单理解为"运行在容器中的 Claude Code"。它的核心理念是:小巧,安全、可定制

特性 说明
小巧易懂 单一进程,少量源文件。无微服务、无消息队列、无复杂抽象层
安全隔离 Agent 运行在 Linux 容器中(macOS 用 Apple Container 或 Docker),只能看到被明确挂载的内容
为单一用户打造 不是框架,是可工作的软件,完全符合个人需求
定制即代码修改 没有繁杂的配置文件,想要不同行为直接修改代码
AI 原生 由 Claude Code 指导安装,无需传统安装向导

1.2 与 OpenClaw 的对比

维度 OpenClaw NanoClaw
代码量 ~728,000 行 (src/) ~7,500 行 (src/)
模块数量 52+ 个模块 少数几个核心文件
依赖项 45+ 个 极少数
配置文件 8 个配置管理文件 无配置文件
理解时间 数小时 8 分钟内
安全级别 应用级(白名单,配对码) 操作系统级隔离(容器)
渠道支持 15+ 个渠道 多渠道(WhatsApp/Telegram/Discord/Slack/Gmail)

从对比中可以清晰看出,NanoClaw 选择了做减法的设计哲学——去掉一切不必要的抽象,让代码本身成为最好的文档。


二、快速开始

2.1 安装方式:为什么用 Claude 来部署?

NanoClaw 的安装过程充分体现了"AI 原生"的设计理念。你可能会问:为什么要用 Claude Code 来部署,而不是传统的安装脚本或 Docker Compose?

传统部署的痛点:

AI 部署的优势:

安装命令:

git clone https://github.com/qwibitai/nanoclaw.git
cd nanoclaw
claude

进入 Claude Code 后,只需运行:

/setup

Claude Code 会自动处理:依赖安装、身份验证、容器设置,服务配置。整个过程无需手动编辑配置文件。

2.2 运行方式

claude

启动后,通过 WhatsApp 发送消息与它对话(使用触发词 @Andy)。

2.3 系统要求


三、Setup 模块详解

Setup 是 NanoClaw 的安装向导核心,位于 .claude/skills/setup/ 目录下,包含 15 个精心设计的 TypeScript 文件。

3.1 核心文件功能

文件 职责
index.ts 入口文件,负责调度各个步骤
environment.ts 检查环境:OS、Node、Docker/Apple Container、已有配置
platform.ts 平台检测:WSL、headless、命令是否存在
container.ts 构建容器镜像并测试运行
whatsapp-auth.ts WhatsApp 认证流程(QR 码或配对码)
groups.ts 初始化群组
register.ts 注册服务
mounts.ts 配置挂载白名单
service.ts 配置开机启动(launchd/systemd)
verify.ts 验证安装

3.2 安装步骤顺序

运行 /setup 时,Claude Code 按顺序执行以下步骤:

environment → container → whatsapp-auth → groups → register → mounts → service → verify

3.3 关键部署步骤详解

整个安装过程被分解为多个独立的检查和配置环节。Claude Code 会逐步引导你完成每一步,确保系统环境满足要求。

3.3.1 容器环境准备

这一步负责准备 AI Agent 的运行环境。NanoClaw 依赖容器技术来实现安全隔离,所以需要确保 Docker 或 Apple Container 已正确安装并可用。

Claude Code 会自动检测你系统中安装了什么容器运行时,帮你处理镜像拉取和配置。如果遇到网络问题导致镜像下载失败,它会建议切换镜像源或自动重试。同时它会检查磁盘空间是否充足,避免构建过程中因为空间不足而失败。

3.3.2 WhatsApp 认证

这是 NanoClaw 与用户建立连接的关键步骤。通过 WhatsApp,你可以随时随地与你的 AI 助手对话。

Claude Code 会引导你完成 WhatsApp 账号的认证,支持 QR 码扫描和配对码两种方式。它会实时显示认证状态,如果遇到问题会给出具体的原因分析和解决方案。整个过程就像有一个经验丰富的工程师在旁边指导你一样。

3.3.3 挂载目录配置

这是 NanoClaw 安全模型的核心设计。每个 AI Agent 都运行在独立的容器中,只能访问你明确授权的目录。这个设计确保了即使 AI 出了问题,也不会影响到系统的其他部分。

在这一步,Claude Code 会了解你的使用场景——比如你想让它访问哪些项目文件夹、文档目录等,然后帮你配置最小必要的访问权限。它不会一股脑地把整个硬盘都挂载进去,而是根据实际需求来设置。

3.3.4 服务注册与开机启动

配置好之后,还需要让 NanoClaw 能够在系统启动时自动运行,不需要每次手动启动。

在 macOS 上,这需要创建一个 launchd 服务配置;在 Linux 上则是 systemd。Claude Code 会根据你的操作系统自动生成正确的配置文件,处理各种权限问题,确保服务能够正常注册并开机自启。

3.3.5 环境检查汇总

检查项 说明 作用
PLATFORM macOS / Linux / WSL 识别操作系统,选择对应的安装逻辑
CONTAINER_RUNTIME Docker / Apple Container 检测可用的容器运行时
NODE_VERSION 要求 20+ 确保 Node.js 版本满足要求
ENV_FILE .env 是否存在 管理敏感配置和凭证
AUTH_STORE 认证凭证目录 存储 WhatsApp 等服务的认证信息
REGISTERED_GROUPS 已注册群组 管理对话群组及其配置
IS_HEADLESS 是否无显示器 在服务器环境下跳过需要显示器的步骤
SERVICE_MANAGER launchd / systemd 注册开机自启动服务

四、核心架构设计

4.1 单一进程架构

NanoClaw 的核心文件结构极其精简:

src/
├── index.ts            # 编排器:状态、消息循环、Agent 调用
├── channels/
│   └── whatsapp.ts     # WhatsApp 连接、认证、收发
├── ipc.ts              # IPC watcher 和任务处理
├── router.ts           # 消息格式化和出站路由
├── config.ts           # 触发模式、路径、间隔
├── container-runner.ts # 生成带挂载的 Agent 容器
├── task-scheduler.ts   # 运行定时任务
└── db.ts               # SQLite 操作

这种设计的优势在于:所有逻辑都在眼前,没有隐藏的魔法

4.2 容器隔离安全模型

这是 NanoClaw 最核心的安全机制。即使 Agent 通过 Bash 访问系统,所有命令都在容器内执行,无法触及宿主机上未被挂载的文件。

4.3 Agent Swarms(智能体集群)

NanoClaw 是首个支持 Agent Swarms 的 AI 助手,可轻松组建智能体团队,在聊天中高效协作。

重要前提:NanoClaw 的 Agent Swarms 不是独立实现的功能,而是基于 Anthropic Claude Agent SDK 的 Agent Teams 能力,加上 NanoClaw 特有的容器隔离和多通道支持。

工作流程:

用户请求 → NanoClaw (消息入口) → Container Runner (创建隔离容器) → Claude Agent SDK (处理 Agent Teams) → 多个 Subagents 并行协作

关键限制:

特性 Claude Code Agent Teams NanoClaw Swarms
隔离级别 进程级 容器级(更强)
持久化 内存 SQLite + 文件系统
消息通道 终端 WhatsApp/Telegram
Telegram 支持 单身份 多 Bot 独立身份
定时任务 不支持 task-scheduler.ts
记忆存储 会话级 conversations/ 长期保存

4.4 计划任务支持

通过 task-scheduler.ts 管理周期性自动执行任务,适合定时报告、数据同步等场景。


五、Skills 技能系统

这里需要澄清一个重要概念:NanoClaw 的 Skills 是提供给 Claude Code 使用的,而不是 NanoClaw 本身的功能模块

要理解这一点,关键在于区分 NanoClaw 的两层架构:

换句话说,NanoClaw 搭建了一个"舞台",但真正在"舞台上表演"的是 Claude Code。Skills 就是 Claude Code 的"剧本"——告诉它遇到什么情况该怎么处理。

放在项目 .claude/skills/ 目录下的 Skills,NanoClaw 和 Claude Code 都能用。Claude Code 在容器中执行时,会自动加载这些 Skills 来扩展自己的能力。

5.2 NanoClaw 内置的 Claude Code Skills

Skill 功能 使用场景
/setup 首次安装、认证、服务配置 新用户初始化
/customize 添加渠道、集成、改变行为 个性化定制
/debug 容器问题、日志、故障排查 运维排错
/update 拉取上游更新、合并自定义、运行迁移 版本升级

5.3 “自由生长"的设计理念

NanoClaw 采用一种独特的协作模式:

这意味着 NanoClaw 不是一个"成品软件”,而是一个可进化的生命体。它的能力边界不是由开发者预设的,而是由用户和 AI 共同探索出来的。


六、NanoClaw 的内置能力

除了依赖 Claude Code 的 Skills,NanoClaw 核心本身也提供了一些基础能力。

6.1 内置工具(Tools)

工具 功能 对应源文件
Bash 在容器中执行 shell 命令 container-runner.ts
Read/Write/Edit 文件系统操作(受挂载白名单限制) container-runner.ts
IPC Watcher 监听任务文件变化,触发 Agent 执行 ipc.ts
Database SQLite 读写操作 db.ts
Message Router 发送消息到 WhatsApp/Telegram router.ts + channels/*.ts

6.2 与 OpenClaw 能力的对比

OpenClaw 能力 NanoClaw 处理方式 说明
Memory 记忆系统 ❌ 核心不包含 需要用户通过 Skills 自行实现
Heartbeat 心跳任务 ⚠️ 部分支持 task-scheduler.ts 支持定时任务
Cron 定时任务 ✅ 原生支持 task-scheduler.ts
Multi-channel 多渠道 ⚠️ 多渠道 WhatsApp/Telegram/Discord/Slack/Gmail
RAG 知识库 ❌ 不包含 需要用户自行集成
Self-improvement 自我改进 ❌ 不包含 NanoClaw 保持极简

6.4 设计哲学:最小公约数

NanoClaw 刻意不内置太多高级功能,原因如下:


七、与 OpenClaw 生态的兼容性

7.1 兼容性分析

维度 兼容程度 说明
Skills API ⚠️ 部分兼容 基础工具兼容,高级功能依赖 OpenClaw 运行时
配置文件格式 ❌ 不兼容 NanoClaw 无配置文件
数据库 Schema ❌ 不兼容 PostgreSQL vs SQLite
渠道适配器 ❌ 不兼容 架构完全不同
Memory 存储 ❌ 不兼容 无法直接迁移

7.5 总结

NanoClaw 不是 OpenClaw 的 drop-in 替代品。它的设计哲学是:

“给我一个最小可用的核心,剩下的我自己来。”

如果你已经深度依赖 OpenClaw 的生态(几十个 Skills、复杂的记忆系统、多渠道路由),迁移到 NanoClaw 需要一定工作量。

但如果你想要:

那么 NanoClaw 是一个更好的起点。


八、总结

NanoClaw 是对 OpenClaw 的一次成功的精简重构,其核心价值体现在三个方面:

此外,AI 原生的设计理念让安装和使用变得异常简单——自然语言交互即可完成所有操作。

如果你是一位追求简洁,安全、可控的个人用户,NanoClaw 值得一试。


参考资料