Skip to content

v5.0.0 — 寄生在开源壳上的记忆层

Choose a tag to compare

@MirHuang666 MirHuang666 released this 09 Nov 01:39
· 262 commits to main since this release

本页会随勘误就地更新。规范全文以 main 为准。

范围

这一版改的不是功能,是交付形态:停止自研客户端,把记忆层嫁接到开源壳上。

前面四个大版都在造自己的壳:加载、组装、路由、执行、归档,五件事都要自己兜。
结论是——壳是最不值钱的那层:它每天在变(Electron、UI、登录、模型路由),而记忆层几乎不变。
继续自研壳,等于用有限的精力去追一个一直在动的东西。

所以这一版做了三件套的分工,边界写死:

件 谁 约定
壳 Hermes Agent 中文社区桌面版(Electron + Python,本地 SQLite + FTS5) 只读不托管;记忆仍是纯文件,两边随时可拆
脑 免费档 Qwen/Qwen3.5-4B(256K 上下文);重活仍交网页端 DeepSeek 判断型任务不下放给小模型
检索 本地 bge-m3(免费、不出门) embedding 与 rerank 都在本机

两个细节是设计,不是配置:

  • 路径:C:\hermes-mem 用目录联接(Junction)指向中文长路径。为什么不用真路径?
    小模型的分词会把 AI会话检索记录 读成 AI 会话检索记录(多一个空格)→ File not found。
    绕开它的缺陷,比要求它别犯错便宜。
  • 工具面:platform_toolsets 白名单把 31 组裁到 11 组。上下文预算是产品约束:
    多留一组工具,就少留一段记忆。

证据

  • read_file 0.4 秒读出归档 1098 条,内容与 LATEST.md 逐字一致(含「上轮追加 16 条」);
  • 一轮 42.6 秒 / 38.6k 输入 token;工具面 31 组 → 11 组;
  • 免费档校验(价格页机器可读数据):Qwen3.5-4B 输入/输出均为 0;
    Qwen2.5-7B-Instruct 同为 0,但上下文仅 32K,被壳的 64K 门槛拒绝;
  • 本地 bge-m3 嵌入 2525 块:8.5 分钟 / 0 tokens;
  • 失败留档:4B 把 AI会话检索记录 输出成 AI 会话检索记录(多一个空格)→ File not found。
    这条失败比上面几条成功更有用——它决定了 Junction 那个设计。

边界

  • 数据出本地:大脑在云端,发给它的都离机;上云前必须过 mask_secrets.py,
    这条尚未接进壳的调用链——是这一版最大的未闭合项;
  • 免费档限流:RPM/TPM 打满即 429,批量活不要压在这里;
  • 壳升级会打回原形:config.yaml 之外的补丁要重放(工具白名单已落在配置里,可重放);
  • 登录态仍未解决:壳读网页会话那条链路依旧要手动扫码,与 v4.3.0 记录的同一问题同源;
  • 不含:登录态持久化;脱敏只实现未接线。

修订记录

2026-11-09 首版:新增 docs/SHELL_ADOPTION.md;README 徽章、PROJECT_MEMO §五、
DECISIONS 版本线同步到 v5.0.0。

壳会过时,记忆不会。