用memsearch Python API打造带记忆的Agent:Recall-Think-Remember三步实战教程 用memsearch Python API打造带记忆的AgentRecall-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/memsearchAI Agent 总是金鱼记忆聊过的决定换个会话就忘了memsearch Python API正是解决这个痛点的捷径——memsearch 是一个面向所有 AI AgentClaude 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_k3) print(results[0][content], results[0][score])memsearch 在幕后执行混合搜索稠密向量 BM25 全文并用 RRF 融合重排比纯关键词匹配更懂语义。每条结果还带source来源文件、heading所属章节标题、score相关度等元数据方便溯源。核心实现在 MemSearch 主类。三、第二步 Think把记忆作为上下文交给大模型Think 的关键是把召回的记忆注入 LLM 的系统提示词让模型基于历史上下文作答memories await mem.search(user_input, top_k3) context \n.join(f- {m[content][:200]} for m in memories) answer llm.chat.completions.create( # llm 为你的任意 LLM 客户端 modelgpt-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(parentsTrue, exist_okTrue) 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_eventlambda t, s, p: print(f[{t}] {s}))️记忆压缩mem.compact()用 LLM 把大量记忆片段压缩成摘要并自动写回每日日志源码让记忆库保持精简而不失重点。可选重排序设置reranker_modeljev:jev-latest可对搜索候选做远程重排序进一步提升头部命中率。下图是官方评估中 Jev 重排序 vs 原始排序 vs Voyage 的对比Recall5、MRR10、NDCG10 及每千次查询成本七、小结与延伸阅读用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),仅供参考