NanoClaw:极简代码对抗OpenClaw的轻量化方案

用户头像
至顶AI实验室
 · 北京  

Gavriel Cohen在一个周末里开发了NanoClaw,这是OpenClaw的轻量化替代方案。他是在了解到这个流行智能体框架存在安全漏洞后做出的决定。

在本期The New Stack Agents节目中,我们与Cohen讨论了他如何构建NanoClaw、如何使用它,以及从这次经历中学到的关于编程未来的见解。

Cohen是AI营销机构Qwibit的联合创始人,他已经在使用智能体处理所有事务——运营、研究、销售管道、客户管理和文档编写。为此,他使用了Claude Code,但他希望为公司中的非技术用户创建一个更友好的界面。

"在开始使用OpenClaw之前,我就有个想法,希望能有容器和智能体在一台始终运行的后台机器上工作,"他说。大约在同一时间,Clawdbot(后来更名为OpenClaw)发布了,似乎为所有这些需求提供了答案。

"我开始运行它,然后立即意识到这正是我和我的联合创始人需要的,它为我们提供了一个非常易于使用的界面来访问销售数据和销售管道。"

Cohen说,在设置Clawdbot的第一个晚上他睡得并不安稳。在设置项目时,他注意到Clawdbot添加了他几个月前创建的一个小型GitHub包:一个基于Gemini的PDF编辑工具,只有几百个星标且最近没有活动。

"作为开发者,我添加到软件中的每一个依赖项都会进行审查,"Cohen说。"既然他们添加了我的包,而任何审查它的人都不应该添加——我立即意识到,这令人担忧。"

他还注意到,原始Clawdbot连接到他WhatsApp账户的方式意味着它不仅存储了他告诉智能体监控的群组消息,还将所有消息存储在本地数据库中。

到那时,Clawdbot的代码库已经膨胀到大约35万行,这些代码在几周内通过AI生成。

"这打破了使开源工作的基本原理,"Cohen说。"代码在那里,人们查看代码。但当代码编写如此快速且监督如此少时,没有其他人能够审计40万行代码。"

然而,他认为最大的问题是架构性的:智能体之间没有隔离。家庭WhatsApp群组中的智能体和连接到工作存储库的智能体运行在同一环境中,仅通过应用级别的阻隔而不是操作系统级别的沙箱分离。

这一见解成为了NanoClaw的基础。

NanoClaw的核心原则

NanoClaw于一月下旬在GitHub上发布,现在已有近1万个星标。核心原则是彻底的极简主义:大约几百行实际代码,少量依赖项,每个智能体都在自己的容器内运行。

"我只会放入我需要的代码,别无其他,"Cohen说。"你运行的每一行代码都是为你而存在的代码。没有一行代码是为了支持其他人而存在的。"

基于Claude Code构建的NanoClaw跳过了典型的安装向导、配置文件和插件系统。设置通过Claude Code技能运行,这是一个Markdown指令文件,指导Claude引导用户完成过程,在过程中提出问题。Apple Containers还是Docker?也有相应的技能文件。想要在WhatsApp之外添加Telegram?运行/add-telegram,Claude会引导你完成过程并构建集成。

整个项目的源代码约35,000个Token,大约是Claude Code的20万Token上下文窗口的17%。这意味着编码智能体可以引入完整的代码库,完全理解它,并一次性完成大多数功能。相比之下,OpenClaw的40万行代码库会跨越多个上下文窗口。

Cohen正在进一步推进这一点。他告诉我们,下一次重构将从核心中剥离WhatsApp并删除文件挂载代码,留下约2000行的无头运行时。集成和功能通过技能在构建时添加,因此每个用户的部署只包含它实际运行的代码。

"如果一个软件添加了你不需要的所有功能,那么这个软件对你来说就变得更糟了,"Cohen说。"它是一个更大的包,更不安全——而且你不需要它。"

智能体时代的编程原则

构建NanoClaw强化了Cohen一直在思考的事情:AI智能体将从根本上改变开发者编写和维护代码的方式。Cohen之前是Wix的全栈工程师。

以DRY(不要重复自己)为例。Cohen认为,当编写和测试代码成本高昂时,这是有意义的。但当与编码智能体一起使用时会产生副作用,因为当编码智能体编辑共享函数时,它们倾向于进行更改并继续前进,从不考虑下游影响。重复代码消除了这类副作用。

"维护重复代码的开销不再那么昂贵了,"Cohen说。"你可以在上面运行Claude Code,它会在整个过程中应用相同的更改。"

严格的文件长度限制是另一个可能需要改变的领域。Cohen说,在他早期使用Claude Code时,他设置了每个文件最多120行的限制。但结果是智能体花在重构以保持在限制之下的时间比构建功能的时间更多。今天的模型可以通过有针对性的编辑处理500到1000行的文件,使旧规则适得其反。

Cohen还认为,当每三到六个月就有更好更便宜的模型出现时,给定代码片段的价值正在快速下降。他认为,今天有效的代码不需要经受时间的考验。一年后,一个更好的智能体将能够简单地重写它。

"我们今天编写的代码不需要经受未来数年的时间考验,"他说。

技能文件中的新原则

Cohen倡导的一个新原则是:在Markdown技能文件中不要有代码块。

这作为Anthropic的SKILL.md标准的一部分是可以的,但他说,往往会发生的情况是脚本悄悄进入指令文档。然后Claude读取代码,将其写回到bash工具,并执行它。这个过程只会引入错误,特别是当上下文窗口填满时。

解决方案:Markdown文件引用外部脚本,每个脚本只输出几行状态和一个日志文件,而不是用原始终端输出填满Claude的上下文。当Claude因某些原因需要更多上下文时,它可以查看日志文件。

在NanoClaw的设置过程中,从Markdown文件中移除代码将Token消耗减少到3000,从之前的3万到10万。

未来发展

该项目现在有一群常规贡献者,Cohen说路线图的重点是进一步缩小核心并使其更容易构建。目标是一个如此小的运行时,以至于企业安全团队可以在一个下午内审计它,在白板上绘制完整架构,并验证每一行。

"我希望公司能够建立在NanoClaw之上,"他说。"任何人都可以建立在其上的简单基础设施。"

至于Cohen自己是否会建立这些公司中的一家,他说困难的部分不是找到机会。

"困难的问题是,哪家公司?"他说。"因为有太多选择了。"

Q&A

Q1:NanoClaw是什么?它与OpenClaw有什么区别?

A:NanoClaw是由Gavriel Cohen开发的轻量化智能体框架,是OpenClaw的替代方案。它的核心原则是极简主义,只有几百行实际代码和少量依赖项,每个智能体在独立容器中运行。相比OpenClaw的35万行代码,NanoClaw更安全、更容易审计。

Q2:为什么Cohen认为传统的编程原则在AI时代需要改变?

A:Cohen认为在AI智能体时代,一些传统原则变得不适用。比如DRY原则,虽然避免重复代码在过去很重要,但现在重复代码反而能避免智能体编辑共享函数时产生的副作用。另外,严格的文件长度限制也会让智能体把过多时间花在重构而非功能开发上。

Q3:NanoClaw如何实现更好的安全性?

A:NanoClaw通过几个方面实现更好的安全性:首先是彻底的极简主义,只包含必需的代码;其次是容器级隔离,每个智能体运行在独立容器中;第三是可审计性,整个项目源代码只有35000个Token,企业安全团队可以在一个下午内完全审计。