AI记忆革命爆发!Clawdbot如何像大脑般记住一切

  新智元报道

  编辑:好困元宇

  一个开源 AI,能记住你几个月前的决定、在本地替你跑活、还不受大厂控制:Clawdbot 到底是个人助理,还是下一代「赛博打工人」?

  Clawdbot 太疯狂了!

  你的7×24 小时 AI 员工;

  不是智能体,是赚钱机器 ……

  2026 年初,一个名为 Clawdbot 的开源个人 AI 助手,迅速引爆了开源社区和硅谷极客圈。

  从技术爱好者到普通用户,许多人玩 Clawdbot 都玩疯了,一开发起来,根本都停不下来。

  甚至,还有人把 Clawdbot 当成了赚钱工具,开始兜售 Clawdbot 赚钱指南,还不忘贩卖一波焦虑:

  错过了 Clawdbot 浪潮,你将永远沦为「数字底层」!

  Clawdbot 被网友称为「长了手的 Claude」或者「7×24 在线的贾维斯」,它最大的亮点之一,便是长时记忆和长时任务执行能力。

  回想一下你目前是如何使用 AI 助手的。

  你在浏览器中打开 AI 助手,输入问题,得到回复,然后关闭标签页;但当你明天再回来时,又得从头开始。

  它不会记住你昨天讨论过的内容,不了解你的偏好、你的项目,也不了解你的工作流程。

  你可能会好奇 Clawdbot 是如何记住那么多东西的,最近 AI 研究工程师 Manthan Gupta 就写了一篇文章来回答这个问题。

  他在「Clawdbot 如何记住一切」一文中详细复盘了 Clawdbot 独特的记忆机制原理。

  与那些跑在云端的 ChatGPT 或者 Claude 不一样,Clawdbot 是直接在你本地机器上跑的,而且能直接集成到你已经在用的聊天平台里,比如 Discord、WhatsApp、Telegram 等。

  最绝的是,Clawdbot 能自主处理现实世界的任务:管理邮件、安排日历、处理航班值机,还能按计划跑后台任务。

  但真正吸引 Manthan Gupta 眼球的,是它的持久记忆系统:它能保持全天候的上下文记忆,记住之前的对话,并且能基于过往的互动无限叠加。

  相比于 ChatGPT 和 Claude,Clawdbot 走了一条完全不同的路子:

  它不搞那种基于云端、由大公司控制的记忆,而是把所有东西都留在本地,让用户完全掌控自己的上下文和技能。

  下面,我们就来跟随 Manthan 这篇文章,来深挖一下 Clawdbot 是怎么运作的。

  上下文与记忆

  Clawdbot 的基本问题定义

  如何构建上下文

  在聊记忆之前,咱们先得搞清楚模型在处理每个请求时到底看到了什么:

[3] 当前消息

  系统提示词定义了AI智能体有多大能耐以及有什么工具可用。

  跟记忆有关的是项目上下文,这包括了注入到每个请求中的、用户可编辑的 Markdown 文件:

  这些文件跟记忆文件一块待在AI智能体的工作区里,这就让整个AI 智能体的配置变得完全透明,而且你想改就改。

  上下文与记忆的区别

  搞清楚上下文和记忆的区别,是理解 Clawdbot 的基石。

  上下文是模型在单次请求里看到的所有东西:

上下文 = 系统提示词 + 对话历史 + 工具结果 + 附件

  上下文是:

  • 转瞬即逝的:只在这个请求里存在,用完即弃

  • 有边界的受限于模型的上下文窗口 (比如 200Token)

  • 昂贵的:每个Token都要算 API 的钱,还影响速度

  记忆是存在硬盘里的东西:

