新闻详情

新闻详情

首页 / 资讯中心 / 详情

OmniAgent主动式记忆系统:BM25+向量混合检索,让Agent比你自己更懂你

发布时间:2026/10/2 14:43:29来源:尧图网络
OmniAgent主动式记忆系统:BM25+向量混合检索,让Agent比你自己更懂你
OmniAgent主动式记忆系统BM25向量混合检索让Agent比你自己更懂你【免费下载链接】OmniAgentAn agent capable of self-evolving and dynamically hardening security项目地址: https://gitcode.com/gh_mirrors/om/OmniAgentOmniAgent 的主动式记忆Proactive Memory系统让 AI Agent 告别金鱼记忆。它基于BM25 全文检索 向量语义检索的混合检索机制把你在MEMORY.md和memory/*.md中沉淀的偏好、决策与项目知识变成每次会话都能精准召回的长期记忆。本文帮新手 5 分钟看懂这套记忆系统的工作原理、关键配置与快速上手方法。 为什么 AI Agent 需要长期记忆用过对话式 AI 的同学都有同一个痛点每次新开一个会话Agent 就像失忆了你上周定的技术方案、项目暗号、个人偏好全部清零你不得不反复解释我们之前说过……既费时又容易出错纯靠关键词搜索又太死板换个说法就搜不到。OmniAgent 给出的答案是主动式记忆系统通过显式交互反馈 隐式 LLM 归纳的双路径对齐机制Agent 会把跨会话的工作结论、用户偏好、项目知识持续沉淀为 Markdown 记忆文件并在需要时主动召回——真正做到比你自己更懂你。记忆的存放位置非常直观就在你的工作区里记忆来源说明MEMORY.md/memory.md工作区根目录的主记忆文件memory/**/*.mdmemory/目录下的任意子目录 Markdown 文件发现逻辑由 memory.py 中的文件扫描函数实现支持配置额外路径。 BM25 向量混合检索双引擎混合检索是这套系统的灵魂。它同时跑两路召回再按权重融合得分兼顾字面精准与语义相近。关键词检索BM25 负责字面命中记忆文本会被写入 SQLite 的FTS5 全文索引虚拟表chunks_fts查询时使用经典的BM25 算法打分你搜索API key包含这个确切词组的记忆片段得分最高代码名、错误信息、专有名词这类不能靠猜的内容BM25 一搜一个准原始 BM25 秩值会被归一化到 0~1 区间方便与向量分数比较。这一层实现在 memory.py 的search_fts方法中。向量检索Embedding 负责意思相近向量检索解决的是换个说法也能找到的问题每个记忆分块都会生成一个Embedding 向量调用 OpenAI 兼容的/embeddings接口或本地 sentence-transformers 模型默认all-MiniLM-L6-v2与文本一起存进数据库查询时把问题也转成向量与所有记忆向量计算余弦相似度取最接近的 Top-N你搜之前那个部署脚本怎么写的即使原文没出现过这些词语义相近的片段也能被召回。两类嵌入提供者OpenAI 兼容 / 本地离线定义在 embedding.py 中。加权融合0.7 向量 0.3 文本两路结果按分块 ID 合并后计算最终得分最终得分 0.7 × 向量分数 0.3 × BM25 分数随后过滤掉低于0.35 最低相关度的结果按得分降序返回前 6 条。权重可在配置中调整见下文关键配置项逻辑位于 memory_manager.py 的search方法。 为什么默认向量权重更高因为日常提问多是自然语言、意图模糊语义匹配比字面匹配更能命中你心里想的那条。 记忆的存分块、增量同步与本地数据库记忆的写入同样讲究核心流程是分块 → 哈希比对 → 增量索引 → 向量计算环节做法好处Markdown 分块每块约 400 tokens相邻块重叠 80 tokens语义边界完整切块不漏句变更检测对每个分块计算 SHA-256 哈希没改过的文件直接跳过秒级增量同步本地存储SQLite 单文件数据库.omniagent/memory.db零依赖、隐私不出本机索引构建文本 FTS5 全文索引 Embedding 向量一套数据支撑两路检索同步时机由配置控制默认会话启动时和每次搜索前都会自动增量同步你只需要维护 Markdown 文件索引永远是最新的。完整同步逻辑见 memory_manager.py数据库表结构见 memory.py。 两个记忆工具memory_search 与 memory_getAgent 通过两个内置工具使用这套记忆系统注册逻辑在 reflexion.py工具核心参数典型场景memory_searchquery必填、max_results默认 6、min_score默认 0.35跨会话召回之前做的决策、日期、人物、偏好、待办memory_getpath必填、from_line、lines按行精读某个记忆文件的指定段落两个贴心细节可溯源每次召回都附带Source: memory/xxx.md#L12-L30形式的引用你可以点开原文核对记忆不再黑盒优先级清晰对刚才、上一轮、just now这类短期指代Agent 会优先查当前对话历史而不是动用长期记忆只有跨会话问题才走memory_search。这套召回纪律写进了系统提示词见 bootstrap.py 与 reflexion.py。相关行为还有专门的回归测试 test_memory_recall_priority.py。⚠️ 安全提示memory_get内置路径校验只允许读取MEMORY.md、memory/下的文件防止路径穿越实现见 memory_manager.py。⚡ 快速上手三步开启主动式记忆# 第一步获取项目 git clone https://gitcode.com/gh_mirrors/om/OmniAgent cd OmniAgent pip install -e . # 第二步交互式配置选择模型服务商并填入 API Key omniagent onboard # 第三步启动对话 omniagent chat然后在工作区创建你的记忆文件例如MEMORY.md# 我的偏好 - 代码注释一律用中文 - 我负责 OmniAgent 的 memory 模块再往memory/目录里按需添加专题文件memory/decisions.md、memory/preferences.md……。下次会话中直接问我之前定过哪些技术决策Agent 就会自动检索并带着引用作答。⚙️ 关键配置项一览混合检索权重怎么调所有记忆参数集中在 config/models.py 的MemorySearchConfig中可在~/.omniagent/config.yaml的memory:段覆盖配置项默认值作用enabledtrue总开关是否启用记忆检索系统hybrid_enabledtrue关闭则退化为纯 BM25 检索hybrid_vector_weight0.7向量检索权重语义匹配更敏感hybrid_text_weight0.3文本检索权重字面命中更敏感chunking_tokens/chunking_overlap400/80分块大小与重叠量query_max_results6单次召回条数上限query_min_score0.35相关度过滤阈值sync_on_session_start/sync_on_searchtrue会话启动 / 搜索前自动增量同步embedding_provideropenai嵌入来源可选local走本地模型离线检索temporal_decay_hours168记忆相关度时间衰减半衰期默认 7 天 调优建议如果召回结果太发散调高query_min_score如果总是搜不到字面精确的报错文本调大hybrid_text_weight。 源码导航记忆系统模块地图想深入阅读实现可以从这些入口出发存储层SQLite FTS5、分块、哈希omniagent/agents/memory.py混合检索与工具注册omniagent/agents/memory_manager.py嵌入提供者OpenAI 兼容 / 本地omniagent/agents/embedding.py记忆配置模型omniagent/config/models.pyAgent 集成与召回提示词omniagent/agents/reflexion.py行为回归测试tests/test_memory_recall_priority.py项目总览文档README.md中文见 README_CN.md写在最后OmniAgent 的主动式记忆系统用BM25 保精准、向量保语义、权重融合保平衡的混合检索架构加上分块增量同步和本地 SQLite 存储让 Agent 的记忆既准又快、还不出本机。你只管把想法写进 Markdown剩下的召回、排序、引用都交给它——这才是真正越用越懂你的 AI Agent。 【免费下载链接】OmniAgentAn agent capable of self-evolving and dynamically hardening security项目地址: https://gitcode.com/gh_mirrors/om/OmniAgent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Laya决策模型微调实战:从环境搭建到推理部署的完整指南 2026/10/2 15:26:42

