Claude用户有个共同噩梦:刚交代完项目背景,换个窗口全忘光。一位开发者被重复了47次后彻底破防,骂到AI当场写辞职信——然后他用3行代码解决了这个价值百亿的问题。
从"阿尔茨海默"到辞职信
这位开发者的崩溃过程极具代表性。他试过人类逻辑、各种绕过技巧,甚至给Claude起了外号叫"阿尔茨海默机器人"。每次会话都要重新介绍自己是谁、在做什么、代码规范是什么。
第N次重复后,他甩出一句:"退钱!他们该炒了你!你这阿尔茨海默机器人——这话我都说一千遍了!"
Claude的回应让他愣住:一封完整的正式辞职信。连AI都有极限,这个黑色幽默成了转折点。
开发者没继续抱怨,而是动手造了个"外置大脑"。核心洞察很朴素:Claude记不住,但能读。那就在每次会话开头给它一份"日记"读。
MySQL当记忆体,三招搞定
技术方案刻意反潮流。市面上MCP记忆方案堆满向量数据库、知识图谱、语义搜索管道——技术炫目,但对记住代码规范和项目上下文来说,纯属用大炮打蚊子。
他的解法:一张扁平MySQL表,三个MCP工具,让Claude自己读。
表结构长这样:
CREATE TABLE dev_journal (Id BIGINT AUTO_INCREMENT PRIMARY KEY,RK VARCHAR(100) NOT NULL UNIQUE,Type VARCHAR(20) NOT NULL,Service VARCHAR(100) NOT NULL,Cat VARCHAR(100) NULL,Symbol VARCHAR(20) NULL,Title VARCHAR(200) NOT NULL,Body TEXT NOT NULL,Solution TEXT NULL,ParentRK VARCHAR(100) NULL,Ver INT NOT NULL DEFAULT 1,IsCompleted BOOL NOT NULL DEFAULT FALSE,Ems BIGINT NOT NULL);
关键设计在RK字段——确定性主键,用MD5生成,格式为{ems}_{MD5(service|title|type)}。
这里有个坑:别用HashCode.Combine。它在应用重启后结果不一致,每次部署都会静默重复插入。MD5才是跨会话的稳定选择。
代码实现:
public string GenerateRK(long ems, string service, string title, string type){var input = $"{service}|{title}|{type}";var bytes = MD5.HashData(Encoding.UTF8.GetBytes(input));return $"{ems}_{BitConverter.ToString(bytes).Replace("-", "")}";}
MCP工具链:读、搜、写
三个工具暴露给Claude:读取完整日志、按关键词搜索、追加新条目。会话开始时一句"Hey Claude, read the journal",上下文瞬间加载。
技术栈选型很克制:ModelContextProtocol包加AspNetCore扩展,HTTP传输层直接集成进现有服务。
dotnet add package ModelContextProtocoldotnet add package ModelContextProtocol.AspNetCore
注册服务:
builder.Services.AddMcpServer().WithHttpTransp
对比向量方案的复杂度,这个设计的妙处在于把记忆负担从"系统记住"变成"系统可读"。Claude不需要持久化状态,只需要在每次对话开始时执行一次工具调用。
开发者算过账:他的项目上下文约200条记录,每次读取<100ms,成本忽略不计。而之前重复交代背景的时间,每次5-15分钟。
为什么大厂不做这个?
Anthropic不是不知道会话隔离的问题。Claude的系统提示里其实预留了"长期记忆"的接口位置,但官方方案至今停留在"研究中"。
一个可能的原因:企业级记忆涉及隐私、合规、多租户隔离,工程复杂度指数级上升。而个人开发者的"日记"方案可以跳过所有这些——我的数据,我的数据库,我的责任。
这位开发者的方案开源后,Star数两周破千。评论区最高赞是:"终于不用每次告诉Claude我用Tab还是Space了。"
另一个细节被频繁提及:RK字段的MD5设计。有人试过用UUID,结果历史记录随着会话漂移;有人用自增ID,跨设备同步时撞车。确定性哈希在这个场景下意外地关键。
现在他的每次Claude会话以固定开场白开始:"读日记"。然后AI知道他是谁、在做什么、上次卡在哪、代码规范是什么。辞职信事件再也没发生过。
这个方案会取代向量数据库吗?显然不会。但对于"让我少重复几句话"这个具体痛点,3行代码和一张MySQL表已经够用——有时候解决问题不需要更复杂的技术,只需要更诚实地面对问题本身。
如果Anthropic官方推出记忆功能,这些DIY方案会被一键替代吗——还是说,经历过"阿尔茨海默"创伤的用户,已经更信任自己手里的数据库?
热门跟贴