记忆= MEMORY.md + memory/*.md + 会话实录

  记忆是:

  • 持久的重启、过几天、过几个月都在

  • 无边界的可以无限增长

  • 便宜的:存着不花 API 的钱

  • 可搜索的:建了索引,支持语义检索

  记忆工具

  AI智能体通过两个专门的工具来查阅记忆:

  1. memory_search

  目的:在所有文件里把相关的记忆找出来:

}

  2. memory_get

  目的:找到内容后,把具体内容读出来

}

  返回:

}

  写入记忆

  这里没有专门的 memory_write 工具。AI智能体想写记忆,就用它平时写文件、改文件的那些标准工具。

  既然记忆就是纯 Markdown,你也可以手动去改这些文件(它们会被自动重新索引,很智能)。

  具体写到哪,是由 AGENTS.md 里的提示词来控制的:

  自动写入也会在「预压缩刷新」和会话结束时发生。

  记忆存储

  Clawdbot 记忆系统的核心原则就是:「记忆就是AI智能体工作区里的纯 Markdown 文件。」

  Clawdbot 记忆系统如何运作的?

  双层记忆系统

  记忆就住在AI智能体的工作区里(默认是~/clawd/):

└── ...

  第 1 层:每日日志(memory/YYYY-MM-DD.md)

  这些是「只增不减」的每日笔记,AI智能体一整天都会往这里写东西。

  当它想记住点什么,或者你明确告诉它「把这个记下来」的时候,它就写这。

用户提了一嘴,他们更喜欢 TypeScript 而不是 JavaScript。

  第 2 层:长期记忆(MEMORY.md)

  这是精选过的、持久的知识库。

  当有大事发生、或者有了重要的想法、决定、观点和经验教训时,AI智能体会写到这里。

- Bob (bob@acme.com) - 后端工程师

  AI 智能体如何知道要读记忆

  AGENTS.md 文件(会自动加载)里写着指令:

别问许可,直接干就完了。

  记忆如何被索引

  当你保存一个记忆文件时,后台是这么运作的:

└─────────────────────────────────────────────────────────────┘
  • sqlite-vec 是个 SQLite 扩展,能直接在 SQLite 里搞向量相似度搜索,不需要外挂一个向量数据库。

  • FTS5 是 SQLite 自带的全文搜索引擎,负责 BM25 关键字匹配。

  这两者配合起来,Clawdbot 就能靠一个轻量级的数据库文件同时搞定「语义+关键字」的混合搜索。

  记忆如何被搜索

  当你搜记忆的时候,Clawdbot 会并行跑两种搜索策略。

  向量搜索(语义)找的是意思相近的内容,而 BM25 搜索(关键字)找的是有精确Token匹配的内容。

  结果会按权重打分合并:

finalScore = (0.7 * vectorScore) + (0.3 * textScore)

  为何是 70/30?

  语义相似度是记忆召回的主力,但 BM25 关键字匹配能抓住向量可能会漏掉的精确术语(比如名字、ID、日期)。

  分数低于 minScore 阈值(默认 0.35)的结果会被过滤掉。这些值都可以自己配,它可以保证你无论是搜概念(比如「那个数据库的东西」)还是搜具体细节(比如「POSTGRES_URL」),都能够搜得准。

  多智能体记忆

  Clawdbot 支持多个AI智能体,而且每个智能体的记忆是完全隔离的:

└── 2026-01-26.md

  Markdown 文件(真相的源头)在每个工作区里,而 SQLite 索引(衍生数据)在状态目录里。

  每个AI智能体都有自己的地盘和索引。

  内存管理器是靠 agentId + workspaceDir 来区分的,所以自动跨智能体搜记忆这事是不会发生的。

  那AI智能体能读对方的记忆吗?

  默认不行。

  每个AI智能体只能盯着自己的工作区。

  不过,工作区只是个软沙箱(默认工作目录),不是那种不可逾越的硬边界。

  理论上,除非你开了严格的沙箱模式,否则AI智能体是可以用绝对路径去访问另一个工作区的。

  这种隔离对于区分上下文特别好用。

  比如搞个用于 WhatsApp 的「私人」AI智能体,再搞个用于 Slack 的「工作」AI 智能体,它俩就能有完全不同的记忆和性格。

  Clawdbot 如何管住上下文

  压缩

  每个 AI 模型都有上下文窗口的上限。

  Claude 是 200KToken,GPT-5.1 是 1M。

  聊得久了,总会撞上这堵墙。

  一旦撞墙,Clawdbot 就会使出「压缩」大法:把旧的对话总结成一个精简的条目,同时保留最近的消息原封不动。

└─────────────────────────────────────────────────────────────┘

  自动 vs 手动压缩

  自动:快到上下文长度限制时触发

  • 你会看到详细模式下自动压缩已完成

  • 原始请求将使用压缩后的上下文重试

  手动:使用/compact 命令

  • `/compact`专注于决策和待解决的问题

  跟某些优化不一样,压缩后的东西是会存到硬盘里的。摘要会被写进会话的 JSONL 转录文件,所以以后的会话开始时,都能带着这段被压缩的历史。

  记忆刷新

  基于 LLM 的压缩是有损的。重要信息可能会被「总结没了」。

  为了防止这个,Clawdbot 用了一招「压缩前记忆刷新」。

└─────────────────────────────────────────────────────────────┘

  这个记忆刷新可以在 clawdbot.yaml 或 clawdbot.json 文件里配置。

}

  剪枝

  工具返回的结果有时候巨大无比。一个 exec 命令可能吐出 50,000 个字符的日志。

  剪枝就是把这些旧的输出给修剪掉,但不重写历史。这是个有损过程,剪掉的旧输出就找不回来了。

└─────────────────────────────────────────────────────────────┘

  硬盘上的 JSONL 文件:没变(完整的输出还在那)。

  Cache-TTL 剪枝

  Anthropic 会把提示词前缀缓存最多 5 分钟,以此来降低重复调用的延迟和成本。

  如果你在 TTL(生存时间)窗口内发送相同的提示词前缀,缓存的Token费用能省大概 90%。

  要是 TTL 过期了,下个请求就得重新缓存整个提示词。

  问题来了:如果会话闲置时间超过了 TTL,下个请求就没缓存了,必须按全价「缓存写入」费率重新缓存整个对话历史。

  Cache-TTL 剪枝就是为了解决这个问题,它会检测缓存什么时候过期,并在下个请求之前把旧的工具结果剪掉。

  重新缓存的提示词变小了,成本自然就低了:

}

  会话生命周期

  会话不会永远持续。它们会根据可配置的规则进行重置,给记忆创造了天然的边界。

  默认行为是每天重置。不过也有其他模式可选。

  会话记忆钩子

  当你运行/new 开一个新会话时,会话记忆钩子能自动保存上下文。

└─────────────────────────────────────────────────────────────┘

  总结

  Clawdbot 的记忆系统之所以能成,是因为它坚持了这么几个关键原则:

  • 透明度 > 黑盒

  记忆就是纯 Markdown。你能读、能改,还能用版本控制管它。没有什么不透明的数据库或者专有格式。

  • 搜索 > 注入

  AI智能体不是把所有东西一股脑塞进上下文,而是去搜相关的。这样既保持了上下文的专注,又省钱。

  • 持久性 > 会话

  重要信息以文件的形式存在硬盘上,而不仅仅是活在对话历史里。压缩也毁不掉已经存盘的东西。

  • 混合 > 纯粹

  光靠向量搜索会漏掉精确匹配。光靠关键字搜索会漏掉语义。混合搜索让你鱼和熊掌兼得。

  参考资料:

  https://x.com/manthanguptaa/status/2015780646770323543