Skip to content

Why Honcho over mem0

这是一页架构决策记录:2026-04-17 把团队记忆后端从 mem0 + Zilliz Cloud 切到 Honcho 托管的完整决策依据 + 6 条踩坑记录。

配套:Honcho(实体)、Honcho memory(范式)、Honcho 接入指南(怎么接)。

TL;DR

维度mem0Honcho
范式事实提取 + vector 召回用户综合理解(dual-peer + Dreaming + Dialectic)
后端自托管 SDK + Zilliz Cloud托管(zero infra)
自维护代码mem0_provider_new.py不需要(hermes 内置 honcho 插件)
月成本Zilliz 月付 + 自维护时间$18-30 USD(5 hermes)
团队当前实际状态集成不稳,Zilliz collection 始终为空✅ 业务路径全通
决策结果❌ 退役✅ 上线

Allen 拍板的真正驱动力:减运维。 不是技术先进性。

决策时序

时间事件
2026-04-17 06:59主 plan cleanup-and-3docs 完成,已经接入 mem0 + Zilliz
2026-04-17 18:30Allen 提出 "Honcho" → 我建议 "3 个月后再考虑"
2026-04-17 22:15Allen 强调 "我更在意运维负担" → 我修正建议为"立刻切"
2026-04-17 23:13Honcho 注册 + 创建 workspace teamos-prod
2026-04-18 00:55hermes-admin 第一次 status 显示 honcho active(但缺 key)
2026-04-18 01:25dashboard 看到第一个真实 hermes session "data"
2026-04-18 06:30完整体检暴露问题:业务路径全 401(Global key 无写权限)
2026-04-18 07:00切 admin scope key + monkey patch delete_workspace
2026-04-18 07:30hermes runtime 真业务路径 100% 通 ✓

主动工时:约 4 小时。

核心决策依据

1. Honcho 跟 mem0 不是替代关系,是不同层

维度mem0Honcho
主用法"存事实,按 query 检索""存对话,问 chat 端点综合理解"
输出fact 列表LLM-quality 推理
自动建用户画像✅ Dreaming Agent
跨 session 召回vector 找 factchat 端点综合

举例(Honcho quickstart 真实数据):

  • 输入 14 条消息(CI debug + 个人理财 app)
  • 问 Honcho "What should I know about this user?"
  • 答:"this person developing personal finance app... notably thoughtful about UX (known vs surveilled tension)... business-minded calculating unit economics early"

mem0 给不了这种综合判断,只能给提取出的事实条。

2. 真正的"减运维"账

隐形运维成本mem0Honcho
自维护 provider 代码mem0_provider_new.py(要测/升级/调)❌ 不需要
Zilliz Cloud 配额管理要看❌ 无
mem0 SDK 升级跟踪要跟❌ Honcho SDK 跟着 hermes 升级
出 bug 自己 debug社区小有 Honcho 支持团队
嵌入模型/维度选择要决策❌ 自动

反直觉但真实:原以为 Honcho 是新组件 = 多运维。实际算账:Honcho 减运维,因为它把"自维护代码 + 自管 vector store + 自调试"全吃了。

3. 数据隔离粒度兼容

隔离需求mem0 实现Honcho 实现
团队内部namespace = workspace_id + collectionworkspace_id(单 workspace)
用户跨 hermesuser_id + agent_idpeer_id 命名(user-X-via-hermes-Y)
跨成员防护应用代码层同 + Honcho _observation 配置

详见 ../system/隐私规则/HERMES_HONCHO_RETRIEVAL_GUARDRAILS

4. mem0 的实际状态:从未稳定运行

体检发现的事实:

  • Zilliz collection _86lux_memomem0migrations 都是空的(Zilliz API 返回 1802 = no records)
  • /opt/data/.mem0/ 本地缓存只有 20KB(config.json + history.db)
  • admin / guohua / linjun 的 .env 里写的 mem0 配置都是孤儿(hermes runtime 实际从未真正调通)
  • 切换 mem0 → Honcho 零数据迁移成本(没数据可迁)

踩坑记录(6 个)

切 Honcho 走通用了 4 小时,其中 80% 时间在踩这 6 个坑。未来人重复时直接看这里能省 3 小时

坑 1:API key 复制带前缀字符

第一次 key 是 Ehch-v3-... 多了个 E 前缀(剪贴板/IME 吞字符)→ "Invalid API key"。

