前言
2025年底,OpenClaw 彻底出圈了。这个「能让 AI 帮你做事」的自托管 Agent 平台在 GitHub 上星标暴涨到 20 万+,几乎成为 AI Agent 的代名词。
但伴随爆火而来的,是安全团队的密集警告。26% 的社区 Skills 存在漏洞,4 万台实例在公网裸奔,CVE 批量出现。社区开始意识到:OpenClaw 就像一辆速度很快但没装安全带的车——用起来爽,出事起来也快。
这就是 OpenLobster 出现的理由。
它不是简单的 UI 优化,而是一次彻底的安全重构。用 Go 重写后端,加密存储、默认认证、真正的多用户架构。社区有人说它是「OpenClaw 最该有的样子」——我们今天就来看看,这话有没有道理。
核心对比:OpenLobster vs OpenClaw
我们先花点时间了解两者差异,这能帮你判断是否值得迁移。
架构:Node.js → Go
OpenClaw 是 Node.js/TypeScript 项目,依赖一堆 npm 包。OpenLobster 直接用 Go 重写,整个后端是一个 ~66MB 的静态二进制。
实际测量数据:
- 启动时间:200ms(OpenClaw 需要 2-3 秒)
- 内存占用:30MB(OpenClaw 150MB+)
- 部署方式:一个二进制文件 + 配置文件,无需 Node 环境
如果你在树莓派或低配 VPS 上跑,这点差距会很可观。
内存系统:Markdown → 图数据库
这是最核心的差异。
OpenClaw 的「记忆」本质是一个 MEMORY.md 文件,每次对话追加内容。并发会话一多,这个文件就变成一团乱麻。官方文档甚至说「只有主会话能写 MEMORY.md」——听起来像特性,其实是大写的尴尬。
OpenLobster 用了真正的图数据库架构。内置两种模式:
- 文件后端:本地 GML 格式,不需要额外服务
- Neo4j 后端:真正的图数据库,支持复杂查询
AI 会话中建立的每个概念都是节点,人物关系、事件关联都有类型化的边。这意味着你可以真正「查询」AI 的记忆,而不是只让它重复之前说过的话。
多用户支持
OpenClaw 几乎没有多用户概念。所有会话共享一个主内存,跨渠道使用时数据会串。
OpenLobster 从根本上支持多用户:
- 每个渠道(Telegram、Discord)的每个用户都是独立实体
- 独立对话历史
- 独立工具权限
- 独立的配对流程(Pairing)
一个 Telegram 用户和一个 Discord 用户可以同时跟同一个 AI 对话,互不干扰。
任务调度:Heartbeat → Cron
OpenClaw 的定时任务是一个每 30 分钟读取 HEARTBEAT.md 文件的守护进程。简单粗暴,但也就只能做到这个程度。
OpenLobster 实现了完整的任务调度器:
- Cron 表达式处理循环任务
- ISO 8601 处理一次性任务
- 任务状态、下次执行时间、执行日志全部在 Dashboard 可视化
安全模型:默认开放 → 默认认证
这是最大的改变。
OpenClaw 默认不启用认证,结果就是几万台实例在 Censys 上裸泳。某个 CVE 甚至允许未经认证的攻击者直接调用 Agent API。
OpenLobster 的安全策略:
- Dashboard 默认需要 Bearer Token(
OPENLOBSTER_GRAPHQL_AUTH_TOKEN) - 配置文件和密钥全部加密存储
- API Key 和渠道 Token 不再明文写在 YAML 里,而是存到加密后端(文件或 OpenBao)
OPENLOBSTER_*环境变量永远不会泄露到终端工具
WARNING
如果你要把实例暴露到公网,记得第一时间配置认证 Token。
MCP 集成
OpenClaw 的 MCP 支持基本是个演示。OpenLobster 实现了完整的 MCP 生态:
- 连接任何 Streamable HTTP MCP Server
- 完整的 OAuth 2.1 流程
- 每个服务器的工具可以单独浏览
- 用户级权限矩阵,控制谁能用什么工具
- 内置 Marketplace,一键集成常用服务
环境准备
OpenLobster 对硬件要求极低,这也是它相比 OpenClaw 的优势之一。
最低硬件要求
| 配置 | 推荐 | 最低 |
|---|---|---|
| CPU | 2 核 | 1 核 |
| 内存 | 1 GB | 512 MB |
| 存储 | 10 GB SSD | 5 GB |
| 系统 | Linux/macOS/Windows | Linux (Docker) |
树莓派 3/4、512MB RAM 的 VPS、NAS、甚至 $15 的 LicheeRV Nano 都能跑。实测树莓派 4 跑起来毫无压力。
软件依赖
- Docker(推荐,最简单)
- 或者:Go 1.21+(如果自己编译)
快速部署
我们用 Docker 来演示,这是最快捷的方式。
1. 创建配置目录
mkdir -p ~/.openlobster/data ~/.openlobster/workspace
2. 启动容器
docker run -p 8080:8080 \
-e OPENLOBSTER_GRAPHQL_HOST=0.0.0.0 \
-e OPENLOBSTER_GRAPHQL_AUTH_TOKEN=your-secret-token \
-e OPENLOBSTER_AGENT_NAME=my-agent \
-e OPENLOBSTER_DATABASE_DRIVER=sqlite \
-e OPENLOBSTER_DATABASE_DSN=/app/data/openlobster.db \
-v ~/.openlobster/data:/app/data \
-v ~/.openlobster/workspace:/app/workspace \
-d ghcr.io/neirth/openlobster/openlobster:latest
几个关键配置解释一下:
OPENLOBSTER_GRAPHQL_AUTH_TOKEN:Dashboard 访问密码,必填OPENLOBSTER_AGENT_NAME:你的 AI 助手名字OPENLOBSTER_DATABASE_DRIVER=sqlite:使用 SQLite,无需额外数据库服务- 端口 8080 是 GraphQL API 和 Web UI 的入口
3. 验证启动
curl http://127.0.0.1:8080/health
返回 {"status":"ok"} 就表示启动成功了。
初始化配置
首次启动引导
浏览器打开 http://127.0.0.1:8080,会进入 Setup Wizard。
TIP
记得用启动时设置的 OPENLOBSTER_GRAPHQL_AUTH_TOKEN 作为 Bearer Token 登录。
Setup Wizard 会引导你完成:
- Agent 基础配置(名字、描述)
- 选择数据库(SQLite / PostgreSQL / MySQL)
- 选择内存后端(File / Neo4j)
- 添加 AI Provider
配置 AI Provider
这是最关键的一步。OpenLobster 支持多种 AI Provider:
- OpenAI
- Anthropic (Claude)
- Ollama(本地模型)
- OpenRouter
- Docker Model Runner
- 任何 OpenAI 兼容接口
TIP
这里推荐使用 Defapi 平台。它是 API 中转服务,价格只有官方的 半价,支持 OpenAI、Claude、Gemini 等主流模型,而且完全兼容 v1/chat/completions 接口,无需修改代码,直接替换 base_url 和 API Key 即可。
Defapi 配置示例(以 Claude Sonnet 为例):
# 环境变量方式
OPENLOBSTER_PROVIDERS_OPENAICOMPAT_API_KEY=你的Defapi-Key
OPENLOBSTER_PROVIDERS_OPENAICOMPAT_BASE_URL=https://api.defapi.org/v1
OPENLOBSTER_PROVIDERS_OPENAICOMPAT_MODEL=anthropic/claude-sonnet-4-5
或者在 Dashboard 的 Settings → Providers 界面填写:
| 字段 | 值 |
|---|---|
| Provider Type | OpenAI Compatible |
| API Key | 你的 Defapi Key |
| Base URL | https://api.defapi.org/v1 |
| Model | anthropic/claude-sonnet-4-5 |
Defapi 的优势:
- 价格只有官方半价
- 接口完全兼容,OpenLobster 无需任何修改
- 支持 Claude、GPT、Gemini 等主流模型
- 国内访问延迟低
连接通讯渠道
OpenLobster 支持同时启用多个渠道。
Telegram
- 在 Telegram 搜索 @BotFather,创建新机器人
- 获取 Bot Token
- 在 Dashboard → Settings → Channels → Telegram 填写 Token
- 保存后,你的机器人就上线了
用户首次发消息会触发配对流程,绑定 Telegram 用户 ID 到 OpenLobster 账户。
Discord
- 在 Discord Developer Portal 创建 Application
- 添加 Bot,获取 Token
- 邀请 Bot 到服务器(需要
message.content权限) - 在 Dashboard 填写 Bot Token
其他平台
类似流程:WhatsApp(需要 Business API)、Slack(Socket Mode)、Twilio SMS。配置方式大差不差,在 Dashboard 里找到对应渠道填写凭证即可。
常见问题排查
1. Dashboard 登录失败
检查是否正确设置了 OPENLOBSTER_GRAPHQL_AUTH_TOKEN。所有 API 请求都需要在 Header 中携带:
curl -H "Authorization: Bearer your-secret-token" \
http://127.0.0.1:8080/graphql
2. AI 不回复消息
常见原因:
- API Key 填错了
- 模型名称不匹配(检查大小写,比如
claude-sonnet-4-5不是claude-sonnet-4.5) - 网络不通(Docker 容器能否访问外网)
看日志:docker logs <container-id>,一般会有详细错误信息。
3. 内存不生效
如果选的是 File 后端,检查 ~/.openlobster/data/ 目录下的 GML 文件是否有内容。
如果用 Neo4j,确认 Neo4j 服务正常运行,且连接信息正确。
4. 渠道连接成功但收不到消息
确认 Bot 是否有对应平台的权限:
- Telegram:Bot 必须在群里,且设置为允许接收群消息
- Discord:Bot 需要
Read Messages/View Channels权限
5. MCP 工具调用失败
MCP 服务器需要是 Streamable HTTP 模式。检查:
- 服务器 URL 是否可访问
- OAuth 配置是否正确(如果需要)
- 工具权限是否放行
6. 升级后启动失败
数据库迁移会自动执行,但建议先备份:
cp -r ~/.openlobster/data ~/.openlobster/data.backup
进阶方向
MCP 集成
OpenLobster 的 MCP 支持是目前最完整的安全版 AI Agent 实现。
在 Dashboard → MCP 可以浏览已连接的服务器和可用工具。每个工具都有详细的参数说明和权限控制。
社区维护的 Marketplace 里有现成的 MCP 服务器,比如文件系统、GitHub、Slack 等。一键添加,无需手动配置。
Neo4j 部署
如果你的使用场景需要复杂的记忆查询,推荐上 Neo4j。
# 启动 Neo4j
docker run -p 7474:7474 -p 7687:7687 \
-e NEO4J_AUTH=neo4j/password \
neo4j:latest
然后在 OpenLobster 配置中切换到 Neo4j 后端,填入连接信息。
图数据库的真正价值在于:你可以问 AI 「上次我们讨论的那个项目后来怎样了」,它能顺着关系链找出来,而不是简单检索关键词。
多实例集群
Go 后端的无状态设计使得水平扩展很容易。如果需要高可用,可以:
- 多个 OpenLobster 实例共享同一个 Neo4j
- 共享同一个 PostgreSQL 数据库
- 前面加负载均衡器
进阶阅读
- 官方文档:https://neirth.gitbook.io/openlobster
- GitHub:https://github.com/Neirth/OpenLobster
- OpenClaw 原版:https://github.com/openclaw/openclaw
- Defapi 平台:https://defapi.org
如果你正在寻找 OpenClaw 的安全替代方案,或者想要一个更低资源占用的自托管 AI 助手,OpenLobster 值得试试。