正好也分享一下关于上下文压缩这个事情。
我之前对上下文压缩这个事情也很头疼,尝试过各种压缩办法,摘要、滑动窗口等等,无论哪种总会发现后续工作会因为一些信息没了,不符合我的预期。
后来想明白了,是压缩就一定会丢失信息,所以解决上下文窗口有限的办法不是不存在的无损压缩,而是 agentic memory,给 agent 工具让它自己搜索和召回丢失的信息,压缩就不再是问题了。
这个想法是被 openclaw 启发的,它在对话历史上用了 RAG。我在这个基础上做了些改进:框架层对每个 query 自动做 embedding 召回相关 chunk,每个 chunk 又带 topic ID 和位置信息,agent 可以据此拉取前后上下文(也可以自己做语义搜索)。
实际感受,大部分时候自动召回大部分就足够了,不够的时候 agent 也会自己多搜几轮,最差的情况我记得,它第一次没搜出来的时候,我提醒一下它再搜,也能搜出来。