要解决的问题
开发者通常在多台机器上工作,并根据任务切换不同的编码代理。结果是:每一个代理在打开项目时都像个陌生人——此前做过的决策、推理过程和结论全部丢失。funes 正是为此提供的一层持久代理记忆,且完全由本机已有的会话构建。
使用方式
通过一条命令把代理接入记忆:funes add claude(也可换成 codex、pi、hermes)。随后当任务触及过去的决策、理由或发现时,代理可以自行调用 recall 与 get 工具进行召回。
底层实现
一条确定性流水线把每种受支持的 trace 解析成统一的“轮次—块”结构,进行分块,用固定的本地模型做嵌入,并写入本地 Lance 数据集。查询时结合向量检索与 BM25 检索,融合两者排序,再用 cross-encoder 对候选重排,按时间近度重新加权,并附带相邻块以保留上下文。
跨机器延续
bind 操作可把当前记忆发布到 Hugging Face 数据集,funes 随后保持其更新:在会话边界本地索引每一轮并发布,代理在其中持续召回。在另一台机器上运行同样的命令,记忆就会跟随你到那里。所有处理均在本地完成,无需外部 API。
意义
在 Agent 长期记忆成为竞争焦点的当下,funes 把记忆的所有权交还给开发者本地,避免把项目上下文锁定在单一厂商或单一机器里,对多代理、多设备协作的团队尤其有价值。