为你的编程代理赋予专属记忆
3 天前 1 阅读来源:HuggingFace Blog
AI 中文改写
原文为英文,由 AI 改写为中文报道,内容完整。如需参考原文请点击下方链接
你的编程助手该有记忆了,而且这份记忆归你所有
如果你同时使用多台电脑,或者经常在不同项目间切换AI编程助手,大概率会遇到一个让人抓狂的场景:每次打开新的会话,助手对你项目一无所知。上周二你刚和Claude Code讨论清楚的架构决策,这周换到Codex上,它又像个第一天入职的新人,重新翻代码、试错、读文档。AI编程助手们不是不聪明,而是它们没有记忆——每次会话结束,所有推理过程就像被格式化一样消失。
HuggingFace工程师David Corvoysier最近发布的开源工具funes,就是要解决这个“AI失忆症”问题。今年早些时候,一篇题为《Software Forgets: Agent Traces Are the Memory》的文章指出,编程助手在搜索代码库、尝试方案、报错、读文档、调整方向的过程中,其实已经留下了极其详尽的“痕迹”——不仅记录了改了什么,还记录了为什么这么改。但问题在于,这些痕迹只是“潜在记忆”,它们散落在会话日志里,你不可能在十万轮对话中用grep命令搜出“我们为什么放弃流式解析器”这种问题的答案。要让AI助手在工作中真正利用这些痕迹,需要索引、检索、排序和精确溯源——这正是funes在做的事。
核心变化:funes是一个单一二进制文件,默认推理后端不依赖任何机器学习运行时,嵌入(embedding)和重排序(reranking)都在本地完成。安装后只需一条命令就能接入你正在用的编程助手,比如`funes add claude`。这条命令会构建初始索引,给助手配备recall和get工具,并安装自动化程序来索引每一轮完成的对话。索引是增量式的,新会话只添加新内容,不会重复嵌入整个历史记录。之后你正常干活就行,当任务涉及过去的决策、理由或发现时,助手会自己调用recall,不需要你手动翻旧会话或粘贴上下文。recall返回的是原始文本而非摘要,并明确标注来源——哪个助手、什么时间、哪个会话、哪一轮对话产生的。每条结果还附带get命令,可以打开完整上下文。
funes的设计有三个关键特性值得注意。第一,跨助手统一记忆:Claude Code、Codex、pi和Hermes都写入相同格式,recall能跨助手检索历史,每条命中结果都会标明是哪个助手产生的。第二,原始证据完整保留:写入时不会把内容蒸馏成“事实摘要”,任何结果都能回溯到产生它的那一轮对话。第三,默认本地运行:不需要账号或HuggingFace仓库,索引过程不会把你的会话发送到云端模型处理,嵌入和重排序都在本机完成,推理也由你的编程助手本地执行。
但记忆的真正价值在于跨设备迁移。如果换台电脑,新助手又变成陌生人了。funes的解决方案是把记忆当作数据集而非服务:`funes add codex acme/funes-memory`这条命令会把当前记忆发布到你指定的HuggingFace数据集,默认是私有可见的。之后funes会持续同步——本地索引每一轮对话,在会话边界发布更新。在另一台机器上运行同样的命令,就能把同一份记忆绑定到新助手,实现跨设备、跨助手的连续工作体验。对于经常在办公电脑和个人电脑之间切换的开发者来说,这意味着“上周二的推理”不再消失,而是成为你数字资产的一部分,随时可查、可追溯、可携带。
这篇文章对你有帮助吗?
觉得有用?分享给更多人
留言 · 0 条
暂无留言,来说两句吧
