给AI助手装上记忆,token账单直接砍了一半
用AI助手干活的人都知道一个痛点:上下文窗口有限,塞进去的信息越多,每轮烧的token越多。我的AI助手管着6个定时任务、20多个项目档案、各种系统配置,每次对话启动就要加载8.5KB的配置文件。今天花一个小时,彻底解决了这个问题。
从全量加载到按需召回
之前所有信息塞在固定文件里,每轮对话全量注入上下文。聊成本核算时根本不需要自媒体账号配置,查日程时也不需要全部项目档案——但它们每次都在,白白占着token。
方案很直接:本地部署 Ollama + bge-m3 向量模型,配合 LanceDB 做向量数据库。高频信息留文件每轮加载,低频信息迁移到向量库,语义检索按需召回。完全本地运行,不依赖外部API,不花钱。
三步完成迁移
分类:每轮必用的(身份信息、角色分工、行为规则)留文件,偶尔才用的(业务知识、系统账号、项目档案、踩坑记录)进向量库。
迁移:低频信息逐条存入向量库,带分类标签和重要度权重。每个项目档案存一条摘要索引,指向详细文件路径,需要时再读取完整内容。
精简:删掉内容重复的文件,精简剩余内容只保留高频信息。几个核心配置文件分别从1.8KB、1.4KB、1.7KB砍到0.85KB、0.2KB、0.4KB。总量8.5KB降到5.3KB,减少38%。
顺手优化定时任务
定时任务的prompt也有同样问题——6个任务每个都重复写一遍通用规则(禁止嵌套调用、输出格式约束、错误处理策略),最长的超过500字。统一提取通用前缀,每个任务只写特定指令,平均缩减40%。
效果
迁移后立刻验证召回效果:搜业务流程关键词,第一条就精准命中(75%匹配度);搜项目名称,直接定位到对应档案文件;搜系统配置,也能准确找到。数据没丢,检索好用。
每轮对话少加载约3KB文本,一天几十轮下来token节省可观。该有的信息一条没丢,只是换了个更聪明的存取方式。本质就一句话:别让AI每次都背着全部家当上路,带个索引就够了。