大概不知道啥时候前,我在用agent的时候感受到了一种别扭感。我每个项目都要告诉他怎么做,告诉他这个项目的捷径和可复刻经验是什么,而有些经验又很贴合我的使用,我的新项目也应该用那些经验。所以每个项目做agent.md又不太现实了。那时候我选择让他把记忆存到md文件下。
后来出了龙虾,有了Memories的概念 我就根据龙虾把我的file方式升级了一遍。用了一段时间之后,发现一个问题:我的记忆文件被污染了。这个文件越来越大,东西也越来越多,我采用了关键字检索的方式,效果也并不好。
然后我跟gpt老师商量了一段时间,我选择了另一种我用到现在的方式:sqllite记忆卡片向量化
我做了一个skill和一个mcp工具,skill是保存记忆的方式,mcp是保存记忆的工具。他们通过连接我本地的sqllite数据库,来读取里面的内容,每次会话之后,自动把可复刻经验或者项目专属经验进行保存,每次会话开始之后根据我的需求来查询是否有可以复刻的经验。通过hooks进行生命周期绑定,mcp工具里面的查询方法是使用嵌入模型向量化之后查询的
目前分层是:
规则层:AGENTS.md / 项目文档
事实层:当前代码、配置、数据库、运行结果
背景层:官方 Memories
经验层:外挂记忆库
能力层:Skills / MCP / Hooks
目前配合方式:
简单闲聊:不查
翻译解释:不查
明确单条命令:不查
代码修改:查
排障调试:查
配置部署:查
架构选择:查
明显重复任务:查
目前用了不少时间,记忆已经存了很多,多个agent都可以通用。用到现在已经比较有效果了,可以说很少的话就能够理解我的意图,知道某个对应项目的雷区,常见bug原因或者其他的一些可以复刻的经验
整体来说比小型RAG要轻一些,感觉佬们可以试一下
2 个帖子 - 2 位参与者