NanoClaw
用隔离容器运行可定制的多渠道个人助手。
按维度查看评分与理由
证据显示:代理在容器中运行,仅挂载显式目录;凭据通过OneCLI Agent Vault注入,不进入容器;有匿名诊断且可关闭;卸载需确认。扣分:用户确认机制仅体现在卸载流程,未覆盖其他敏感操作;数据流透明性有架构描述但缺少具体实现细节;依赖安全仅依赖版本锁定,未提供漏洞扫描证据;外部影响有卸载和诊断控制,但未全面覆盖。
证据显示:架构描述与代码结构一致,有CI流程和测试;依赖版本固定。扣分:失败消息仅提及Claude Code自动诊断,未提供具体错误处理示例;依赖可用性未提供镜像或缓存策略。
证据显示:支持多通道、多提供商,可定制;有触发词和调度任务;支持macOS/Linux/WSL2。扣分:能力边界未明确列出所有限制;环境适配依赖Docker和Claude Code,未提供替代方案。
证据显示:有README、文档、FAQ、CHANGELOG、MIT许可证;安装脚本和迁移脚本。扣分:已知限制未明确列出;维护责任未明确说明。
证据显示:输出为消息回复,有调度任务和定制能力;相比OpenClaw更轻量。扣分:成本效益未提供性能或资源占用数据。
证据显示:README有架构描述和文档链接;有测试文件。扣分:声明多为断言,缺少独立验证;事实与推断未明确区分。
- 代理在容器中运行,但需审查挂载和网络配置,确保最小权限。
- 依赖OneCLI Agent Vault,需验证其安全性和可用性。
- 安装脚本会安装Node、pnpm、Docker,可能影响系统环境,建议在隔离环境测试。
这个 Agent 能做什么,适合哪些场景?
NanoClaw 是一个自托管的个人 AI 助手,核心设计是让每个代理在独立 Linux 容器中运行,并只访问显式挂载的目录。一个 Node 主机进程负责接收消息、路由会话、唤醒容器并投递回复;容器内的 Bun agent-runner 通过 Claude Agent SDK 执行代理。会话通过各自的 inbound.db 和 outbound.db 与主机交换消息,两份 SQLite 文件各有一个写入者。它支持按需加入的消息渠道、按代理组划分的工作区与记忆,以及定时任务。适合愿意维护 Docker 环境并通过修改代码而非堆叠配置来定制助手的个人用户。
消息先由渠道适配器交给主机,src/router.ts 按“用户 → 消息群组 → 代理组 → 会话”进行路由,并写入该会话的 inbound.db。src/container-runner.ts 启动对应代理组的容器;容器内的 container/agent-runner 轮询 inbound.db,调用 Claude Agent SDK 和 MCP 工具,再将回复写入 outbound.db。src/delivery.ts 轮询 outbound.db,并通过渠道适配器将回复和系统动作送回原渠道;src/host-sweep.ts 每 60 秒处理过期检测、到期消息唤醒与周期任务。凭据经 OneCLI 的 Agent Vault 在请求时注入,容器不持有原始 API 密钥。
- 个人知识管理用户把 Obsidian 目录显式挂载给某个代理,并让它在工作日上午发送销售管道概览。
- 开发者为一个项目群组创建独立代理,让它每周检查 Git 历史并在发现漂移时更新 README。
- 同时使用 Telegram、Discord 和 WhatsApp 的个人用户,通过 /manage-channels 决定各渠道使用独立记忆、共享代理或共享会话。
- 需要固定节奏情报简报的用户,创建每周一运行的任务,从 Hacker News 和 TechCrunch 汇总 AI 动态后发送消息。
- 希望让不同助手使用不同后端的用户,为不同代理组配置 Claude、通过 /add-codex 接入的 Codex,或通过 OpenCode、Ollama 加入的提供商。
这个 Agent 有哪些优点和局限?
- 每个代理组在独立 Linux 容器中运行,并可限制到显式挂载的目录,隔离边界比仅靠应用内权限检查更明确。
- 主机与容器通过每会话两份单写入者 SQLite 数据库通信,README 明确说明不使用跨挂载竞争、IPC 或 stdin 管道。
- 渠道、代理组、记忆、CLAUDE.md、容器和挂载均可按代理组划分,适合将私人、家庭和工作场景隔离。
- 渠道与替代提供商采用按需技能安装,基础仓库不会默认带入未选择的适配器。
- OneCLI Agent Vault 在请求时注入凭据,并支持按代理设置策略和速率限制。
- 运行环境依赖 Docker;Windows 仅通过 WSL2 支持,且安装还需要 Node.js 20+ 和 pnpm 10+。
- Claude Code 是定制、调试、安装错误恢复及所有 /add-<channel> 技能的要求之一,核心原生路径也基于 Anthropic 的 Claude Agent SDK。
- 渠道和替代提供商不随主干默认提供,需要执行相应 /add-<name> 技能并把模块复制到自己的 fork。
- 项目明确偏向通过修改代码进行定制,而不是提供配置文件;偏好声明式配置管理的团队需要自行实现。
- 从 v1 迁移需要在新的 v2 检出目录运行 migrate-v2.sh,部分涉及判断的步骤会转交给 Claude Code,且系统服务不会自动切换。
如何安装或部署这个 Agent?
在 macOS、Linux 或 Windows 的 WSL2 环境中运行:
git clone https://github.com/nanocoai/nanoclaw.git nanoclaw-v2
cd nanoclaw-v2
bash nanoclaw.sh安装脚本会在缺失时安装 Node、pnpm 和 Docker,注册 Anthropic 凭据到 OneCLI,构建代理容器,并配对第一个 Telegram、Discord、WhatsApp 或本地 CLI 渠道。README 列出的前提包括 Node.js 20+、pnpm 10+、Docker,以及用于定制、调试、错误恢复和添加渠道技能的 Claude Code。
如何使用这个 Agent?
完成安装后,向已配对渠道中的助手发送带触发词的消息;默认触发词为 @Andy。例如:
@Andy every Monday at 8am, compile news on AI developments from Hacker News and TechCrunch and message me a briefing
在你拥有或管理的渠道中,也可发送“@Andy list all scheduled tasks across groups”或“@Andy pause the Monday briefing task”。可用 /add-<channel> 安装渠道模块;README 列出的提供商扩展包括 /add-codex、/add-opencode 和 /add-ollama-provider。
这个 Agent 与同类方案有什么区别?
NanoClaw 将自己定位为 OpenClaw 的轻量替代方案。README 对比称 OpenClaw 代码和依赖规模更大,并在单一 Node 进程中共享内存;NanoClaw 的定位则是较小的代码库,以及按代理运行的 Linux 容器文件系统隔离。