Skip to content

7장 경량 솔루션: 에이전트가 "슬림 다운"되기 시작할 때

핵심 질문: OpenClaw에는 500,000줄의 코드가 있는데 에이전트가 작동하려면 최소 몇 줄이 필요합니까?

1. 왜 "체중 감량"을 해야 할까요?

이동성 스쿠터를 사고 싶다고 상상해보십시오. OpenClaw는 고급 RV와 같습니다. 주방, 욕실, 침실을 갖추고 있으며 가족이 수용할 수 있습니다. 하지만 때로는 공유 자전거가 필요한 경우도 있습니다.

OpenClaw의 "무게":

  • 약 500,000줄의 TypeScript 코드
  • 프로필 53개
  • 70개 이상의 종속성 패키지
  • 런타임 메모리 1GB+

이는 단점이 아니라 디자인 선택입니다. OpenClaw는 20개 이상의 채팅 채널, 복잡한 권한 시스템, 기업 수준의 기능을 지원해야 합니다. 그러나 많은 장면에서 이는 너무 무겁습니다.

'체중 감량'이 필요한 경우:

🌡️ 시나리오 1: Raspberry Pi에서 에이전트 실행 30위안 라즈베리 파이에 스마트 홈 어시스턴트를 구축하고 싶습니다. 512MB RAM을 사용하는 OpenClaw는 시작조차 어렵습니다.

📚 시나리오 2: 학습 원리 Agent의 작동 방식을 이해하고 싶습니다. 50만 줄의 코드를 마주하는 것은 보잉 747 전체를 연구하여 비행기의 메커니즘을 이해하려는 것과 같았습니다. 너무 복잡했습니다.

시나리오 3: 단순한 요구사항 에이전트가 하루에 한 번 물을 마시고 주간 보고서를 작성하도록 상기시켜 주기를 원합니다. 20개 채널도 필요 없고 복잡한 엔터프라이즈 기능도 필요하지 않습니다.

이는 흥미로운 질문으로 이어집니다. 에이전트의 최소 요구 사항은 무엇입니까? **

2. 세 가지 '체중 감량 성공 사례'

세 가지 성공적인 "체중 감량" 프로그램을 살펴보겠습니다.

프로젝트언어핵심 코드핵심 기능
나노클로타입스크립트~7,000라인단일 프로세스 + 컨테이너 격리
나노봇파이썬~4,000라인연구 친화적 + MCP
제로클로알 수 없음<5MB 内存

它们走的路线完全不同,但都保留了 Agent 的核心能力。

2.1 NanoClaw:用容器"隔离"复杂性

作者的想法:"OpenClaw 有近 50 万行代码、70+ 依赖。我可不敢把看不懂的代码全权托付给生活。"

NanoClaw 的解决思路很直接:既然控制权限很复杂,那就干脆隔离起来

核心设计:

① 单进程替代分布式 OpenClaw 有 Gateway 作为控制平面,功能模块之间通过 WebSocket 通信这很灵活,但也复杂。 NanoClaw 就一个大循环:轮询 SQLite 数据库 → 发现新消息 → 启动容器处理 → 返回结果。没有复杂的网络服务间通信,容器通过文件系统 IPC 与主机交互。

② 容器隔离替代权限配置 OpenClaw 靠应用层的配对码和允许列表进行访问控制,Agent 直接运行在主机上。这是应用层权限,配置复杂,还可能出漏洞。 NanoClaw 直接把 Agent 扔进 Docker 容器。Agent 能访问什么,完全看容器挂载了什么目录。这是操作系统级的隔离,简单且安全。

③ Skills 按需添加 NanoClaw 核心代码不包含任何渠道(Telegram、WhatsApp 等)。需要什么,用 Skills 安装: @@@000000@@@ 每个人的 NanoClaw 都是"私人定制",没有多余包袱。

实际用起来: @@@000001@@@

对话时用触发词 @@@000007@@@: @@@000002@@@

NanoClaw 的特色功能:

  • Agent Swarms:多个 Agent 协作完成任务
  • 每个群组独立记忆:每个聊天群组有自己的 CLAUDE.md
  • 定时任务:内置调度器

适合谁? 想要一个可控、可理解、安全的私人助理。

2.2 Nanobot:Python 党的"教科书"

