📌 项目地址:nanocoai/nanoclaw | ⭐ 29,523 颗星 | 🔧 TypeScript | 📜 MIT
不是50万行代码,是几个源文件
我花15分钟扫了一遍NanoClaw的代码目录。它不是一个框架,是一个你能读完的AI代理系统。
作者在README里表明了不信任OpenClaw的理由:接近50万行代码,53个配置文件,70多个依赖。代理跑在同一个Node进程里共享内存,安全靠的是应用层的白名单和配对码,不是操作系统层面的隔离。
NanoClaw没去修OpenClaw的功能,而是用对等的功能从零写了一个你能读完的项目。29523个星不是靠营销刷的,是实用的人堆出来的。
容器隔离不是特性,是架构选择
大多数AI代理框架的安全模型是写规则:允许读哪些目录、禁止执行哪些命令、开放哪些端口。规则越写越多,边界情况永远覆盖不完。
NanoClaw把底层换了:每个代理启动在自己的Linux容器里。文件系统隔离、进程隔离、网络隔离。代理被注入恶意指令,攻击者拿到shell也跑不出容器。多个代理默认看不见对方的数据。
代价在README里写得很清楚:
- 只能在有Docker的Linux上跑。macOS和Windows不支持。
- 只支持Claude代理(Anthropic API)。不能用GPT和Gemini。
- 代码少意味着功能少。OpenClaw那种几十个插件的扩展能力,NanoClaw没有。
你需要同时用多个模型或者是跨平台的部署环境,不用选它。
一条命令从零到能用,出错自动用Claude修
git clone https://github.com/nanocoai/nanoclaw.git nanoclaw-v2
cd nanoclaw-v2
bash nanoclaw.sh
这条命令自动做了这些:检测Node、pnpm、Docker有没有装,没装就装;注册Anthropic凭证到OneCLI;构建代理容器;连接你选的通信渠道(Telegram、Discord、WhatsApp或本地CLI)。
作者特意提了一个细节:如果某一步失败,Claude Code会被自动调用,诊断日志并从断点继续执行,不是简单重试。我试了下,这事情比看上去复杂——脚本需要处理Node版本、Docker网络、API凭证注册这些容易出错的环境差异。
还有一个细节:README里写了“Run the script directly, not from inside a Claude session”。作者知道用户会怎么跑这个脚本,所以预先处理了交互式提示和真实shell I/O在Claude session里跑不动的限制。
从v1升级到v2:脚本做确定性工作,AI做判断
如果你在用NanoClaw v1,迁移脚本migrate-v2.sh把工作分成两部分。
脚本自动做的:合并.env,把v1的registered_groups数据导入v2数据库,复制群组文件夹、会话数据、定时任务,安装你选的渠道适配器,复制渠道认证状态(WhatsApp的Baileys keystore保留,LID映射由Baileys v7适配器每消息解析,不是迁移过去的),构建新代理容器。
脚本交给Claude Code做的:设置owner,清理CLAUDE.local.md,如果你fork过项目并做了自定义改动,重放这些改动。
迁移完成后脚本会问你是否切换到v2系统服务。v1安装不会被碰,两边可以并行测试。
这种分工在代理系统里是合理的:会话密钥、定时任务、用户映射这些数据一旦出问题就丢东西,全自动迁移风险太大,全手动又太麻烦。确定的部分脚本跑,需要工程判断的交AI。
我的判断
NanoClaw适合的用户:你理解Linux容器,信任操作系统级别的隔离,不愿意把自己的机器交给几十万行你读不完的代码。
你能不用依赖Star数和文档质量来判断一个基础设施项目是否安全,这个项目就值得花15分钟看完代码。
如果你只需要一个能跑的AI助手,不在乎代码能不能读完,或者你需要多模型支持、跨平台部署,别选它。