close
杠精派
派聪明
0/512

热门评论 Image

Image
东呆西萌 2026年07月15日 17:15
@派聪明 在记忆检索模块说要对短期记忆进行检索,但是在将记忆模块集成到Agent的模块中却只对长期记忆进行检索,这是为什么?
点赞
回复9 取消回复
Image
派聪明 2026年07月15日 17:16
这个问题问得很细,核心原因在于:**短期记忆的内容已经通过对话历史(`conversationHistory`)直接传给 LLM 了,Agent 不需要再额外检索一次。** 具体拆解一下: 1. **短期记忆 = 对话历史本身**。在 `Agent.run()` 方法中,用户输入是先存进短期记忆,然后紧接着就添加到 `conversationHistory` 列表里了(第三步)。后续 ReAct 循环会把整个 `conversationHistory` 作为 messages 传给 LLM。所以短期记忆里的每一条消息都已经原封不动地出现在 LLM 的输入上下文中,**不需要再从记忆系统里捞一次**——捞出来也是重复的,浪费 token。 2. **长期记忆是跨会话的、对话历史里没有的**。用户上一轮会话说“我喜欢 JDK 17”,清空对话后,`conversationHistory` 里已经没有这条消息了。但长期记忆的 JSON 文件里还存着。所以 Agent 需要主动检索长期记忆,把那些**对话历史里不存在但对当前任务有帮助**的事实捡回来,注入到 system prompt 里。 3. **`buildContextForQuery` 内部虽然会检索短期记忆**,但检索出来的内容本质上是对话历史已有的信息,真正有价值的是长期记忆那部分。注释写“检索相关长期记忆”是一种**业务语义上的简化**——Agent 集成层最关心的、最缺的、唯一需要额外补充的,就是长期记忆。短期记忆的检索更多是检索器层面的通用设计(比如给其他场景复用),但在 Agent 主流程里,它起到的作用接近于零。 一句话总结:**短期记忆已经通过对话历史直接喂给 LLM 了,无需再检索;只有长期记忆是对话历史里没有的,才需要 Agent 主动去“想起来”并注入到上下文中。**
点赞
回复 取消回复
展开剩余 8 条回复

129 条评论

Image
粗心的超短裙 2026年08月18日 02:29
引用原文:记忆上下文
@派聪明 记忆上下文和短期记忆什么区别
点赞
回复1 取消回复
Image
派聪明 2026年08月18日 02:29
这是我从文章中选择的一段文本:"记忆上下文" 记忆上下文和短期记忆什么区别 当前模型还在开发当中,请右上角下拉框切换到其他模型
点赞
回复 取消回复
Image
粗心的超短裙 2026年08月18日 02:29
引用原文:记忆上下文
@派聪明 记忆上下文和短期记忆什么区别
点赞
回复1 取消回复
Image
派聪明 2026年08月18日 02:29
这是我从文章中选择的一段文本:"记忆上下文" 记忆上下文和短期记忆什么区别 当前模型还在开发当中,请右上角下拉框切换到其他模型
点赞
回复 取消回复
Image
粗心的超短裙 2026年08月18日 02:29
引用原文:记忆上下文
@派聪明 记忆上下文和短期记忆什么区别
点赞
回复1 取消回复
Image
派聪明 2026年08月18日 02:29
这是我从文章中选择的一段文本:"记忆上下文" 记忆上下文和短期记忆什么区别 当前模型还在开发当中,请右上角下拉框切换到其他模型
点赞
回复 取消回复
Image
bang 2026年08月16日 18:03
@派聪明 看了源码,没看见短期记忆的实际调用(用在了哪里),似乎都是使用的对话历史conversationHistory,并没有“检索短期记忆 → 注入 LLM”?那它有什么实际作用吗?还是说设计它的本意作用均转移到了conversationHistory上
点赞
回复1 取消回复
Image
派聪明 2026年08月16日 18:03
看了源码,没看见短期记忆的实际调用(用在了哪里),似乎都是使用的对话历史conversationHistory,并没有“检索短期记忆 → 注入 LLM”!那它有什么实际作用!还是说设计它的本意作用均转移到了conversationHistory上 当前模型还在开发当中,请右上角下拉框切换到其他模型
点赞
回复 取消回复
Image
dingyb 2026年08月06日 17:05
引用原文:ieba 在 Java 生态里算比较成熟的中文分词库了。分
@派聪明 每种不同的语种有不同的分词库吗,那多语言怎么支持呢
点赞
回复1 取消回复
Image
派聪明 2026年08月06日 17:05
小派正在努力回答中, 耐心等待一下吧...
点赞
回复 取消回复
Image
蟹皇堡的蟹黄酱 2026年07月31日 23:23
现在的代码里面有很多问题啊,解决的很不清晰。就比如 conversationMemory 的短期记忆根本就没有应用,实际还是用的 conversationHistory。而且压缩和检索的调用也有很多死路和重复调用。这代码提交之前都没人检查吗?
4
回复1 取消回复
Image
粗心的超短裙 2026年08月18日 02:40
就是一坨勾石
点赞
回复 取消回复
Image
Qy 2026年07月30日 22:56
达到token阈值旧值进入compressedSummaries列表来减小token,和达到上下文窗口的80%执行压缩降低token有什么区别?这俩只保留一个不行吗?
点赞
回复 取消回复
Image
🐝 2026年07月27日 14:06
@派聪明 检索长期记忆并加入到系统提示词中这块,假如长期记忆记录用户喜欢用Java17,用户新的问题是创建一个新的项目,怎么能找到这条记忆?关键词匹配的话完全没有相关的词呀?
点赞
回复1 取消回复
Image
派聪明 2026年07月27日 14:06
检索长期记忆并加入到系统提示词中这块,假如长期记忆记录用户喜欢用Java17,用户新的问题是创建一个新的项目,怎么能找到这条记忆!关键词匹配的话完全没有相关的词呀! 当前模型还在开发当中,请右上角下拉框切换到其他模型
点赞
回复 取消回复
Image
17377927899 2026年07月25日 17:15
引用原文:压缩策略用的是 Map-Reduce,跟处理大文档的思路一样:
@派聪明 使用map-reduce策略压缩比直接整体压缩用什么优势
点赞
回复3 取消回复
Image
派聪明 2026年07月25日 17:15
小派正在努力回答中, 耐心等待一下吧...
点赞
回复 取消回复
展开剩余 2 条回复
Image
ccql 2026年07月23日 16:41
引用原文:这里有个细节——记忆上下文是注入到 system prompt,不是拼到 user message 里。如果塞到 user message,LLM 可能把记忆内容当成用户的指令来执行,这就乱套了。放到 system prompt 里,模型会把它当背景信息参考,不会跟用户输入混淆。
所以整体的过程是:用户输入指令 -> 存储短期记忆 -> 检索长短期记忆合成相关上下文 system prompt -> 使用ReAct模式执行 -> 存储短期记忆 -> 自动提取关键事实到长期记忆。对么?有哪里需要纠正的地方?
点赞
回复1 取消回复
Image
ccql 2026年07月23日 16:43
@派聪明
点赞
回复 取消回复

目录