如果说 NanoClaw 是用容器隔离复杂性,Nanobot 则是用清晰的代码结构让复杂性变得可理解。

项目背景:香港大学数据科学团队(HKUDS)开发,"比 OpenClaw 少 99% 代码,但核心功能都在"。

核心数据:

  • 约 4,000 行 Python 核心代码
  • Agent 核心逻辑(loop.py)约 500 行
  • 支持 Python 3.11+
  • PyPI 直接安装:@@@000008@@@

Nanobot 的设计哲学是"显式优于隐式"。每个功能都写在明处:

Agent 循环(核心逻辑):

  1. 从消息队列接收消息
  2. 构建上下文(系统提示词 + 历史记录 + 记忆 + Skills)
  3. 调用 LLM
  4. 执行工具调用
  5. 返回结果

代码结构清晰得像教科书: @@@000003@@@

多渠道支持: Telegram、Discord、WhatsApp、飞书、钉钉、Slack、QQ、Email、Matrix。配置文件简单直接: @@@000004@@@

MCP 支持(亮点): Nanobot 原生支持 Model Context Protocol,可以连接外部工具服务器。比如文件系统 MCP: @@@000005@@@

适合谁? 想理解 Agent 原理的开发者、研究者。

2.3 ZeroClaw:把"轻"做到极致

如果 NanoClaw 是"精简",Nanobot 是"清晰",那 ZeroClaw 就是把"轻"做到了极致。

团队:哈佛、MIT、Sundai.Club 社区联合开发。

数字说话:

指标OpenClawNanoClawNanobotZeroClaw
内存>1GB~100MB~100MB<5MB
볼륨~28MB~100MB해당 없음~8.8MB
비용$599 맥일반 서버~$50$10 하드웨어

**어떻게 하나요? ** ZeroClaw는 Rust로 작성되었으며 단일 바이너리로 컴파일되었습니다. Node.js 런타임도 없고 Python 인터프리터도 없고 순수한 기계어 코드만 있습니다.

건축 디자인: ZeroClaw는 특성(trait) 기반 아키텍처를 사용합니다. 이는 "기능 인터페이스"로 이해될 수 있습니다.

  • 공급자 특성: 이 인터페이스가 구현되는 한 모든 LLM에 연결할 수 있습니다.
  • 채널 특성: 이 인터페이스가 구현되는 한 모든 채팅 채널에 액세스할 수 있습니다.
  • 도구 특성: 이 인터페이스가 구현되는 한 모든 도구를 추가할 수 있습니다.

즉, 다른 부품에 영향을 주지 않고 모든 구성 요소를 교체할 수 있습니다.

제조업체 독립적: ZeroClaw는 AI 공급업체와 연결되어 있지 않습니다. OpenAI, Anthropic, DeepSeek, Moonshot, Zhipu, vLLM, Ollama...를 지원하며 한 번의 클릭으로 전환할 수도 있습니다.

하드웨어 지원(고유한 장점): ZeroClaw는 임베디드 장치에서 직접 실행할 수 있습니다.

  • 라즈베리 파이
  • ESP32
  • STM32 개발 보드
  • 다양한 GPIO 주변기기

이는 에이전트가 센서 판독, 모터 제어, LED 조명 등 물리적 세계를 직접 제어할 수 있음을 의미합니다.

**누구에게 적합합니까? ** 임베디드 개발자, 비용에 민감한 시나리오 및 클라우드 공급업체를 신뢰하지 않는 사용자.

3. 핵심 절충안: 무엇이 "차감"되었나요?

"체중 감량"은 결코 공짜가 아닙니다. 에이전트를 500,000줄의 코드에서 수천 줄로 줄이면 뭔가가 희생되어야 합니다. 핵심은 다음과 같습니다. **이러한 희생은 그만한 가치가 있습니까? **

다음 표에는 주요 기능 측면에서 세 프로젝트 간의 장단점이 요약되어 있습니다.

