我的智能体在对话中途不断"忘记"信息——找到了一种真正解决该问题的技术(LCM)
摘要
Voltropy论文提出的无损上下文管理(LCM)技术,通过将所有消息逐字存储到SQLite中,同时向模型提供压缩摘要,防止AI智能体在长对话中遗忘信息,从而能够无损失地检索精确细节。openlcm库提供了LangGraph的MemorySaver的即插即用替代方案,并支持其他框架。
我一直在构建一个多步骤的研究智能体,大约经过30到40轮交互后,我不断遇到同样的问题:模型开始自相矛盾,忘记硬性约束,并询问已经提供过的信息。我尝试了通常的方法,但它们都有显著的局限性:
- 摘要/ handoff.md
- 损失过大。
- 重要细节难免被丢弃。
- LangGraph MemorySaver
- 非常适合跨重启持久化状态。
- 无法解决上下文窗口溢出问题。
- 仍会触及令牌限制。
- 滚动摘要并替换
- 最终变成摘要的摘要的摘要。
- 细粒度细节随时间消失。
更好的方法:无损上下文管理(LCM)
我一直在阅读关于Voltropy论文中提出的无损上下文管理(LCM)。核心理念很直接:上下文压缩不应需要破坏信息。我最近发现了openlcm("pip install openlcm"),它实现了这一方法。每条原始消息都被逐字存储在SQLite中,同时模型接收压缩的摘要层次结构。结果是,模型在一个小而高效的上下文窗口中运行,但仍然可以检索到几十轮前做出的决策的确切文本。与传统的摘要方法——或Claude Code风格的压缩——不同,这里没有内在的"压缩=丢失信息"的权衡。对于LangGraph用户,它本质上是"MemorySaver"的即插即用替代方案:from openlcm.adapters.langgraph import LCMCheckpointer graph = StateGraph(MyState).compile( checkpointer=LCMCheckpointer(llm=my_llm) ) 它还支持AutoGen、CrewAI以及直接的OpenAI/Anthropic集成。我特别喜欢的一个功能是本地仪表盘,它可以让你精确查看模型看到的内容与从活动上下文中摘要出的内容之间的对比。我想分享出来,因为我不常见到LCM被讨论,而且它似乎是长时间运行智能体工作流的一个有前景的方向。
相似文章
本地LLM伙伴
一位拥有45年经验的开发者正在构建一个本地优先的LLM框架,包含多智能体逻辑,即将在GitHub上开源,并向社区询问哪些功能能改善他们的本地LLM体验。
@TheAhmadOsman: Yannick 在本地 AI 领域的工作深度被严重低估
Yannick Nick 演示了如何使用 KTransformers 在 2 块 RTX Pro 6000 GPU 上以原生 FP4+FP8 精度运行 DeepSeek V4 Flash,从而在资源受限的系统上实现高效推理。
Slisp: 简单的Lisp编译器 (Linux/amd64)
Slisp 是一个简单的编译器,它读取 Lisp 程序并生成适用于 Linux/AMD64 的独立汇编表示,支持基本原语、闭包和标准库。
让devenv启动变快,以及整个nixpkgs也随之加速 - devenv
这篇博文解释了Nix中动态链接器搜索共享库导致devenv和其他Nix工具启动性能问题的原因,并探讨了包括静态链接在内的潜在解决方案。
让一个Rust数据库在游戏GPU的RT核心上运行空间查询,击败了H100
SedonaDB 0.4引入了RayBooster,它利用GPU光线追踪核心加速空间连接,性能超越H100;该研究成果已被VLDB 2026接收。