凌晨两点,你终于修好了那个该死的Webhook认证Bug。一周后回来问Claude,它只回了三句话:"你之前处理过Webhook认证问题。"
那五个失败的尝试呢?真正的修复方案呢?全被"总结"掉了。
![]()
这就是AI记忆工具的普遍做法——用另一个大模型压缩你的历史,再假装什么都没丢。开发者Youssef受够了这种"有损便利",于是写了Longhand:一个零压缩、全留存的本地记忆系统。
被忽视的真相:你的对话早就存在硬盘里
Claude Code其实一直在偷偷记录。
每次会话结束,它都把完整日志写成JSONL文件,存在~/.claude/projects/目录下。每个工具调用、每次文件编辑、每段思考过程——原封不动,一字不差。
问题在于:这些文件几周后就被自动清理。而且市面上的记忆工具拿到它们的第一件事,就是再雇一个LLM来"总结"。
Youssef的发现很直接:存储不是问题。SQLite 2000年就发布了,ChromaDB两年前就能本地跑。所谓的"AI记忆危机"是人为制造的——整个行业默认记忆必须和推理挤在同一个地方,哪怕这让系统更贵、更封闭、更不安全。
他的解法:让磁盘干磁盘的活,模型干模型的活。
Longhand怎么工作:两条数据流
安装后,Longhand做两件事。
第一,自动抓取。Claude Code每次会话结束会触发SessionEnd钩子,Longhand趁JSONL还在,立刻复制一份到自己的本地存储。即使Claude后来删了源文件,Longhand的副本永久保留。
第二,一次性回填。把用户历史上所有能找回来的会话全部导入。
数据存在两个本地索引里,查询通过MCP服务器暴露给Claude Code本身——17个专用工具,让它能直接搜索自己的过往。
当你问"我们上次怎么修X的",Claude不再靠上下文窗口瞎猜。它查硬盘,返回真实发生的事件。
实测数据:107场会话,53668个事件
Youssef用真实工作负载测试了Longhand。
样本覆盖107场Claude Code会话,53668个事件,665次Git操作,376组"问题→修复"片段,跨越37个项目的299段对话。
结果:召回时不再幻觉,因为每个回答都有原始日志背书。
项目目前已通过170个单元测试,安全审计零严重问题,上架PyPI,并录入官方MCP Registry。
一个被回避的选择
大模型厂商都在卷上下文窗口:100万token、200万token、无限上下文。Youssef认为这是错的方向——让模型背负所有状态,既贵又慢,还把用户锁死在云端。
他的方案本质上是个老派思路:分层存储。热数据进内存,冷数据落磁盘,需要时再调。数据库领域用了几十年的架构,AI行业却假装没这回事。
这背后有个更 uncomfortable 的问题:为什么"AI记忆"默认等于"让AI替你决定什么值得记住"?
总结是一种权力。当LLM把你的五小时调试压缩成三句话,它同时替你完成了价值判断——哪些尝试值得保留,哪些该被遗忘。用户从未参与这个决策,甚至不知道丢了什么。
Longhand的激进之处不是技术,是态度:记忆的全部或零,不接受中间状态。
这会改变什么
如果本地无损记忆成为标配,几件事可能发生。
第一,Prompt工程的新维度。不再只是设计单次对话,而是设计跨会话的检索策略——如何让模型在数万条历史记录里精准定位。
第二,合规与审计的简化。金融、医疗等强监管领域,"可解释性"往往等于"原始记录可追溯"。总结过的记忆是黑箱,原始JSONL是证据。
第三,对云端记忆的替代。当本地方案足够好用,用户付费意愿可能从"订阅AI服务"转向"购买本地工具"。
当然,Longhand也有边界。它需要用户自己管理存储、自己跑服务、自己处理备份。这不是给所有人的方案,是给那些愿意用复杂度换控制权的人。
最后
AI行业正在经历一场关于"记忆"的集体幻觉:似乎只有模型内部的状态才算数,磁盘里的数据只是原材料。
Youssef用Longhand证明了这个前提的可疑。真正的问题或许不是"如何让AI记住更多",而是"为什么我们默认用户不配拥有自己的完整历史"。
当你的AI助手下次说"我记得你之前..."的时候,你想让它基于三句话的猜测,还是五万条事件的实录?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.