기능적 차원오픈클로나노클로나노봇제로클로
건축Distributed, horizontally scalable단일 프로세스 + 컨테이너 격리단일 프로세스 모듈화단일 바이너리
권한엔터프라이즈급 RBAC컨테이너 격리("셀" 모드)단순 화이트리스트페어링 코드 + 허용 목록
채널내장 20+Core Zero 채널, 주문형 기술 설치활성화하도록 구성된 다중 채널특성 지원, 기본 CLI
기억벡터 데이터베이스 + 자동 임베딩각 그룹 CLAUDE.md 일반 텍스트SQLite 기본 검색Self-developed SQLite + FTS5 + vector
확장동적 플러그인 + 핫 업데이트플러그인 없음, 코드 직접 변경MCP 외부 도구특성 교체, 다시 컴파일 필요
종속성70개 이상의 패키지한 자리 핵심 종속성pip 선택적 설치컴파일 후 종속성 없음

절충에 대한 세 가지 다른 철학

NanoClaw: 관리를 격리로 대체

복잡한 권한 규칙을 구성하는 것보다 에이전트를 컨테이너에 직접 넣는 것이 더 좋습니다. "무엇을 할 수 있는지"는 구성 파일이 아닌 마운트 디렉터리에 따라 결정됩니다. 이는 보안에 대한 "기본 불신" 관점입니다. 당신은 새장에서 벗어날 수 없기 때문에 나는 당신을 모니터링하지 않을 것입니다.

Nanobot: 포괄적인 대신 명확성을 사용

코드는 교과서와 같으며 모든 기능이 명확하게 작성되었습니다. 가장 완벽한 기능을 요구하지 말고, 한눈에 쉽게 이해할 수 있는 기능을 요구하세요. 이것은 "이해성 우선" 디자인 개념입니다. 기능이 더 적으면 좋겠지만 각 코드 줄이 수행하는 작업을 이해하게 해주고 싶습니다.

ZeroClaw: 범용을 궁극기로 대체

<5MB 메모리, 단일 바이너리, 런타임 종속성 없음. 이는 "리소스 효율성 우선" 엔지니어링 관점입니다. 에이전트가 10위안 하드웨어에서 실행되기를 원합니다.

핵심 통찰력

경량 솔루션은 "모서리를 줄이는 것"이 아니라 우선순위를 재정의하는 것입니다.

  • 기업의 경우 규정 준수, 확장, 팀워크가 최우선 → OpenClaw 선택
  • 개인의 경우 단순성, 제어성, 충분한 사용이 최우선 → 경량 솔루션 선택

이는 휴대폰을 구입하는 것과 같습니다. 기업용 버전에는 MDM 관리 및 보안 강화 기능이 있지만 개인 사용자에게는 얇고 가벼우며 전력을 절약하고 저렴한 기본 버전만 필요할 수 있습니다.

**에이전트의 핵심 가치는 많은 기능을 갖는 것이 아니라 딱 맞는 것에 있습니다. **

4. 모델 선택에 대한 제안: 어떤 "자동차"가 필요합니까?

你的需求是什么?

    ├─→ "我想搞懂 Agent 原理"
    │       └─→ Nanobot(Python,代码像教科书)

    ├─→ "我要一个私人助理,安全可控"
    │       └─→ NanoClaw(容器隔离,AI-native)

    ├─→ "我要在树莓派/嵌入式设备上跑"
    │       └─→ ZeroClaw(<5MB 内存)

    ├─→ "我需要 MCP 协议支持"
    │       └─→ Nanobot(原生 MCP)

    └─→ "我要生产环境,功能最全"
            └─→ OpenClaw(20+渠道,生态完善)

5. 요약: 가장 적합한 것이 가장 좋은 것입니다

세 가지 프로젝트는 세 가지 다른 경로를 택했습니다.

  • NanoClaw: 컨테이너를 사용하여 복잡성을 분리하고 필요에 따라 기술을 추가합니다.
  • Nanobot: 명확한 코드로 복잡성을 이해하기 쉽게 만들고 MCP를 지원합니다.
  • ZeroClaw: Rust를 사용하여 리소스 사용을 극대화하고 하드웨어를 지원합니다.

그들은 한 가지를 증명합니다: 에이전트가 작동하는 데 500,000줄의 코드가 필요하지 않습니다.

물론 OpenClaw가 나쁘다는 것은 아닙니다. 이는 자동차를 구입하는 것과 같습니다. SUV가 필요할 때도 있고(OpenClaw), 자전거로 충분할 때도 있습니다(Lightweight Solution). 중요한 것은 올바른 도구를 선택하는 것입니다.