持续怒斩53K星!狠人揭秘Clawdbot反行业记忆系统!跟ChatGPT大不同:不靠狂塞上下文,而是一个个md文件!网友:AI记忆第一次被工程化了

AITNT-国内领先的一站式人工智能新闻资讯网站
# 热门搜索 #
持续怒斩53K星!狠人揭秘Clawdbot反行业记忆系统!跟ChatGPT大不同:不靠狂塞上下文,而是一个个md文件!网友:AI记忆第一次被工程化了
5928点击    2026-01-27 16:52

持续怒斩53K星!狠人揭秘Clawdbot反行业记忆系统!跟ChatGPT大不同:不靠狂塞上下文,而是一个个md文件!网友:AI记忆第一次被工程化了


过去一年,几乎所有 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 大不相同。


持续怒斩53K星!狠人揭秘Clawdbot反行业记忆系统!跟ChatGPT大不同:不靠狂塞上下文,而是一个个md文件!网友:AI记忆第一次被工程化了


上下文 ≠ 记忆


为了说清这个问题,Manthan Gupta 表示需要搞清楚一个很容易被业界混淆的一个概念:上下文 ≠ 记忆。


“要理解 Clawdbot,必须先把很多产品刻意混淆的两件事拆开。”


什么是上下文?上下文,其实就是模型在这一轮请求中能看到的所有信息,包括:


System Prompt、对话历史、工具返回结果、当前消息等


为什么不管是做大模型开发还是Agent开发,大家一提上下文就会头疼,是因为上下文自带三个缺点:短、贵、有限


  • 短:这一轮用完就没了


  • 贵:每多一个 token,成本和延迟都在涨


  • 有限:受上下文窗口限制(20 万、100 万 token)


那什么才是记忆?在 Clawdbot 里,Memory 是另一种大家已经习惯的事物:


记忆 = 存在磁盘上的文件


毕竟 prompt 也好,工具返回结果也好,都是给 AI 看的。但磁盘里的 Markdown 文件,确是人类用户能打开、能编辑、能 grep 的 。


这个 Markdown 文件更符合大家对于“记忆”的现象。


  • 持久:重启、隔天、隔月都在


  • 无界:理论上可以无限增长


  • 便宜:不占 API 成本


  • 可搜索:已建立语义索引


Manthan 表示,正是基于这一理念,Clawdbot 把 AI 从“会话工具”拉回成了“长期协作者”。


反行业设计:不靠“上下文窗口撑着”,MD文件就够了


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 能够从单个轻量级数据库文件中运行混合搜索(语义搜索 + 关键词搜索)。


Trick:它是怎么“想起”这些记忆的?


重点来了。


Clawdbot 从来不会把所有记忆一股脑塞进上下文。它的策略是:先搜索,再注入。


搜索怎么做?


每次涉及“过去的事”,Agent 必须先走一遍内存搜索流程:


  • 向量语义搜索(理解你在说什么)


  • 关键词 BM25 搜索(确保不漏专有名词)


两者加权融合:


finalScore = 0.7 * semantic + 0.3 * keyword


结果不够相关,直接丢弃。


这意味着什么?意味着上下文里永远只出现当前真正需要的记忆,而不是“我怕忘所以全塞”。


一个细节:没有使用外部数据库


很多人会忽略这一点。


即上面提到的,所有索引,全在一个本地 .sqlite 文件里。


Clawdbot 的向量搜索,不是用外部向量数据库,而是:SQLite、sqlite-vec、FTS5。没有任何 SaaS 依赖。


这里也可以看出 Peter 对于“私人 Agent”的设计理念:私人AI助手,就该是单文件、可迁移、可备份的。


长对话怎么处理?上下文窗口


现实很残酷:再大的上下文窗口,也会被用完。


Clawdbot 的应对策略也很直接:压缩(Compaction)(小编注:这一点类似于上周末OpenAI公开的Codex的处理办法,同样也是压缩。)


  • 把早期对话总结成一段结构化摘要


  • 保留最近的原始消息


  • 把摘要写入磁盘,而不是只存在 prompt 里


这里有一个特别的处理:在压缩之前,先强制刷新记忆。也就是说,在模型“遗忘”之前,它会先把重要信息写进 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      │

└──────


多 Agent,多人格,但记忆彼此隔离


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 记忆系统的四个原则


Clawdbot的记忆系统之所以成功,是因为它遵循了几个关键原则:


1. 透明胜过黑盒


Memory 使用的是纯 Markdown 格式。用户可以阅读、编辑和进行版本控制。它不使用任何晦涩难懂的数据库或专有格式。


2. 搜索胜过注入


智能体不会将所有信息都塞进上下文,而是搜索相关信息。这样既能保持上下文的聚焦性,又能降低成本。


3. 持久性优于会话


重要信息不仅保存在对话记录中,还会保存在磁盘上的文件中。压缩操作无法删除已保存的内容。


4. 混合型搜索优于单一搜索


单独使用向量搜索无法精确匹配,单独使用关键词搜索无法获取语义信息。混合搜索则能兼顾两者。


真正重要的:用户掌握自己的数据


回过头来,如果只看实现,Clawdbot 并不神秘。但正如 Peter 当时创建它的想法:


“今年会是个人 agent 之年,这个领域很可能会被 OpenAI、Anthropic 这些大厂主导。但我想做一个不同的选择:你能掌握自己的数据,而不是把更多数据交给这些巨头。”


因此,它传递出一个信号:


AI 的记忆,开始回到用户手里了。


它可以存在本地的磁盘里,用户可以像操作自己的“微信聊天记录一样”,可读、可控、可删除、可迁移。


很显然,这条路显然更受用户的欢迎。这也就不难理解,为什么2026开年,它会被大家刷屏了。


毕竟,当 Agent 开始长期陪伴用户,当 AI 不再只是回答问题,而是参与决策、执行、协作,记忆就从“功能”,变成了“权力”。


而谁掌握这份记忆,决定了 AI 最终站在谁那一边。


参考链接:

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


文章来自于“51CTO技术栈”,作者 “云昭”。

AITNT-国内领先的一站式人工智能新闻资讯网站
AITNT资源拓展
根据文章内容,系统为您匹配了更有价值的资源信息。内容由AI生成,仅供参考
1
AI代理

【开源免费】Browser-use 是一个用户AI代理直接可以控制浏览器的工具。它能够让AI 自动执行浏览器中的各种任务,如比较价格、添加购物车、回复各种社交媒体等。

项目地址:https://github.com/browser-use/browser-use


2
智能体

【开源免费】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

3
知识库

【开源免费】FASTGPT是基于LLM的知识库开源项目,提供开箱即用的数据处理、模型调用等能力。整体功能和“Dify”“RAGFlow”项目类似。很多接入微信,飞书的AI项目都基于该项目二次开发。

项目地址:https://github.com/labring/FastGPT

4
RAG

【开源免费】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

5
AI搜索

【开源免费】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/

6
prompt

【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。

项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md

在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0