NanoClaw 自托管部署:硬件选型与运行成本核算
NanoClaw(基于 Claude Agent SDK 的个人 AI 助手)的架构目标很明确:1 个进程、5 个核心文件、没有微服务。官网标注 30.2k GitHub Stars。
这个规模决定了硬件选型的重点。你不需要为它准备算力,你需要准备的是常开的网络连接、够用的内存,和一个能跑容器的系统。真正的变量是成本:硬件是一次性的,电费是持续的,Anthropic API 是按 token 计费的。
下面把这三项拆开算。
一、动手之前的软件基线
无论最后选哪台机器,前提条件不变:
| 项目 | 要求 |
|---|---|
| 运行时 | Node.js 20+ |
| 配置与运维入口 | Claude Code(用于 /setup、/customize、/debug 等) |
| 容器运行时 | macOS 可用 Apple Container 或 Docker;Linux 与 Windows WSL2 使用 Docker |
| 模型访问 | Anthropic API key,或 Claude Code 的登录凭证 |
| 消息通道 | WhatsApp 等即时通讯工具 |
平台支持覆盖 Linux、macOS、Windows WSL2、Docker 与 Raspberry Pi。这五类并不互斥:Raspberry Pi 通常跑 Linux + Docker,Windows 用户通过 WSL2 进入 Linux 环境。
二、选型的真实约束:内存与常开,而不是 CPU
2.1 并发容器数决定内存下限
NanoClaw 的默认上限是最多 3 个并发容器。每个群组按 FIFO 排队,同一群组在同一时刻只处理一个会话。宿主进程本身很轻,内存主要被容器消耗——每个容器里跑的是 Bun 运行时加 Claude Agent SDK 的 agent-runner,会话状态存在 SQLite 中。
按这个模型给出经验值(这是工程建议,不是官方硬性要求):
- 4 GB:单群组、低频使用,能跑,但没有余量。
- 8 GB:2–3 个群组加定时任务,比较舒适。
- 16 GB 及以上:需要在容器内跑浏览器自动化,或同时开多个群组。
2.2 Raspberry Pi 5
官方规格:5V/5A(25W)USB-C 供电;若使用 5V/3A(15W)电源,USB 外设总电流会被限制在 600 mA。官方推荐搭配 27W USB-C 电源,供电不足会触发降频,甚至不稳定。ARM64 架构,Docker 可用。
需要注意的是价格。受内存涨价影响,Raspberry Pi 5 的官方建议零售价在 2025 年底到 2026 年经历了多轮上调,16GB 型号从 $120 升至 $305。这意味着「用 Pi 省钱」这个判断需要重新算一遍:今天一块 8GB 的 Pi 5,成本已经接近入门级 x86 迷你主机。
Pi 的优势依然在功耗和体积,但性价比不再像 2023 年那样压倒性。
2.3 已常开的机器:迷你主机、旧笔记本、家庭实验室服务器
如果你已经有一台 7×24 开着的机器——NAS、家庭服务器、退役笔记本——把它作为首选。边际硬件成本接近 0,你只需要确认三件事:
- 能装 Docker(macOS 上可用 Apple Container)。
- 有至少 8 GB 内存可以分给容器。
- 有稳定的、不会因休眠而断线的网络出口。
以当前 Mac mini 为例,官方规格页给出的最大持续功率是 155W。注意这是上限,不是日常功耗;轻载运行时实际功率远低于此。电费应按实测估算,而不是按标称值。
2.4 VPS
VPS 的账最好算。以 DigitalOcean 的基础 Droplet 为例:1 GiB 内存 $6/月,2 GiB $12/月,4 GiB $24/月,8 GiB $48/月。
但要清楚一个取舍:NanoClaw 的核心卖点之一是把数据留在自有硬件上。放到 VPS 上,进程和 SQLite 数据文件都在别人的机房里,「数据不外流」的诉求被部分削弱。用 VPS 换来的是可用性与公网 IP,不是隐私。
2.5 选型速查
| 场景 | 建议 |
|---|---|
| 单群组、轻量自动化 | 4 GB 级 ARM 板,或 2 GiB VPS |
| 2–3 个群组 + 定时任务 | 8 GB 内存 |
| 浏览器自动化 / 多代理 | 16 GB 起 |
| 已有常开的 x86 机器 | 直接用,边际成本最低 |
| Windows 用户 | WSL2 + Docker |
三、运行成本核算
3.1 一次性硬件成本
| 方案 | 参考成本 | 说明 |
|---|---|---|
| Raspberry Pi 5 | 受内存行情影响,官方 MSRP 已多次上调 | 另需 27W USB-C 电源、存储卡或 NVMe |
| 迷你主机 / 旧笔记本 | 已有则接近 0 | 需留出 8 GB 内存余量 |
| 家庭实验室服务器 | 已有则接近 0 | 优先选择 |
| VPS | 0 | 转为月租,见 2.4 |
| Mac mini | 视配置 | 最大持续功率 155W |
硬件价格随行情波动较快,采购前请以官方或授权渠道的实时报价为准。
3.2 电费
公式很简单:
年电费 = 平均功耗(W) ÷ 1000 × 24 × 365 × 电价(元/kWh)
代入一个算例:假设整机平均功耗 6W、电价 0.6 元/kWh:
0.006 × 8760 × 0.6 ≈ 31.5 元/年
这里的 6W 与 0.6 元/kWh 都是举例用的假设值,既不是对任何设备的实测结论,也不是任何地区的实际电价。要算准,请用功率计实测你的机器,再代入当地电价。
有一个容易搞错的地方:官方给出的 5V/5A 是供电规格上限,不等于实际功耗。电源标称 25W,不代表机器一直在消耗 25W。
3.3 Anthropic API 费用
这是持续成本里最需要关注的一项,因为它随使用量线性增长。官方定价(每百万 token,USD):
| 模型 | 输入 | 输出 | 缓存读取 | 缓存写入 |
|---|---|---|---|---|
| Haiku 4.5 | $1 | $5 | $0.10 | $1.25 |
| Sonnet 5 | $2 | $10 | $0.20 | $2.50 |
| Opus 5 | $5 | $25 | $0.50 | $6.25 |
两个会显著影响账单的机制:
- Prompt caching:缓存读取按输入价的 0.1× 计费(上表为 5 分钟 TTL 的价格)。个人助手的
CLAUDE.md记忆与较长上下文会被反复发送,命中缓存后这部分成本大幅下降。 - Batch API:官方标注可节省 50%,适用于可以异步处理的批量任务。
一个算例。假设每天 30 轮对话,每轮输入 8,000 tokens、输出 600 tokens:
- 输入:30 × 8,000 = 240,000 tokens = 0.24 MTok
- 输出:30 × 600 = 18,000 tokens = 0.018 MTok
| 模型 | 每日 | 每月(按 30 天) |
|---|---|---|
| Haiku 4.5 | 0.24×$1 + 0.018×$5 ≈ $0.33 | ≈ $10 |
| Sonnet 5 | 0.24×$2 + 0.018×$10 ≈ $0.66 | ≈ $20 |
| Opus 5 | 0.24×$5 + 0.018×$25 ≈ $1.65 | ≈ $50 |
再强调一次:这是算例,不是套餐,不是承诺,也不是预测。实际消耗取决于对话长度、上下文大小、是否命中缓存以及模型选择;官方定价本身也可能调整,请以 Anthropic 定价页为准。
这是开源项目,使用者需自行承担 Anthropic API、服务器或本地硬件的运行成本。
3.4 第一年总成本对照
| 方案 | 硬件 | 电费 / 月租(首年) | API |
|---|---|---|---|
| 已有 x86 机器 | 0 | 电费,按 3.2 的公式代入 | 按 3.3 代入 |
| Raspberry Pi 5 | 按现价采购 | 电费,通常低于 x86 | 按 3.3 代入 |
| VPS 2 GiB | 0 | $144($12 × 12) | 按 3.3 代入 |
| VPS 4 GiB | 0 | $288($24 × 12) | 按 3.3 代入 |
可以看到,在一台 7×24 常开的机器上,API 费用往往是最大的一项,而不是硬件或电费。优化方向因此很明确:选合适的模型、开启 prompt caching、控制上下文长度。
四、部署:三步
第一步:克隆仓库
git clone https://github.com/nanocoai/nanoclaw.git nanoclaw-v2
cd nanoclaw-v2
第二步:准备配置
准备 Anthropic 凭据(API key 或 Claude Code 登录),并想清楚要挂载哪些目录。这一步直接决定后续的隔离边界:容器只能看到被显式挂载的路径。挂得越少,暴露面越小。敏感目录不要挂。
第三步:由 Claude Code 完成依赖、认证与容器配置
在仓库目录中启动 Claude Code:
claude
然后执行 /setup。它会处理依赖安装、Anthropic 凭证注册、容器镜像构建与首个消息通道配对。仓库的快速开始也提供了等价的一键脚本:
bash nanoclaw.sh
配置完成后,通过消息通道给助手发第一条消息即可。
五、隔离边界:可以承诺什么
NanoClaw 的做法是基于 Apple Container / Docker 的操作系统级容器隔离,每个群组独立容器、文件系统与 Claude 会话,仅能访问显式挂载的目录。bash 命令在容器内执行,不在宿主机上执行;凭据不写入容器。
需要明确的是,这不是「绝对安全」,也没有任何方案配得上这个说法。隔离效果取决于两件事:你挂了哪些目录,以及所用的容器运行时版本是否及时更新。把这两件事管好,比更换任何工具都有效。
六、许可证与同类项目
站点徽章与页脚对许可证给出了两种表述(MIT License 与 Apache 2.0)。具体许可以仓库 LICENSE 文件为准,并以该文件作为法律依据。
与 OpenClaw、PicoClaw、OpenFang 等同类项目相比,可核实的差异集中在四个维度:
- 代码规模:NanoClaw 的仓库描述称 OpenClaw 有接近 50 万行代码,而 NanoClaw 自身以 1 个进程、5 个核心文件为设计目标。
- 隔离方式:操作系统级容器隔离,而非应用层权限校验。
- 模型支持:基于 Claude Agent SDK。
- 定制方式:没有配置文件堆叠,通过 Claude Code 直接改代码,或用 Skill 按需扩展通道(如
/add-telegram)。
以上都是可以自己打开仓库核对的维度。性能与安全上的强弱取决于具体部署,不适合用一句话概括。
七、上线前检查清单
- Node.js 20+ 已安装
- Claude Code 可用
- 容器运行时就绪(Apple Container 或 Docker)
- 内存留够:单群组 4 GB 起,多群组 8 GB 起
- 挂载目录已最小化,敏感目录未挂载
- 已确认机器不会休眠、网络不会掉线
- 已确认 API 预算,并考虑开启 prompt caching
- 已阅读仓库 LICENSE 文件
开始部署
仓库地址:github.com/nanocoai/nanoclaw
View on GitHub:https://github.com/nanocoai/nanoclaw
Get Started:克隆仓库后运行 bash nanoclaw.sh,或在仓库目录中启动 Claude Code 并执行 /setup。
