[特殊字符] 帝王蟹 vs [特殊字符] 龙虾:两大开源 AI 分身项目源码级深度对比
Self-System**(🦀 帝王蟹):一个 Solo Developer + AI 构建的项目,定位是"数字渐进式分身"
本文基于 Self-System 与 OpenClaw 两个项目的完整源码分析,从架构、功能、生态三个维度进行深度拆解。阅读时间约 15 分钟。

前言:为什么写这篇文章
最近在做"一年100个AI产品挑战"的过程中,我同时关注了两个方向完全不同的 AI 分身项目:
请添加图片描述
- OpenClaw(🦞 龙虾):由 iOS 社区传奇开发者 @steipete 主导的开源项目,MIT 协议,18+ 核心维护者,定位是"Personal AI Assistant"
- Self-System**(🦀 帝王蟹):一个 Solo Developer + AI 构建的项目,定位是"数字渐进式分身"
它们看似解决同一个问题——“让每个人拥有自己的 AI 助手”,但源码一扒,差异大到让我觉得它们根本不是同一个物种。
一、架构设计:Hub-and-Spoke vs Docker-in-Docker
OpenClaw:消息路由器 + Agent 运行时
[Telegram] ──┐
[Discord] ───┤
[Slack] ─────┼──→ [Gateway WebSocket] → [Pi Agent Runtime] → [Model Provider]
[WhatsApp] ──┤
[iMessage] ──┘
经典的 Hub-and-Spoke 架构。Gateway 是轮毂,40+ Channel 是辐条。所有消息汇聚到中心点,由 Agent 统一处理。
优点:连接能力极强(40+ Channel),消息流向清晰
代价:Gateway 是单点,扩展受限于 Agent 运行时吞吐
Self-System:双容器自生长系统
┌──────────────────────────────┐
│ CONTROL 容器(大脑) │
│ - Claude Code 引擎 │
│ - Docker Socket 控制权 │
│ - 代码生成 + 热部署 │
└──────────┬───────────────────┘
│ Docker API
↓
┌──────────────────────────────┐
│ APP 容器(身体) │
│ - 用户的数字分身 │
│ - 所有 AI 生成的页面和 API │
│ - 可以是任何东西 │
└──────────────────────────────┘
核心创新:Control 容器通过挂载 Docker Socket 来管理 App 容器。Claude 修改代码后热重启 App 容器,用户无感知。每次修改自动 Git 提交,可随时回滚。
本质区别:OpenClaw 的代码是预编译的、固定的;Self-System 的代码是活的、流动的、持续被 AI 改写的。
二、技术栈选型背后的哲学
| 维度 | OpenClaw | Self-System |
|---|---|---|
| 主语言 | TypeScript(严格模式,零 any) |
JavaScript(ES6 Modules) |
| 数据库 | SQLite(本地)+ sqlite-vec(向量) | Supabase(PostgreSQL 云端) |
| 前端 | Lit(Web Components) | Vue 3 + Tailwind CSS 4 |
| 移动端 | Swift 6.2 + Kotlin 原生 | PWA |
| 构建 | tsdown + tsx + oxlint | Vite(无 linting) |
| 测试 | Vitest,70% 覆盖率目标 | 无自动化测试 |
为什么 Self-System 不用 TypeScript?
因为它的代码主要由 AI 生成。AI 不需要类型提示来理解代码,动态类型反而减少了生成代码时的类型兼容问题。当你的代码写手是 AI 时,TypeScript 的严格性反而成了绊脚石。
为什么 Self-System 不写测试?
因为代码是可消耗品。坏了不需要调试——重新让 AI 生成一个就好。「测试」被「可重生性」替代。
三、Skill 系统:代码抽象 vs 知识抽象
OpenClaw 的 Skill = TypeScript 类
export class AppleRemindersSkill extends Skill {
async createReminder(title: string, list?: string): Promise<Reminder> {
return await this.node.exec('osascript', [...]);
}
}
需要理解 SDK、遵循接口规范、通过 lint 检查、发布到 npm。
Self-System 的 Skill = Markdown 文件
---
name: wechat-message-automation
description: 通过 n8n Webhook 实现微信消息自动发送
---
## Webhook URL
https://xxx
## 数据格式
{ "userName": "群名", "group": true, "message": "内容" }
纯文本,零代码,通过对话创建,自动注入到后续所有 AI 提示词中。
本质:OpenClaw Skill 告诉系统 How(如何做),Self-System Skill 告诉 AI What & Why(做什么和为什么)。当你的执行者是 AI 时,你不需要精确到函数签名,你只需要把上下文和意图说清楚。
四、功能生长模型对比
场景:我需要微信消息自动化
OpenClaw 路径:搜索 Plugin → 没有官方 WeChat Channel → 自己写 Plugin 对接 → 学习 SDK → 1-3 天
Self-System 路径:“帮我创建一个微信消息自动化的 Skill,Webhook 地址是 https://xxx” → 10 秒搞定
场景:我需要管理 20 个 IM 渠道
OpenClaw 路径:配置 20 个 Token → 启动 → 30 分钟搞定 ✅
Self-System 路径:逐个创建集成 → 没有统一消息路由 → 需要多次对话 ❌
结论:OpenClaw 是 X 轴(连接广度)之王,Self-System 是 Y 轴(定制深度)之王。
五、定位分析:应用层 vs 操作系统层
层次差异:
OpenClaw = Application Layer — 你在 App 里做事
Self-System = OS Layer — 你在定义 App 本身
OpenClaw 正在成为「个人 AI 的 Android」——开放、多渠道、生态丰富。
Self-System 正在成为「程序员的 AI 操作系统」——自我进化、无边界、代码即思想。
六、数据总表
| 对比维度 | OpenClaw 🦞 | Self-System 🦀 |
|---|---|---|
| 团队规模 | 18+ 维护者 | 1 人 + AI |
| 代码语言 | TypeScript + Swift + Kotlin | JavaScript |
| Channel 数 | 40+ | 通过 Webhook/Skill 集成 |
| Model 数 | 15+ | 4 |
| 内置 Skill | 50+ | 15+(全部 AI 对话生成) |
| 部署方式 | npm/Docker/Nix/Native | Docker Compose |
| 数据存储 | SQLite(本地) | Supabase(云端) |
| 扩展方式 | Plugin SDK | 自然语言对话 |
| 核心价值 | 连接万物 | 生长万物 |
七、给程序员的选择建议
| 你的需求 | 选择 |
|---|---|
| 多 IM 统一管理 | OpenClaw 🦞 |
| 快速搭建个人定制化工具 | Self-System 🦀 |
| 原生移动端体验 | OpenClaw 🦞 |
| 系统按你的想法持续进化 | Self-System 🦀 |
| 社区共享的插件生态 | OpenClaw 🦞 |
| 深度融合私人工作流 | Self-System 🦀 |
| 极客式数字分身 | Self-System 🦀 |
结语
龙虾的武器是触角,能感知海里一切信号。
帝王蟹的武器是身体,能承载海里一切重量。
它们不是竞品,而是同一赛道上占据不同生态位的物种。如果两个都想要——用 OpenClaw 管通信,用 Self-System 管建造,通过 Webhook 打通,你就拥有了一条数字龙 🐉。
本文基于 Self-System (commit: 65757b7) 与 OpenClaw (v2026.3.1, commit: 3fc19ed) 的源码深度分析。
我是 MaskerPRC,正在做"一年100个AI产品挑战",Self-System 是其中一个项目。欢迎关注交流。
更多推荐

所有评论(0)