บทที่ 7 วิธีแก้ปัญหาแบบน้ำหนักเบา: เมื่อตัวแทนเริ่ม "ผอมลง"
คำถามหลัก: OpenClaw มีโค้ด 500,000 บรรทัด แต่ขั้นต่ำที่ Agent จะทำงานคือกี่บรรทัด
1. ทำไมเราจึงควร “ลดน้ำหนัก”?
ลองจินตนาการว่าคุณต้องการซื้อสกู๊ตเตอร์เคลื่อนที่ OpenClaw เปรียบเสมือนรถบ้านหรู มีห้องครัว ห้องน้ำ ห้องนอน และสามารถรองรับครอบครัวได้ แต่บางครั้งคุณแค่ต้องการจักรยานที่ใช้ร่วมกัน
** "น้ำหนัก" ของ OpenClaw:**
- โค้ด TypeScript เกือบ 500,000 บรรทัด
- 53 โปรไฟล์
- แพ็คเกจการพึ่งพามากกว่า 70 รายการ
- หน่วยความจำรันไทม์ 1GB+
นี่ไม่ใช่ข้อบกพร่อง แต่เป็นทางเลือกในการออกแบบ OpenClaw ต้องรองรับช่องทางแชทมากกว่า 20 ช่อง ระบบการอนุญาตที่ซับซ้อน และคุณสมบัติระดับองค์กร แต่หลายฉากนี่หนักเกินไป
เมื่อคุณต้องการ “ลดน้ำหนัก”:
🌡️ สถานการณ์ที่ 1: การรันเอเจนต์บน Raspberry Pi คุณต้องการสร้างผู้ช่วยในบ้านอัจฉริยะด้วย Raspberry Pi มูลค่า 30 หยวน ด้วย RAM ขนาด 512MB ทำให้ OpenClaw เริ่มต้นได้ยาก
📚 สถานการณ์ที่ 2: หลักการเรียนรู้ คุณต้องการทำความเข้าใจวิธีการทำงานของตัวแทน การเผชิญหน้ากับโค้ดจำนวน 500,000 บรรทัดก็เหมือนกับการพยายามทำความเข้าใจกลไกของเครื่องบินด้วยการศึกษาโบอิ้ง 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 循环(核心逻辑):
- 从消息队列接收消息
- 构建上下文(系统提示词 + 历史记录 + 记忆 + Skills)
- 调用 LLM
- 执行工具调用
- 返回结果
代码结构清晰得像教科书: @@@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 社区联合开发。
数字说话:
| 指标 | OpenClaw | NanoClaw | Nanobot | ZeroClaw |
|---|---|---|---|---|
| 内存 | >1GB | ~100MB | ~100MB | <5MB |
| ปริมาณ | ~28MB | ~100MB | ไม่มี | ~8.8MB |
| ราคา | 599 เหรียญ Mac | เซิร์ฟเวอร์ทั่วไป | ~$50 | ฮาร์ดแวร์ $10 |
**ทำอย่างไร? ** ZeroClaw เขียนด้วยภาษา Rust และคอมไพล์เป็นไบนารี่เดียว ไม่มีรันไทม์ Node.js ไม่มีล่าม Python เป็นเพียงโค้ดเครื่องล้วนๆ
การออกแบบสถาปัตยกรรม: ZeroClaw ใช้ สถาปัตยกรรมที่ขับเคลื่อนด้วยลักษณะ (ลักษณะ) สามารถเข้าใจได้ว่าเป็น "อินเทอร์เฟซความสามารถ":
- ลักษณะผู้ให้บริการ: ตราบใดที่มีการใช้อินเทอร์เฟซนี้ คุณสามารถเชื่อมต่อกับ LLM ใดก็ได้
- Channel Trait: As long as this interface is implemented, you can access any chat channel
- ลักษณะเครื่องมือ: ตราบใดที่มีการใช้อินเทอร์เฟซนี้ คุณสามารถเพิ่มเครื่องมือใดก็ได้
ซึ่งหมายความว่า: ส่วนประกอบทั้งหมดสามารถเปลี่ยนได้โดยไม่ส่งผลกระทบต่อชิ้นส่วนอื่นๆ
ผู้ผลิตอิสระ: ZeroClaw ไม่ได้เชื่อมโยงกับผู้จำหน่าย AI รายใด รองรับ OpenAI, Anthropic, DeepSeek, Moonshot, Zhipu, vLLM, Ollama... และยังสามารถสลับได้ด้วยคลิกเดียว
การสนับสนุนฮาร์ดแวร์ (ข้อได้เปรียบเฉพาะ): ZeroClaw สามารถทำงานได้โดยตรงบนอุปกรณ์ฝังตัว:
- ราสเบอร์รี่ปี่
- อีเอสพี32
- บอร์ดพัฒนา STM32
- อุปกรณ์ต่อพ่วง GPIO ต่างๆ
ซึ่งหมายความว่า Agent สามารถควบคุมโลกทางกายภาพได้โดยตรง: การอ่านเซ็นเซอร์ การควบคุมมอเตอร์ การส่องสว่าง LED
**เหมาะกับใครบ้าง? ** นักพัฒนาแบบฝัง สถานการณ์ที่คำนึงถึงต้นทุน และผู้ใช้ที่ไม่ไว้วางใจผู้จำหน่ายระบบคลาวด์
3. ข้อเสียเปรียบหลัก: อะไรที่ถูก "ลบออก"?
“การลดน้ำหนัก” ไม่เคยฟรี เมื่อคุณลดขนาดตัวแทนจากโค้ด 500,000 บรรทัดเหลือเพียงไม่กี่พันบรรทัด บางสิ่งจะต้องถูกเสียสละ สิ่งสำคัญคือ **การเสียสละเหล่านี้คุ้มค่าหรือไม่? **
ตารางต่อไปนี้สรุปข้อดีข้อเสียระหว่างสามโครงการในแง่ของฟังก์ชันหลัก:
| มิติการทำงาน | OpenClaw | นาโนคลอว์ | นาโนบอท | ซีโร่คลอว์ |
|---|---|---|---|---|
| สถาปัตยกรรม | กระจายและปรับขนาดได้ในแนวนอน | กระบวนการเดียว + การแยกคอนเทนเนอร์ | โมดูลาร์กระบวนการเดียว | ไบนารีเดี่ยว |
| สิทธิ์ | RBAC ระดับองค์กร | การแยกคอนเทนเนอร์ (โหมด "เซลล์") | รายการที่อนุญาตพิเศษ | รหัสการจับคู่ + รายการที่อนุญาต |
| ช่อง | ในตัว 20+ | Core Zero Channels ติดตั้งทักษะตามความต้องการ | หลายช่องสัญญาณ กำหนดค่าให้เปิดใช้งาน | การสนับสนุนลักษณะ CLI เริ่มต้น |
| ความทรงจำ | ฐานข้อมูลเวกเตอร์ + การฝังอัตโนมัติ | แต่ละกลุ่ม CLAUDE.md ข้อความธรรมดา | การค้นหาพื้นฐานของ SQLite | SQLite + FTS5 + vector ที่พัฒนาตนเอง |
| ส่วนขยาย | ปลั๊กอินแบบไดนามิก + อัพเดตสุดฮอต | ไม่มีปลั๊กอิน เปลี่ยนรหัสโดยตรง | เครื่องมือภายนอก MCP | การแทนที่ลักษณะต้องคอมไพล์ใหม่ |
| การพึ่งพา | 70+ แพ็คเกจ | การพึ่งพาหลักหลักเดียว | pip การติดตั้งเสริม | การพึ่งพาเป็นศูนย์หลังจากการคอมไพล์ |
ปรัชญาที่แตกต่างกันสามประการในการแลกเปลี่ยน
NanoClaw: แทนที่การจัดการด้วยการแยกส่วน
แทนที่จะกำหนดค่ากฎการอนุญาตที่ซับซ้อน ควรใส่ Agent ลงในคอนเทนเนอร์โดยตรงจะดีกว่า "สิ่งที่สามารถทำได้" จะถูกกำหนดโดยไดเร็กทอรีเมานท์ ไม่ใช่ไฟล์คอนฟิกูเรชัน นี่คือมุมมองด้านความปลอดภัย "ความไม่ไว้วางใจเริ่มต้น" - ฉันจะไม่ติดตามคุณเพราะคุณไม่สามารถหนีออกจากกรงได้
Nanobot: ใช้ความชัดเจนแทนความครอบคลุม
รหัสก็เหมือนตำราเรียนทุกฟังก์ชั่นเขียนชัดเจน อย่าถามถึงฟังก์ชั่นที่ครบครันที่สุด แต่ขอให้เข้าใจง่ายๆ ในพริบตา นี่คือแนวคิดการออกแบบ "ต้องเข้าใจก่อน" - ฉันอยากได้ฟังก์ชันน้อยลง แต่ให้คุณเข้าใจว่าโค้ดแต่ละบรรทัดกำลังทำอะไรอยู่
ZeroClaw: แทนที่สากลด้วยสุดยอด
หน่วยความจำ <5MB, ไบนารีเดี่ยว, การพึ่งพารันไทม์เป็นศูนย์ นี่คือมุมมองทางวิศวกรรม "ประสิทธิภาพทรัพยากรต้องมาก่อน" - ฉันต้องการให้ Agent ทำงานบนฮาร์ดแวร์ 10 หยวน
ข้อมูลเชิงลึกหลัก
โซลูชันแบบน้ำหนักเบาไม่ได้เกี่ยวกับ "การตัดมุม" แต่เกี่ยวกับ การกำหนดลำดับความสำคัญใหม่:
- สำหรับองค์กร การปฏิบัติตามข้อกำหนด การขยาย และการทำงานเป็นทีม เป็นสิ่งสำคัญอันดับแรก → เลือก OpenClaw
- For individuals, simplicity, controllability, and sufficient use are the first priority → choose a lightweight solution
มันเหมือนกับการซื้อโทรศัพท์มือถือ: เวอร์ชันองค์กรมีการจัดการ MDM และการเพิ่มความปลอดภัย แต่ผู้ใช้แต่ละรายอาจต้องการเพียงเวอร์ชันพื้นฐานเท่านั้น - บาง เบา ประหยัดพลังงาน และราคาถูก
**คุณค่าหลักของ Agent ไม่ได้อยู่ที่การมีฟังก์ชันมากมาย แต่อยู่ที่ความถูกต้อง **
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) สิ่งสำคัญคือการเลือกเครื่องมือที่เหมาะสม