Laya决策模型微调实战:从环境搭建到推理部署的完整指南

1. 从17K Star说起:Laya到底解决了什么痛点第一次看到Laya这个项目的时候,我正被一个决策自动化的问题折磨得够呛。业务侧给的需求很明确:从一堆非结构化的文本里,自动判断下一步该走哪个分支流程。听起来像个分类任务对吧&#x…

阅读更多 →
5G核心网技术全景:从架构原理到OAI部署实战 2026/10/2 15:26:41

5G核心网技术全景:从架构原理到OAI部署实战

简介:这是一份面向5G通信学习者与网络工程师的PDF资料,聚焦5G核心网整体架构与关键技术,以清晰方式梳理从业务场景到标准化落地的完整链条。文档从5G网络架构设计概要切入,对比连续广域覆盖、热点高容量、低时延高可靠、低功耗大连…

阅读更多 →
51单片机入门:Keil uVision4工程配置、编译烧录与仿真调试 2026/10/2 15:26:37

51单片机入门:Keil uVision4工程配置、编译烧录与仿真调试

1. 从装软件到跑通第一个工程:51单片机入门为什么要先过Keil这一关很多人第一次接触51单片机,兴致冲冲买回开发板,结果卡在第一步——代码写完了,却不知道怎么变成一个能烧进芯片的文件。这个坎说大不大,说小也不小&am…

阅读更多 →
ROS2 Executor与Callback Group:根治节点卡顿的并发调度指南 2026/10/2 15:26:32

ROS2 Executor与Callback Group:根治节点卡顿的并发调度指南

这个话题我一直想写。前阵子帮人调一个基于 ROS2 Humble 的小车底盘节点,现象特别典型:串口读数据偶尔卡一下,整车的/cmd_vel订阅和/odom发布全部跟着掉频率,服务端调个参数也能卡半天。查到最后,根子全在 Executor 和…

阅读更多 →
用GPT-6从零到上线:完整实操一个可访问网站的全过程 2026/10/2 15:26:25

用GPT-6从零到上线:完整实操一个可访问网站的全过程

GPT-6的API申请通过那天,我其实没急着去玩那些花哨的玩法。画电路图、写剧本、生成Excel公式,这些我在社交时间线上已经见烦了。我更关心一件特别朴素的事:拿GPT-6给我做一个能用的网站,从环境安装开始,一直到部署上线…

阅读更多 →
LTE抓包分析指南:从接口选型到信令定位 2026/10/2 15:26:24

LTE抓包分析指南:从接口选型到信令定位

简介:《LTE 抓包分析指导手册》是面向通信工程师、网络优化与运维人员的一份实战指南,围绕LTE网络数据包捕获与分析展开,帮助读者定位UU口、ENB和核心网侧的通信异常,排查丢包、乱序等问题,适用于日常维护、现场测试和…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