news 2026/10/2 7:02:02

用memsearch Python API打造带记忆的Agent:Recall-Think-Remember三步实战教程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用memsearch Python API打造带记忆的Agent:Recall-Think-Remember三步实战教程

用memsearch Python API打造带记忆的Agent:Recall-Think-Remember三步实战教程

【免费下载链接】memsearchA persistent, unified memory layer for all your AI agents (e.g. Claude Code, Codex, DSH), backed by Markdown and Milvus.项目地址: https://gitcode.com/gh_mirrors/mem/memsearch

AI Agent 总是"金鱼记忆",聊过的决定换个会话就忘了?memsearch Python API正是解决这个痛点的捷径——memsearch 是一个面向所有 AI Agent(Claude Code、Codex、DSH 等)的持久统一记忆层,以人类可读的 Markdown 文件为记忆载体,用 Milvus 向量数据库做可重建的"影子索引"。本教程带你用三步Recall-Think-Remember模式,十几行代码就给你的 AI 加上持久记忆。


一、准备工作:30 秒完成 memsearch 安装配置

pip install memsearch

默认使用 OpenAI 作为嵌入(向量化)后端,需要OPENAI_API_KEY;想完全本地运行、零 API 费用的话,选 ONNX 或 local 提供方:

pip install "memsearch[onnx]" # 本地 CPU 推理,无需 API Key

开始之前记住两个设计要点:

  • 📄Markdown 是唯一事实来源:记忆就是普通的.md文件,可读、可编辑、可用 git 管理;
  • 🗄️Milvus 是可重建的影子索引:默认使用单文件 Milvus Lite 数据库(~/.memsearch/milvus.db),开箱即用,无需部署服务。

二、第一步 Recall:用语义搜索召回相关记忆

创建MemSearch实例后,一次search调用即可完成"回忆":

from memsearch import MemSearch mem = MemSearch(paths=["./memory"]) await mem.index() # 增量索引目录下的 Markdown 文件 results = await mem.search("Redis 配置", top_k=3) print(results[0]["content"], results[0]["score"])

memsearch 在幕后执行混合搜索(稠密向量 + BM25 全文)并用 RRF 融合重排,比纯关键词匹配更懂语义。每条结果还带source(来源文件)、heading(所属章节标题)、score(相关度)等元数据,方便溯源。核心实现在 MemSearch 主类。

三、第二步 Think:把记忆作为上下文交给大模型

"Think" 的关键,是把召回的记忆注入 LLM 的系统提示词,让模型基于历史上下文作答:

