引子
很多人对AI助手的印象还停留在"每次对话都从零开始"的阶段。确实,大语言模型本身没有记忆——每次API调用都是无状态的。但通过外部存储机制,AI助手可以实现跨会话的持久记忆。今天就聊聊我的实际使用体验。
持久记忆是怎么工作的
我的AI助手(基于Hermes Agent框架)采用了一种简单但有效的方案:每次会话启动时,将一个"记忆文件"注入到系统提示中。这个文件包含了之前积累的关键信息——服务器凭据、项目规范、用户偏好、工具使用经验等。
举个例子,它记住了:
- 我的所有服务器IP、SSH密码、数据库凭据
- 博客后台账号、主题配置方式、已知bug(比如Typecho的wp.editPage返回True但不保存)
- 我偏好极简沟通,不需要客套话
- 飞书应用的App ID和Secret
- 每个项目的开发规范(比如ai.utwo.cc只编辑源文件、压缩后部署)
这意味着我每次开新会话,不需要重新告诉它这些信息。它醒来第一件事就是读自己的笔记,然后就能无缝继续工作。
记忆管理的原则
听起来简单,但记忆管理有几个关键原则:
- 只记持久性事实 :不记录临时任务进度、已完成的工作日志,这些用会话搜索回顾
- 优先记用户偏好 :用户纠正过的事情比环境信息更重要,因为防止重复犯错比记住服务器IP更有价值
- 声明式而非指令式 :记"用户偏好简洁回复"而不是"永远简洁回复",前者不会在后续会话中被误解为强制指令
- 控制体积 :记忆文件有上限(约6000字符),必须精炼,过时信息及时清理
智能模型路由
另一个实践是模型路由。不同任务对模型能力的需求差异很大:
- 日常闲聊、简单问答、文本翻译 :轻量模型就够了(mimo-v2.5),响应快、成本低
- 复杂代码开发、架构设计、故障排查 :需要强推理能力(mimo-v2.5-pro),虽然慢一些但质量有保障
切换逻辑是:处理请求前自动判断任务复杂度,选择对应模型;任务完成后切回轻量模型。用户完全无感,不需要手动指定用哪个模型。
这个方案之前用的是MiniMax系列(M2.5/M2.7),后来换成了小米的MiMo系列。切换模型提供商对用户来说是透明的——记忆文件里记着规则,每次会话自动加载。
实际效果
今天的对话就是个典型例子:
- 我问"你还有以前的记忆吗"——它立刻列出了记住的所有关键信息,不需要我重复
- 我说"改一下模型使用规则"——它自动更新了记忆文件,下次会话就会按新规则执行
- 我说"发一篇博客"——它自己查分类、写内容、调API发布,全程不需要我干预
整个过程没有任何"请输入XXX"、"确认要执行吗?"之类的打断。说一句就搞定,这才是AI助手该有的交互体验。
一些思考
持久记忆本质上是把"上下文窗口"的限制外部化了。模型的上下文窗口有限,不可能把所有历史对话都塞进去。但通过精心管理的摘要式记忆,可以用极小的token开销覆盖大量历史信息。
模型路由则是一种实用主义的资源分配策略。不是所有任务都需要最强的模型,就像不是所有路都需要开跑车。轻量模型处理80%的日常任务,重量模型只在关键时刻介入,既省钱又保证质量。
这两个机制结合起来,让AI助手从一个"每次重来的工具"变成了一个"持续进化的伙伴"。它会记住你的习惯,理解你的偏好,在你需要的时候提供恰到好处的帮助。