教训:贴 key 时确认前缀是 hch-v3-(无 E)。如果首次 401,先重新复制对照前缀。

坑 2:HONCHO_WORKSPACE_ID env 不被 SDK 读

.envHONCHO_WORKSPACE_ID=teamos-prod 没用 → SDK 默认 fallback 到 "default"(docs 写的)或实际是 "hermes"(hermes plugin 默认 host name)。

教训:必须写到 /opt/data/honcho.json 显式指定 workspace 字段。env 只能传 API key。

坑 3:Honcho dashboard SCOPE 选 Workspace 实际保存为 Global

dashboard 创建 key 表单有 SCOPE = Workspace / Peer / Session 三选一,填了 ID 字段后保存,列表里显示 SCOPE = Global

可能是 Honcho v3 dashboard UI 的 bug,也可能 v3 这版"workspace scope"还没真实施。

教训:3 把 key 创建后回 dashboard 检查 SCOPE 列。如果都是 Global 不要慌,下一坑解决。

坑 4:Global scope key 几乎只有"创建空 peer"权限

实测:

  • ✅ POST /v3/workspaces/teamos-prod/peers (create peer with id) → 201 Created
  • ❌ POST /v3/workspaces/.../peers/{id}/messages (add message) → 401 JWT not permissioned
  • ❌ session.add_peers / session.add_messages / dialectic chat / upload MEMORY.md → 全 401

意味着 Global scope 等于"只读 + 建空 peer"——干不了 hermes 业务真正需要的事。

教训:必须用 admin scope key(dashboard 创建时 ADMIN ACCESS = Yes)。Global scope 在 Honcho v3 cloud 上实际等于纸面权限,不实用。

坑 5:Honcho SDK _ensure_workspace 每次 init 都 POST /v3/workspaces

SDK 行为:每次 Honcho(api_key=...).peer(...) 第一次调用,内部强制 POST /v3/workspaces "get-or-create"。

  • admin scope key → POST 成功(自带创建权限)
  • Global scope key → 401
  • workspace 已存在不影响(SDK 不检查是否存在,硬调)

我们 patch 了 SDK 把这步跳过(_workspace_ensured = True,详见 ../system/Honcho 接入指南)。

用 admin scope key 后这个 patch 其实不需要——admin 能成功 ensure。我们保留 patch 是因为:

  1. 跳一步没必要的网络调用,启动更快
  2. 不冲突,纯优化

教训:admin scope key 选了,patch 就当冗余优化保留。

坑 6:admin scope key 能调 delete_workspace —— 必须 patch 屏蔽

admin scope = 全权 = 包括能调 client.delete_workspace("teamos-prod") 一键删团队记忆。

虽然 hermes 业务代码不会主动调,但:

  • LLM 误调(prompt injection / 幻觉)
  • 容器入侵者
  • 未来开发者手滑

任意一个就团队记忆灭。

修复:monkey patch Honcho.delete_workspace 重命名为 delete_workspace_DISABLED(详见 ../system/Honcho 接入指南)。这样调它会 AttributeError,永远不可能误删。

教训:用 admin scope 必须配 monkey patch 屏蔽 delete_workspace。这两件事是配套的。

最终架构

3 hermes 容器
  ├── /opt/data/honcho.json (含 admin scope key + workspace=teamos-prod)
  ├── /usr/local/lib/python3.11/site-packages/honcho/client.py (已 patch)
  │     ├── _ensure_workspace: skip (优化)
  │     └── delete_workspace: DISABLED (安全)
  └── 内置 honcho plugin → 4 工具暴露给 LLM

           ↓ HTTPS

Honcho cloud (api.honcho.dev)
  └── workspace=teamos-prod
       ├── peer: admin / guohua / linjun (real users)
       ├── peer: hermes-admin / hermes-guohua / hermes-linjun (AI peers)
       └── sessions accumulating dual-peer dialogue

长期演进

  • 3-6 个月后:评估 Honcho 跟同事画像准不准。如果好用 → 写一份 ../system/团队画像综合 让 admin 定期抽 hermes-admin reasoning 出团队/品牌洞察
  • Honcho v4:可能会修 SCOPE/workspace key 这些边角 case,到时候撤掉 monkey patch
  • upstream issue:考虑给 plastic-labs 提 issue 反馈"workspace scope 实际是 Global"的 dashboard UI bug

关联

TeamOS · docs as code · canon=权威知识,drafts=候选区