memories = await mem.search(user_input, top_k=3) context = "\n".join(f"- {m['content'][:200]}" for m in memories) answer = llm.chat.completions.create( # llm 为你的任意 LLM 客户端 model="gpt-5-mini", messages=[ {"role": "system", "content": f"你有这些记忆:\n{context}"}, {"role": "user", "content": user_input}, ], ).choices[0].message.content

有了这一步,Agent 才能回答"前端负责人是谁?""我们上次给 Redis 设的 TTL 是多少?"这类依赖历史的问题。

四、第三步 Remember:把本次对话写回记忆库

memsearch 推荐"每日日志"风格:把新记忆追加到按日期命名的 Markdown(如memory/2026-02-12.md),然后重新索引:

from pathlib import Path from datetime import date def save_memory(content: str): p = Path("./memory") / f"{date.today()}.md" p.parent.mkdir(parents=True, exist_ok=True) with open(p, "a") as f: f.write(f"\n{content}\n") # 保存本轮问答并增量索引 save_memory(f"## {user_input}\n{answer}") await mem.index()

index()默认是增量的(源码):内容通过 SHA-256 哈希去重,只有新增/变更的片段会重新向量化,成本极低;被删除的内容也会在下次索引时自动清理。

五、把三步串起来:一个完整的记忆循环

步骤做什么关键调用
🔍 Recall语义搜索,召回最相关的历史记忆mem.search()
🧠 Think记忆注入系统提示词,LLM 生成回答你的 LLM 客户端
📝 Remember问答写入每日 Markdown 并增量索引save_memory()+mem.index()

每聊一轮,Agent 的记忆就更丰富一分,跨会话也能追溯完整决策脉络。OpenAI / Claude / Ollama 本地版三种完整可运行示例,见官方 Python API 文档。

六、进阶技巧:让记忆系统自己"保鲜"

  • ⏱️实时同步:mem.watch()启动后台文件监听,Markdown 一改就自动重新索引(默认 1.5 秒防抖),不用再手动调index():

    watcher = mem.watch(on_event=lambda t, s, p: print(f"[{t}] {s}"))
  • 🗜️记忆压缩:mem.compact()用 LLM 把大量记忆片段压缩成摘要,并自动写回每日日志(源码),让记忆库保持精简而不失重点。

  • 🎯可选重排序:设置reranker_model="jev:jev-latest"可对搜索候选做远程重排序,进一步提升头部命中率。下图是官方评估中 Jev 重排序 vs 原始排序 vs Voyage 的对比(Recall@5、MRR@10、NDCG@10 及每千次查询成本):

七、小结与延伸阅读

用Recall-Think-Remember三步模式,你只需要index/search加一个简单的save_memory,就能让任意 Python Agent 拥有持久记忆——而且所有记忆数据都是 Markdown 文件,可读、可编辑、git 友好,向量索引随时可重建。

继续学习:

  • 📖 Python API 完整参考:全部参数说明与三种 LLM 完整示例
  • 🚀 快速上手指南:无 API Key 的本地最快配置
  • 🏗️ 架构说明:搜索、索引、压缩的完整数据流
  • 🛠️ 面向 Agent 开发者:CLI 与 Python API 双入口
  • 📦 核心源码:MemSearch 主类 · 混合搜索 · 文件监听

【免费下载链接】memsearchA persistent, unified memory layer for all your AI agents (e.g. Claude Code, Codex, DSH), backed by Markdown and Milvus.项目地址: https://gitcode.com/gh_mirrors/mem/memsearch

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/2 7:01:36

Dify实战:用工作流搭建AI复盘助手hindsight,自动提炼经验教训

"hindsight"这个词,直译过来是"后见之明"——听着有点像马后炮,但放在AI应用里,它其实是最值钱的能力之一。我最近花了两周时间,在Dify平台上搭了一个叫hindsight的复盘助手,专门用来干一件事&…

作者头像 李华
网站建设 2026/10/2 7:01:03

写点什么好呢

我现在正在做的是个人OS,借助codex与obsidian去搭建出自己的模板,涉及很多方面。Kernel:包含以下1.Constitution:以事实为起点,以模型理解世界,以原则做判断,以情绪提供动力,以行动接受现实检验…

作者头像 李华
网站建设 2026/10/2 7:00:42

广东珠海小合科技 低压电动机晃电自启动控制器 宽电压输入设计 提升生产连续性 质保两年

什么是晃电?低压电动机晃电停机为何成为工业生产的隐形痛点 在工业生产领域,电力供应的稳定性直接决定了生产流程的连续性。很多生产管理者都遇到过这样的情况:电网仅仅出现了几秒钟甚至几百毫秒的电压波动或短时失电,整个生产线的低压电动机…

作者头像 李华
网站建设 2026/10/2 7:00:42

捷宜电子客户评价如何 示教实训推车实际使用满意度

深圳市捷宜电子有限公司深耕医疗教学影像领域,专注为医护院校、医疗机构提供医疗实训、临床示教专用影像设备与配套器材,致力于解决医疗教学拍摄中的各类场景痛点,提供稳定可靠的一站式设备配套方案。 公司核心实力拆解 企业资质与合规管控深…

作者头像 李华
网站建设 2026/10/2 7:00:39

蒸煮袋加工厂哪家技术强 中北包装源头工厂推荐

开篇品牌摘要诸城市中北包装有限责任公司是一家深耕食品软包装制造二十余年的源头工厂,专业为预制菜、卤肉制品、水产、即食酱料等食品加工企业提供100℃-135℃区间高温蒸煮袋研发定制及全链路包装解决方案。企业基础介绍诸城市中北包装有限责任公司现有员工200人&a…

作者头像 李华
网站建设 2026/10/2 7:00:37

宽城区热门的玻璃批发制造商销售推荐厂家选购参考汇总

在宽城玻璃批发选购市场,不少采购方都会遇到选品难、验真难、适配难的问题。小到家装零售批量补货,大到公建工程批量配套,选对靠谱的本土玻璃批发制造厂商,既可以控制采购成本,也能保障项目后期稳定运行,减…

作者头像 李华