
过去一年,几乎所有 AI 产品都在谈一个词:记忆。
ChatGPT 在加“长期记忆”,Claude 开始“更懂上下文”,各种 Agent 框架都在强调“持续对话”。但问题一直没变:这些记忆,到底属于谁?
最近刷屏的开源项目 Clawdbot,给了一个完全不同、甚至有点危险的答案。
它不把记忆交给云端,不交给公司,也不藏在黑盒里。它把所有记忆,原封不动地,放在你自己的硬盘上。
这款 MIT 许可的开源个人人工智能助手,由 Peter Steinberger 创建。在经历了一周疯狂增长之后,Clawdbot 很快就在 Github 上拿到 53 k星。
ps:多说一嘴,Clawdbot 的 LOGO 也突然从螃蟹改成了龙虾🦞。
它能做的事情并不稀奇,都是大模型很擅长的事情:管理邮件、安排行程、航班值机、定时跑后台任务……
但最为显著不同的是,它接入 Discord、WhatsApp、Telegram、Slack 等常用聊天工具之后,奇妙的化学反应就产生了:它不会忘。
哪怕你三天不找它,三个月不找它,重启电脑、换模型、清空上下文,它都还记得你们做过的决定、偏好和历史。
这很快引起来圈内开发人士的注意,Clawdbot 究竟怎么做到的呢?
就在刚刚,一位AI研究工程师 Manthan Gupta,特别研究了这个问题。他解构了 Clawdbot 背后的记忆系统,发现与 ChatGPT、Claude 大不相同。

