开源项目
memohai/Memoh avatar
memohai/Memoh

Memoh:给每个 AI 代理一台常驻云电脑,自托管的多智能体平台实测前评估

该项目围绕「memohai/Memoh」构建,面向真实业务场景提供可复用的开源实践方案,支持稳定落地与可扩展的项目实践。

2,237 个 Star215 个 ForkGoAGPL-3.0

秒懂

它是什么?
Memoh 是一个用 Go 编写的开源多智能体平台,每个代理拥有独立的文件系统、桌面、浏览器和长期记忆。本文基于仓库材料分析其架构、部署方式、适用场景与限制,帮助工程师判断是否值得采用。
适合谁用?
Memoh 适合需要为多个代理提供持久隔离运行环境的团队,尤其是已经使用 Claude Code 或 Codex、希望将它们托管到云端并赋予长期记忆的用户。不适合只需要简单 API 封装、不愿维护自托管基础设施或对 AGPL 传染性敏感的商业闭源项目。
能商用吗?
可以,但条件严格。AGPL-3.0 是网络 copyleft 许可证:如果别人通过网络使用你修改过的版本(例如作为托管服务),你必须以同一许可证向他们提供源代码。
还在维护吗?
在维护。仓库在最近一天内有新的提交。
用什么语言写的?
主要是 Go(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决什么问题:代理的持久身份与隔离工作区

大多数 AI 代理工具运行在你的笔记本上,关盖即断。Memoh 的定位是给每个代理一台云电脑,包含独立的文件系统、桌面、浏览器、网络和长期记忆。这意味着代理可以在你离线时继续执行定时任务,跨 Telegram、Discord、飞书、微信等渠道保持上下文。它面向两类用户:一是想用自有 API key 运行内置代理的个人开发者,二是想把 Claude Code 或 Codex 这类外部编码代理托管到隔离环境中的团队。仓库描述强调“always on, even when your laptop is closed”,这是它区别于本地运行代理的核心卖点。

架构机制:工作区隔离与双进程模式

从 README 和部署文档可见,Memoh 的核心抽象是“每个代理一台电脑”。每个 bot 拥有独立的文件系统、网络、工具和桌面,这意味着代理之间不会共享状态,也不会互相干扰。长期记忆是内置的,同时支持接入 Mem0 和 OpenViking,记忆跨会话和跨平台持久化。架构上有一个关键设计:internal_rpc.shared_secret 配置项决定运行模式。留空时,server 进程内嵌 channel 运行时,作为单进程一体机运行,包含外部渠道、邮件和 webhook 端点,不需要额外的 memoh-channel 进程。设置 secret 后,则拆分为 server 和 channel 两个独立服务,通过内部 RPC 通信。这种设计让小型部署可以简化运维,而大型部署可以分离负载。但文档没有说明拆分后如何保证 RPC 安全,只要求保持 secret 私密并在重建堆栈时使用相同值。

部署实操:一条命令与手动步骤

最简单的部署方式是执行 curl -fsSL https://memoh.sh | sh。安装器内部会使用 sudo docker(如果 Docker 需要),但不要用 sudo 运行整个安装脚本。手动部署则需克隆仓库并初始化子模块:git clone --depth 1 --recurse-submodules --shallow-submodules,然后复制 conf/app.docker.toml 为 config.toml 并编辑。接着生成内部 RPC 密钥:export MEMOH_INTERNAL_RPC_SHARED_SECRET="$(openssl rand -hex 32)",最后 docker compose up -d。这里有一个容易踩的坑:GitHub 自动生成的源码包不包含子模块内容,必须使用发布页附加的 Memoh-版本-source.zip 或 .tar.gz 才能构建。对于已有安装,git pull 后需要确保 post-merge 钩子初始化子模块,如果钩子未安装,需手动运行 mise run submodule-init。中国大陆用户可以使用 USE_CN_MIRROR=true 环境变量加速镜像拉取。

功能矩阵:托管代理、MCP 与自动化

Memoh 的功能列表覆盖了多智能体平台的常见需求。多 bot 多用户支持私聊、群聊和 bot 之间互相聊天,且支持跨平台身份绑定。MCP 支持让每个 bot 管理自己的外部工具连接,这与集中式工具配置不同。Agent Hosting 功能允许通过 ACP 协议托管外部代理,目前支持 Codex 和 Claude Code,按 bot 配置。Browser Use 和 Computer Use 分别驱动工作区内的浏览器和桌面,用于 GUI 工作流。Skills 与 Supermarket 提供模块化技能,可从 Supermarket 安装模板,并支持委派给子代理。自动化部分支持定时任务。这些功能组合起来,Memoh 更像一个完整的代理运行平台,而非单纯的聊天框架。但文档没有给出这些功能的性能指标或资源占用数据,对于生产环境的容量规划没有帮助。

限制与失败模式:隔离的代价与配置复杂度

Memoh 的隔离工作区设计带来资源开销,每个代理都有自己的桌面和浏览器,这意味着内存和 CPU 消耗会随代理数量线性增长。文档没有提及最低硬件要求,也没有说明单机可运行的代理数量上限。另一个限制是子模块依赖:如果通过 GitHub 的自动源码包下载,会缺少子模块,导致构建失败。这增加了部署的脆弱性。此外,双进程模式需要妥善管理 internal_rpc.shared_secret,如果泄露或丢失,可能导致服务间通信失败或安全风险。文档明确警告“Keep the internal RPC secret private”,但没有提供密钥轮换机制。对于只需要一个简单聊天机器人的用户,Memoh 的复杂度可能超出需求,它更适合需要多代理、持久记忆和外部代理托管的场景。

替代方案对比:与本地运行代理和云平台的区别

一个直接的替代方案是直接在本地或自己的服务器上运行 Claude Code 或 Codex,不使用 Memoh。这种方式的优势是零额外抽象,不需要学习新的配置和 RPC 概念,但缺点是代理没有持久身份,关掉终端就丢失上下文,也无法跨平台访问。另一个替代是使用商业云平台,如 OpenAI 的 Codex 云端版本或 Anthropic 的 Claude 云服务,它们提供托管环境,但通常是封闭的,不支持自定义文件系统或网络隔离。Memoh 的差异化在于开源、自托管和代理级隔离,它允许你保留自己的 API key,同时获得云电脑的持久性。如果你已经使用 Vercel AI SDK 风格的 Go SDK,Memoh 的姊妹项目 Twilight AI 可能提供更紧密的集成,但那是独立的项目,不在本仓库范围内。

维护与升级成本:子模块和许可证的长期影响

Memoh 采用 AGPL-3.0 许可证,这是一个强 copyleft 许可。如果你修改代码并部署为网络服务,需要向用户提供源代码。对于内部使用,AGPL 的限制相对较小,但如果你的产品包含 Memoh 的衍生代码并向外部提供服务,可能触发开源义务。这需要法律评估,本文不构成法律建议。维护方面,项目活跃,最近 release 是 v0.18.0(2026-08-17),版本迭代频繁。升级路径依赖 git pull 和子模块钩子,文档提供了 mise run submodule-init 作为补救命令。但频繁的版本更新意味着你需要跟踪每次变更,特别是配置格式可能变动。文档没有提供数据库迁移或配置兼容性说明,升级前需要备份配置并测试。整体来看,维护成本集中在子模块管理和配置同步上,对于熟悉 Docker Compose 和 Go 生态的团队可控,但对新手有门槛。

编辑结论

Memoh 适合需要为多个代理提供持久隔离运行环境的团队,尤其是已经使用 Claude Code 或 Codex、希望将它们托管到云端并赋予长期记忆的用户。不适合只需要简单 API 封装、不愿维护自托管基础设施或对 AGPL 传染性敏感的商业闭源项目。采用前应重点验证三件事:一是 internal_rpc.shared_secret 的配置方式,确认单进程还是双进程部署符合你的运维能力;二是子模块初始化是否正常,特别是通过 GitHub 源码包而非 git clone 获取时;三是 AGPL-3.0 对衍生作品的分发要求是否与你的商业模式兼容。Memoh 的差异化在于代理级隔离和跨平台记忆,而非性能或轻量,如果你的需求只是快速跑一个聊天机器人,它可能过重。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记