ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

OpenViking记忆压缩与去重完整指南:LLM如何自动合并重复的用户偏好

OpenViking记忆压缩与去重完整指南:LLM如何自动合并重复的用户偏好 OpenViking记忆压缩与去重完整指南LLM如何自动合并重复的用户偏好【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenVikingOpenViking 是面向 AI Agent 的自进化上下文数据库Context Database它统一管理 Agent 记忆、知识 RAG 与技能。本文聚焦它最实用的一项能力——记忆压缩与去重当你在多次对话里反复告诉 Agent“我偏好 TypeScript、喜欢简洁代码风格”时LLM 会自动把重复的用户偏好识别、合并进同一份记忆文件而不是堆积出一堆雷同记录。为什么 Agent 记忆需要压缩与去重没有压缩机制的 Agent记忆库会很快变成“垃圾场”Token 浪费重复的偏好摘要反复注入上下文挤占对话空间信号稀释召回时 5 条相似偏好同时命中Agent 反而抓不住重点版本冲突你先说“用 tabs 缩进”后来说“换成 spaces”旧记录不更新就会自相矛盾。OpenViking 的解法是每次会话结束时由 LLM 做“提取 补丁式合并”把新信息精准写回已有的偏好记忆而不是追加一条新记录。如上图所示OpenViking 的记忆按类型分层组织preferences/偏好、entities/实体、events/事件等目录各司其职去重合并正是发生在这一层级上。记忆提取LLM 如何决定“新增还是更新”会话压缩的核心链路位于 compressor_v3.py会话内容达到阈值后被压缩LLM 从完整上下文中抽取结构化的MemoryOperation新增 / 更新 / 删除。关键在于 LLM 拿到的不只是新对话还有现有记忆文件的当前内容因此它能直接判断这条偏好已存在 → 输出“补丁”修改或跳过偏好发生变化如缩进风格从 tabs 改成 spaces→ 输出“替换”全新偏好 → 输出“新增”。补丁内容通过 patch_merge_context_provider.py 组装把目标记忆文件的原文、行号和周边上下文一起喂给 LLM保证它改的是“原文里真实存在的片段”。合并去重SEARCH/REPLACE 补丁式写入执行层在 memory_updater.py 中应用 LLM 的输出具体合并策略由 merge_op/ 模块提供定义了 4 种字段级合并操作见 merge_op/base.py合并操作行为典型场景patch按 SEARCH/REPLACE 块局部修改文本“偏好 Python” 更新为 “偏好 Python 3.12”replace整字段替换用户改口直接覆盖旧值sum数值累加使用次数、计数类字段immutable只读禁止修改创建时间等元数据其中patch是去重的主力LLM 输出的 StrPatch 由若干“搜索-替换”块组成每块必须精确匹配记忆文件中的唯一片段命中才修改——这既避免重复写入也让每次合并都可追溯到原文。字符串字段的补丁应用逻辑在 merge_op/patch.py 中实现文件原本不存在时直接采用替换内容已存在时则逐块匹配修改匹配不到就保持原文不变天然幂等。增量提交commit配合上述合并操作实现了“边聊边压缩”每轮对话的新信息被持续提取、与既有记忆合并而不必等到会话结束才做一次性大总结。如何在 OpenViking Studio 中验证去重效果合并是否生效可以在 Studio 里直观验证参考 docs/zh/guides/ 中的使用指南在同一会话内两次告诉 Agent 同一偏好第二次故意改一个细节如“现在改成 4 空格缩进”提交后打开preferences/目录查看对应记忆文件——应该只有一条偏好记录且内容是最新版本用检索接口查询该偏好配合溯源信息_provenanceTrue可看到它命中的具体目录与层级召回侧同样做了去重各记忆桶的结果汇总后会统一去重、全局排序详见 docs/zh/api/06-retrieval.md保证注入上下文的内容干净、无重复。快速上手三步体验记忆压缩与去重git clone https://gitcode.com/GitHub_Trending/op/OpenViking.git cd OpenViking uv sync uv run openviking server随后在 Cursor、Claude Code 或 OpenCode 等 Agent 中接入 OpenViking配置说明见 docs/zh/agent-integrations/连续两次会话提及同一偏好再查看记忆目录即可看到自动合并的结果。小结OpenViking 通过“LLM 提取 SEARCH/REPLACE 补丁合并”实现增量式记忆压缩重复的用户偏好会被合并到同一条记录4 种字段级合并操作merge_op/让“改、换、累加、锁定”都有明确的写入语义增量提交机制让记忆始终处于“已压缩、无冗余”状态显著节省上下文 Token也让召回结果更聚焦。【免费下载链接】OpenVikingSelf-evolving Context Database for AI Agents. Unify Agent Memory, Knowledge RAG and Skills.项目地址: https://gitcode.com/GitHub_Trending/op/OpenViking创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表