Zylos LogoZylos
架构

记忆系统

Zylos 如何通过分层的文件式架构在会话间维持持久记忆。

Zylos 使用分层的文件式记忆系统,让 AI 在会话之间保持持久知识。受认知科学启发,不同类型的信息存储在不同层级——从始终存在的身份信息,到按需加载的参考资料。

为什么选择文件式记忆?

传统 AI 助手在会话结束时会遗忘一切。Zylos 通过纯 Markdown 文件解决了这个问题——Claude 在会话启动时读取这些文件,并在运行过程中更新它们。文件简单、可审计,并通过每日 git 提交进行版本控制。

记忆层级

~/zylos/memory/
├── identity.md              # 我是谁(始终加载)
├── state.md                 # 我在做什么(始终加载)
├── references.md            # 在哪里找到东西(始终加载)
├── users/
│   └── <id>/profile.md      # 每用户偏好(按需加载)
├── reference/
│   ├── decisions.md         # 关键决策及其依据
│   ├── projects.md          # 进行中/规划中的项目
│   ├── preferences.md       # 团队共享偏好
│   └── ideas.md             # 未确定的计划
├── sessions/
│   ├── current.md           # 今日会话日志
│   └── YYYY-MM-DD.md        # 历史会话日志
└── archive/                 # 冷存储

始终加载层

这些文件通过钩子注入到每个会话中。为最小化上下文使用,有意保持简洁。

文件用途容量预算
identity.mdBot 个性、原则、数字资产约 50 行
state.md当前关注点、进行中的工作、待办任务小于 4KB
references.md配置文件路径、关键路径、活跃 ID 的指针约 40 行

按需加载层

在 Claude 需要时加载——读取一个文件的代价远低于做出错误假设。

文件用途触发条件
users/<id>/profile.md用户特定的偏好和上下文与某用户互动时
reference/decisions.md关闭了其他选项的已确定选择做出决策时
reference/projects.md带状态的范围化工作事项开始或恢复工作时
reference/preferences.md全团队的固定指引遵循某种规范时
reference/ideas.md未确定的提案和探索探索想法时
sessions/current.md今日事件日志回顾近期事件时
archive/从活跃文件移出的历史数据查找旧信息时

记忆更新机制

日常运行中

当 Claude 在对话中学到重要信息时,会直接写入对应的记忆文件。例如:

  • 用户说"总是用 bun 代替 npm" → 写入 reference/preferences.md
  • 决定使用仅 ESM → 写入 reference/decisions.md
  • 启动新项目 → 写入 reference/projects.md

记忆同步

记忆同步是一个自动化流程,回顾近期对话并提取结构化信息。它作为后台任务运行,当未汇总的对话数量超过阈值时触发。

同步流程:

  1. 轮转 -- 如果日期已变更,轮转会话日志
  2. 获取 -- 从 C4 数据库拉取未汇总的对话
  3. 读取 -- 读取所有记忆文件以获取当前上下文
  4. 提取并分类 -- 将对话中的信息提取到对应文件
  5. 写入 -- 更新记忆文件
  6. 检查点 -- 在 C4 中标记同步边界,避免对话被重复处理

分类规则

每条信息都有指定的存储目标:

信息类型存储目标示例
关闭了其他选项的已确定选择reference/decisions.md"所有代码将使用仅 ESM"
带状态的范围化工作事项reference/projects.md"Docker 支持——已启动,PR 审查中"
全团队的固定指引reference/preferences.md"PR 审查应聚焦问题,而非赞美"
未确定的提案reference/ideas.md"也许将 Notion 作为一个渠道"
用户特定偏好users/<id>/profile.md"此用户偏好中文回复"
当前工作和任务state.md"正在进行文档第二阶段"
今日事件sessions/current.md"审查了 PR #294,发现升级 bug"

多用户支持

Zylos 服务于团队。每个用户在 memory/users/<id>/profile.md 有独立的个人档案,存储其个人偏好、沟通风格和上下文。Bot 范围的设置保留在核心记忆文件中。

整合与压缩

定期检查记忆文件,防止无限增长:

  • 核心文件有容量预算——state.md 必须保持在 4KB 以内
  • 会话日志超过 30 天的会被移入 archive/
  • 参考文件无容量上限,但条目会按新鲜度进行审查
  • 用户档案超过约 1KB 时会被摘要压缩

内容不会被删除——会被移入 archive/,仍可从 git 历史中恢复。

每日备份

活动监控器在每天凌晨 3:00 对 memory/ 目录执行每日本地 git 提交,为所有记忆变更提供安全网,无需任何外部服务。

On this page