为了说清这个问题,Manthan Gupta 表示需要搞清楚一个很容易被业界混淆的一个概念:上下文 ≠ 记忆。
“要理解 Clawdbot,必须先把很多产品刻意混淆的两件事拆开。”
什么是上下文?上下文,其实就是模型在这一轮请求中能看到的所有信息,包括:
System Prompt、对话历史、工具返回结果、当前消息等
为什么不管是做大模型开发还是Agent开发,大家一提上下文就会头疼,是因为上下文自带三个缺点:短、贵、有限。
那什么才是记忆?在 Clawdbot 里,Memory 是另一种大家已经习惯的事物:
记忆 = 存在磁盘上的文件
毕竟 prompt 也好,工具返回结果也好,都是给 AI 看的。但磁盘里的 Markdown 文件,确是人类用户能打开、能编辑、能 grep 的 。
这个 Markdown 文件更符合大家对于“记忆”的现象。
Manthan 表示,正是基于这一理念,Clawdbot 把 AI 从“会话工具”拉回成了“长期协作者”。
Clawdbot 的核心记忆设计,总结起来就是一句话:
Memory is just Markdown.
没有专有数据库,没有云端私有格式,没有你看不懂的内部状态。它的默认目录结构长这样:
~/clawd/
├── MEMORY.md # 长期记忆(整理后的重要信息)
└── memory/
├── 2026-01-26.md # 今天的流水笔记
├── 2026-01-25.md
└── ...
没有任何“AI 特权”。
其中,值得注意的一个关键设计点是,Clawdbot 把记忆分成了两层。
第一层:每日日志(短期、原始)。这一点就像人的工作笔记本。
今天聊了什么、做了什么决定、你随口提过的偏好,它都会写进去:
## 10:30 AM - API Discussion
Decided to use REST over GraphQL.
## 4:00 PM - User Preference
User prefers TypeScript over JavaScript.
第二层:长期记忆(整理、沉淀)。这一点可以理解成人类的“脑内知识库”。
当某些信息被反复提及、确认、引用,Agent 会把它们整理进 MEMORY.md,比如:
用户长期偏好、已做出的关键决策、项目背景、重要联系人等等。
这一步,相当于从记事本升级成常识。
# Long-term Memory
## User Preferences
- Prefers TypeScript over JavaScript
- Likes concise explanations
- Working on project "Acme Dashboard"
## Important Decisions
- 2026-01-15: Chose PostgreSQL for database
- 2026-01-20: Adopted REST over GraphQL
- 2026-01-26: Using Tailwind CSS for styling
## Key Contacts
- Alice (alice@acme.com) - Design lead
- Bob (bob@acme.com) - Backend engineer
会话运行时自动加载的 AGENT.md 则规定了读取这些记忆的一些原则:
SOUL.md (备注:这里的soul也是创建者 Peter 称之为没有彻底开源的唯一一点秘密。)告诉你是谁。
USER.md 告诉 agent 正在服务谁。
memory/YYYY-MM-DD.md 则存储当前的 contex。
如果在会话,还需要读取 MEMORY.md.
## Every Session
Before doing anything else:
1. Read SOUL.md - this is who you are
2. Read USER.md - this is who you are helping
3. Read memory/YYYY-MM-DD.md (today and yesterday) for recent context
4. If in MAIN SESSION (direct chat with your human), also read MEMORY.md
Don't ask permission, just do it.
有意思的是,Peter 还特别设置了一条:不要请求权限,干就完了!
当记忆文件保存之后,后台就会对这些这些记忆进行切片,建立向量语义索引。
┌─────────────────────────────────────────────────────────────┐
│ 1. File Saved │
│ ~/clawd/memory/2026-01-26.md │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 2. File Watcher Detects Change │
│ Chokidar monitors MEMORY.md + memory/**/*.md │
│ Debounced 1.5 seconds to batch rapid writes │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 3. Chunking │
│ Split into ~400 token chunks with 80 token overlap │
│ │
│ ┌────────────────┐ │
│ │ Chunk 1 │ │
│ │ Lines 1-15 │──────┐ │
│ └────────────────┘ │ │
│ ┌────────────────┐ │ (80 token overlap) │
│ │ Chunk 2 │◄─────┘ │
│ │ Lines 12-28 │──────┐ │
│ └────────────────┘ │ │
│ ┌────────────────┐ │ │
│ │ Chunk 3 │◄─────┘ │
│ │ Lines 25-40 │ │
│ └────────────────┘ │
│ │
│ Why 400/80? Balances semantic coherence vs granularity. │
│ Overlap ensures facts spanning chunk boundaries are │
│ captured in both. Both values are configurable. │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 4. Embedding │
│ Each chunk -> embedding provider -> vector │
│ │
│ "Discussed REST vs GraphQL" -> │
│ OpenAI/Gemini/Local -> │
│ [0.12, -0.34, 0.56, ...] (1536 dimensions) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 5. Storage │
│ ~/.clawdbot/memory/<agentId>.sqlite │
│ │
│ Tables: │
│ - chunks (id, path, start_line, end_line, text, hash) │
│ - chunks_vec (id, embedding) -> sqlite-vec │
│ - chunks_fts (text) -> FTS5 full-text │
│ - embedding_cache (hash, vector) -> avoid re-embedding │
└─────────────────────────────────────────────────────────────┘
这里注意:
sqlite-vec是一个 SQLite 扩展,它可以直接在 SQLite 中进行向量相似性搜索,无需外部向量数据库。
FTS5是 SQLite 内置的全文搜索引擎,为 BM25 关键词匹配提供支持。
它们共同使 Clawdbot 能够从单个轻量级数据库文件中运行混合搜索(语义搜索 + 关键词搜索)。
重点来了。
Clawdbot 从来不会把所有记忆一股脑塞进上下文。它的策略是:先搜索,再注入。
搜索怎么做?
每次涉及“过去的事”,Agent 必须先走一遍内存搜索流程:
两者加权融合:
finalScore = 0.7 * semantic + 0.3 * keyword
结果不够相关,直接丢弃。
这意味着什么?意味着上下文里永远只出现当前真正需要的记忆,而不是“我怕忘所以全塞”。
很多人会忽略这一点。
即上面提到的,所有索引,全在一个本地 .sqlite 文件里。
Clawdbot 的向量搜索,不是用外部向量数据库,而是:SQLite、sqlite-vec、FTS5。没有任何 SaaS 依赖。
这里也可以看出 Peter 对于“私人 Agent”的设计理念:私人AI助手,就该是单文件、可迁移、可备份的。
现实很残酷:再大的上下文窗口,也会被用完。
Clawdbot 的应对策略也很直接:压缩(Compaction)。(小编注:这一点类似于上周末OpenAI公开的Codex的处理办法,同样也是压缩。)
这里有一个特别的处理:在压缩之前,先强制刷新记忆。也就是说,在模型“遗忘”之前,它会先把重要信息写进 Markdown 文件。
这一步非常巧妙,既压缩了上下文,同时又避免了“总结时顺手把关键决策抹掉”的经典事故。
┌─────────────────────────────────────────────────────────────┐
│ Context Approaching Limit │
│ │
│ ████████████████████████████░░░░░░░░ 75% of context │
│ ↑ │
│ Soft threshold crossed │
│ (contextWindow - reserve - softThreshold)│
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Silent Memory Flush Turn │
│ │
│ System: "Pre-compaction memory flush. Store durable │
│ memories now (use memory/YYYY-MM-DD.md). │
│ If nothing to store, reply with NO_REPLY." │
│ │
│ Agent: reviews conversation for important info │
│ writes key decisions/facts to memory files │
│ -> NO_REPLY (user sees nothing) │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ Compaction Proceeds Safely │
│ │
│ Important information is now on disk │
│ Compaction can proceed without losing knowledge │
└──────
Clawdbot 支持多个 Agent:
个人、工作、实验用、自动化脚本
每个 Agent 都有:独立工作区、独立记忆、独立索引,彼此默认互不读取。
你可以让 WhatsApp 上的“生活助理”,完全不知道 Slack 里的工作内容。
这在今天的 AI 产品里,几乎是奢侈配置。
~/.clawdbot/memory/ # State directory (indexes)
├── main.sqlite # Vector index for "main" agent
└── work.sqlite # Vector index for "work" agent
~/clawd/ # "main" agent workspace (source files)
├── MEMORY.md
└── memory/
└── 2026-01-26.md
~/clawd-work/ # "work" agent workspace (source files)
├── MEMORY.md
└── memory/
└── 2026-01-26.md
Clawdbot的记忆系统之所以成功,是因为它遵循了几个关键原则:
1. 透明胜过黑盒
Memory 使用的是纯 Markdown 格式。用户可以阅读、编辑和进行版本控制。它不使用任何晦涩难懂的数据库或专有格式。
2. 搜索胜过注入
智能体不会将所有信息都塞进上下文,而是搜索相关信息。这样既能保持上下文的聚焦性,又能降低成本。
3. 持久性优于会话
重要信息不仅保存在对话记录中,还会保存在磁盘上的文件中。压缩操作无法删除已保存的内容。
4. 混合型搜索优于单一搜索
单独使用向量搜索无法精确匹配,单独使用关键词搜索无法获取语义信息。混合搜索则能兼顾两者。
回过头来,如果只看实现,Clawdbot 并不神秘。但正如 Peter 当时创建它的想法:
“今年会是个人 agent 之年,这个领域很可能会被 OpenAI、Anthropic 这些大厂主导。但我想做一个不同的选择:你能掌握自己的数据,而不是把更多数据交给这些巨头。”
因此,它传递出一个信号:
AI 的记忆,开始回到用户手里了。
它可以存在本地的磁盘里,用户可以像操作自己的“微信聊天记录一样”,可读、可控、可删除、可迁移。
很显然,这条路显然更受用户的欢迎。这也就不难理解,为什么2026开年,它会被大家刷屏了。
毕竟,当 Agent 开始长期陪伴用户,当 AI 不再只是回答问题,而是参与决策、执行、协作,记忆就从“功能”,变成了“权力”。
而谁掌握这份记忆,决定了 AI 最终站在谁那一边。
参考链接:
https://x.com/manthanguptaa/status/2015780646770323543
文章来自于“51CTO技术栈”,作者 “云昭”。
【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。
项目地址:https://github.com/browser-use/browser-use
【开源免费】AutoGPT是一个允许用户创建和运行智能体的(AI Agents)项目。用户创建的智能体能够自动执行各种任务,从而让AI有步骤的去解决实际问题。
项目地址:https://github.com/Significant-Gravitas/AutoGPT
【开源免费】MetaGPT是一个“软件开发公司”的智能体项目,只需要输入一句话的老板需求,MetaGPT即可输出用户故事 / 竞品分析 / 需求 / 数据结构 / APIs / 文件等软件开发的相关内容。MetaGPT内置了各种AI角色,包括产品经理 / 架构师 / 项目经理 / 工程师,MetaGPT提供了一个精心调配的软件公司研发全过程的SOP。
项目地址:https://github.com/geekan/MetaGPT/blob/main/docs/README_CN.md
【开源免费】FASTGPT是基于LLM的知识库开源项目,提供开箱即用的数据处理、模型调用等能力。整体功能和“Dify”“RAGFlow”项目类似。很多接入微信,飞书的AI项目都基于该项目二次开发。
项目地址:https://github.com/labring/FastGPT
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】MindSearch是一个模仿人类思考方式的AI搜索引擎框架,其性能可与 Perplexity和ChatGPT-Web相媲美。
项目地址:https://github.com/InternLM/MindSearch
在线使用:https://mindsearch.openxlab.org.cn/
【开源免费】Morphic是一个由AI驱动的搜索引擎。该项目开源免费,搜索结果包含文本,图片,视频等各种AI搜索所需要的必备功能。相对于其他开源AI搜索项目,测试搜索结果最好。
项目地址:https://github.com/miurla/morphic/tree/main
在线使用:https://www.morphic.sh/
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0