ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

OpenMausBot Bot记忆机制揭秘:纯Markdown文件让AI Bot跨任务记住一切

OpenMausBot Bot记忆机制揭秘:纯Markdown文件让AI Bot跨任务记住一切

OpenMausBot Bot记忆机制揭秘:纯Markdown文件让AI Bot跨任务记住一切

【免费下载链接】OpenMausBotOpen-source Grok Bot alternative with a virtual machine that bots can use项目地址: https://gitcode.com/GitHub_Trending/op/OpenMausBot

OpenMausBot 是一款开源的 AI 机器人平台(Grok Bot 的开源替代方案,Bot 可驱动虚拟机干活),而它的Bot 记忆机制堪称"简单到极致"的设计典范:不依赖任何数据库,只靠磁盘上几个纯 Markdown 文件,就让 AI Bot 在跨任务、跨会话之间稳定地"记住一切"。更妙的是,这些文件你可以随时用任何编辑器打开、修改甚至删除——Bot 相信什么,你一目了然。

为什么"Bot 记忆"是 AI 助手的核心痛点

大多数聊天机器人一关会话就"失忆":你上午让它记住"偏好简短回复",下午换个话题它又问你一遍。OpenMausBot 把"Bot 记忆机制"当成一级公民来设计,官方文档 docs/memory.md 开篇就承诺:每个 Bot 都在任务之间保留笔记,而且这些笔记就是纯 Markdown 文件,不存在任何其他地方。

揭秘记忆结构:一个文件夹里的三层笔记

每个 Bot 在服务端磁盘上都有一个私有工作区,结构简单到令人发指:

~/.openmausbot/workspaces/<botId>/ ├── MEMORY.md 每轮对话都会加载的"长期记忆" └── memory/ ├── <topic>.md 主题笔记,Bot 按需读取 └── log/ └── 2026-09-10.md Bot 用"自己的话"写的当日工作日记

1️⃣ MEMORY.md:永远加载的长期记忆

每一轮对话开始时,MEMORY.md的**前 200 行(或 24 KB,以先到者为准)**会被自动注入 Bot 的系统提示词。所以 Bot 会自觉把这里保持得"短而精"——只放跨会话都成立的永久事实:用户偏好、长期决定、重要纠正。

2️⃣ memory/ .md:按需加载的主题笔记

篇幅较长的内容(客户资料、项目细节)放在主题文件里,永远不会自动加载。Bot 判断需要时,才用自己的文件工具去读取——就像人"需要时才翻笔记",既省上下文又省 token。MEMORY.md里留一行see memory/clients.md的指引,Bot 就知道去哪找。

3️⃣ memory/log/:Bot 的私人日记

每完成一轮对话,harness 会往当日日志里追加一行:Bot 最后说了什么、用了哪些工具、这轮是否失败。日志从不注入提示词,纯粹是留给你看的"工作流水账"——排查 Bot 行为时极其好用。

加载预算:200 行红线如何倒逼 Bot 自我整理

MEMORY.md写多了会怎样?机制本身会"教育"Bot。预算常量定义在 server/workspace.ts(MEMORY_MAX_LINES = 200、MEMORY_MAX_BYTES = 24_000),一旦被截断:

  • Bot 的系统提示词里会被告知"文件被截断了,你没看到后面的内容",并提示它立即整理合并旧条目;
  • 设置面板里的仪表盘(gauge)同步显示占用:80% 变琥珀色,超预算变红色,并直白地告诉你是哪几行没被加载。

这套"硬预算 + 自我整理"的思路,让记忆文件不会无限膨胀——Bot 学会了像人一样定期整理笔记。

可视化记忆面板:能看、能改、能一键撤销

打开Bot Settings → Memory,你看到的就是上面那些 Markdown 文件的可视化版本,核心能力有三:

  • 仪表 + 编辑器:实时显示行数/字节数对照预算;编辑保存时携带文件哈希,如果 Bot 恰好在你打字时写了新内容,保存会被拒绝并提示"Scout changed this file while you were editing",你可以选择 Reload 或 Overwrite——绝不悄悄覆盖 Bot 的记忆;
  • 变更日志(journal):每一次修改(你改的、Bot 改的、导入的、撤销的)都记录在 Bot 工作区之外的日志文件里(含前后哈希、diff 和完整旧文本),支持一键 Undo。日志放在 Bot 碰不到的地方,"Bot 能编辑的记录就不算记录";
  • Obsidian 直通:面板里一键用 Obsidian 打开记忆文件夹,[[wikilinks]]、YAML frontmatter 全部原生支持。

安全细节:Bot "好心记住"的密钥,存也白存

这是最容易被人忽略、却最值得点赞的设计,实现在 server/memory-store.ts 中:

  • 写盘前强制脱敏:任何像 API key、token、password: …、私钥块的内容,都会先被替换成«redacted N chars»才落盘——Bot 从.env里"好心"记住的密钥,带不走;
  • 原子写入 + 0600 权限:写入中途崩溃也不会留下半截文件,且其他系统账户无权读取包含隐私的记忆;
  • 路径白名单:API 只接受MEMORY.md、memory/<topic>.md、memory/log/<day>.md三种形状,并防符号链接逃逸,杜绝任意文件读写。

跨会话回忆:让群聊 Bot 知道你在私聊里干了什么

三层文件解决"记住事实",三个机制解决"记住发生过什么"(见 docs/memory.md):

  1. recent-work brief:每轮系统提示词里附带最近两天 Bot 在其他对话里说的最新内容(最多 10 行),群聊里的 Bot 因此知道一小时前私聊里谈了什么;
  2. session_search 时间搜索:支持since: "yesterday"这样的纯时间检索,无需关键词就能问出"昨天站会之后发生了什么";
  3. 隐私标记:私有私聊的内容被引用进群聊时,会自动打上"涉及 1 个私聊"的标记,防止悄悄泄露。

一场每日站会从此可以变成群聊例程:组长发问,成员各凭 brief 作答,需要细节再session_search拉取。

核心文件索引

想深入源码,从这四处入手即可:

  • 记忆加载与预算常量:server/workspace.ts(loadMemory在 L99)
  • 读写规则、脱敏与冲突检测:server/memory-store.ts
  • 变更日志与 Undo:server/memory-journal.ts
  • 设置面板前端:src/components/bot-settings/MemorySection.tsx
  • 完整机制文档:docs/memory.md

总结:OpenMausBot 的 Bot 记忆机制证明了"最好的记忆系统可能就是你最熟悉的东西"——纯 Markdown 文件 + 硬加载预算 + 可视化面板 + 安全落盘。透明、可审计、可手改,这套设计对任何想要给 AI Bot 加"长期记忆"的团队,都是一份可以直接抄作业的参考答案。

【免费下载链接】OpenMausBotOpen-source Grok Bot alternative with a virtual machine that bots can use项目地址: https://gitcode.com/GitHub_Trending/op/OpenMausBot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

返回列表