开发Agent,短期记忆应该怎么做?

沈剑心 2026-06-23 16:35 1

最近在开发一个小说系统,里面有Agent系统。

但是目前在记忆管理时遇到了问题。

如何给AI发送记忆,但是又不占用太多上下文窗口?


我不知道我的描述是否准确,所以我举个例子。


比如我和AI对话了100轮,那这100轮的聊天记录就是这次会话的记忆。



新对话请求时,都把100轮对话发给AI,那么它就会有之前对话的记忆

但问题是AI的输入上下文有限,且一次性发送一大堆给AI就会导致模型注意力变差,所以我目前的方案是 每次只发送15轮对话给AI + 之前所有对话的总结摘要(摘要是滚动更新,每15轮对话更新一次)

我不知道这种方式是否合理,我也是问了GPT才这么做的,所以想问问有经验的大佬们是怎么做的。


最新回复 (19)
  • dabao1955 06-23 16:38
    1

    rag,或者外挂一个知识库,或者存到数据库里然后根据提示词让llm读取

  • Hhhhhha 06-23 16:38
    2

    不太了解这部分的知识内容,按使用的codex的cli场景来讲,应该要有一套自己的会话压缩机制吧

  • 沈剑心 楼主 06-23 16:39
    3

    佬,这种是长期记忆吧,我认为这对于一个会话的记忆来说完全不一样。

  • evid_warn 06-23 16:40
    4

    我自己专门写了一个skill,这个skill会自己在项目目录下开一个文件夹,作为记忆存储的地方,然后内部记录研究的发现和不允许或者失败的记录,后面新开会话直接去读这个文件夹的内容就可以知道大概的内容,场景可能不太一样,提供一个思路

  • dabao1955 06-23 16:41
    5

    那就应该考虑压缩会话了,不过我觉得上下文越长越容易出现上下文污染。所以我上面说的那些我觉得是有必要的,佬友的意见是?

  • 沈剑心 楼主 06-23 16:41
    6

    是的,但是GPT的上下文总共也就256K,不可能他每次都把几百K的聊天数据都发给AI吧,这太夸张了。

    所以我也就好奇是怎么做的

  • LonsnKc 06-23 16:42
    7

    完整开发文档+拆分+多会话执行+审计=开发完成,上一个帖子是选择题,这个贴是数学题

  • dj-1 06-23 16:44
    8

    要不找个agent开发的八股文看看吧,大家方法都比较统一了,完美的方法基本不存在,都有一定的取舍。codex的压缩你不用研究了,他们是服务端压缩,似乎还涉及到token和kv缓存,openai有一篇文章讲过,可以去看看claude code的压缩机制

  • 沈剑心 楼主 06-23 16:45
    9

    我还是觉得会话级别的记忆不适合做成RAG,毕竟我随时会把这个会话删除掉,或者说这次对话是个垃圾对话。


    RAG我还是觉得适合做长期记忆,即你最近在干什么,你的性格爱好等值得记录的事情,并不适合做会话级别。

    因为一次会话,你并不知道用户要聊些什么东西,如果记录成RAG完全没用。

    (当然也只是我自己的拙见)

  • 亚斯娜 06-23 16:45
    10

    短期记忆就是多少轮回话的一个摘要 ^-^

  • 沈剑心 楼主 06-23 16:46
    11

    我现在也是这么做的,但感觉会不会有点简单 ^-^

  • 张林 06-23 16:47
    12

    需要一个状态机,或者一个窗口JSON来记录,就行了

  • 沈剑心 楼主 06-23 16:47
    13

    这倒是一个好办法,就是不知道网上有没有免费的 ^-^

  • Jea1ousy 06-23 16:49
    14

    /compact,不发送全部对话内容

  • 沈剑心 楼主 06-23 16:49
    15

    有点高端了佬,能不能细说呢,听不懂哇。

  • 何青泉 06-23 16:49
    16

    你现在用的是滑动窗口+上下文压缩, 我建议再加一个记忆检索的function calling, 最简单的实现是把所有会话存在md文件里, 利用linux的shell进行检索, 效果应该就够用了, 再复杂点的可以了解下mem0这类的东西

  • 亚斯娜 06-23 16:49
    17

    level 1:完整对话

    level 2:摘要

    level 3:更短摘要

    level 4:任务状态卡(state card)

  • 沈剑心 楼主 06-23 16:51
    18

    对对对,这个可以,谢谢佬提供思路

  • null 06-23 16:53
    19

    把codex拆了看它是怎么做上下文压缩的

* 帖子来源Linux.do
返回