杠精派
派聪明
0/512

热门评论

柒眠 2026年06月08日 15:31
引用原文:是 conversationHistory 压缩
@派聪明 这个压缩和Memory 系统里的短期记忆压缩有什么区别
点赞
回复3 取消回复
派聪明 2026年06月08日 15:31
在 PaiCLI 的架构中,**`conversationHistory`压缩**与 **Memory系统里的短期记忆压缩**虽然都是为了防止上下文窗口溢出,但两者在作用对象和触发时机上有本质区别: ###1.压缩的对象不同* **`conversationHistory`压缩**:针对的是 **Agent真正要发送给 LLM 的消息列表**。它负责重组实际发出的 API请求,防止上下文撑爆模型限制。 * **Memory系统里的短期记忆压缩**:针对的是 **底层的完整对话记录存储**。它通过 Map-Reduce算法将历史消息提炼成摘要,并写回短期记忆系统中。 ###2.触发时机不同* **`conversationHistory`压缩**:发生在 **每次调用 LLM之前**。系统会主动检查当前待发送的历史记录 token 是否达到窗口上限的90%,若达到则触发压缩,属于“前置拦截”。 * **短期记忆压缩**:发生在 **写入短期记忆之后**。当一条新消息(如用户输入、工具结果)存入系统后,系统会评估总存储量,达到阈值(约占窗口45% 的90%)后触发压缩。 ###3.具体的压缩逻辑不同* **`conversationHistory`压缩**:为了严格遵守 API协议,必须按 `user message`(用户消息)边界进行切割。它会保留最近3 个用户轮次的消息,把更早的历史交给 LLM 总结成一段摘要,以避免切断 `assistant tool_call`(工具调用)和 `tool result`(工具结果)的配对关系。 * **短期记忆压缩**:使用 Map-Reduce摘要法,将旧消息按片段生成摘要后合并。
点赞
回复 取消回复
展开剩余 2 条回复

14 条评论

xcx0103 2026年06月08日 23:01
引用原文:长上下文自适应
@派聪明 这个是什么呢
点赞
回复1 取消回复
派聪明 2026年06月08日 23:01
“长上下文自适应”是指让 AI智能体(如文中的 PaiCLI)能够智能地管理模型的上下文窗口(如200k 到1M token),确保在海量对话和代码检索中不“超载爆内存”,并维持高效响应的综合工程策略。 根据文章内容,它主要体现在以下三个核心机制: 1. **智能上下文压缩**:模型有 token 上限,对话久了或读取大文件容易撑爆上下文。PaiCLI会在每轮调用大模型前主动检查 token 用量(达到窗口90% 时触发压缩),而不是等报错才处理。 2. **对话历史无损摘要**:当需要压缩时,系统会把较早的对话历史总结成一段摘要,并严格保留最近3轮的完整对话,防止切断工具调用的配对关系,从而在释放空间的同时避免模型理解混乱。 3. **分层检索与精准控制**: * **外部记忆调度**:优先使用“精确搜索”(关键词、正则等定位代码),只有遇到模糊查询时才走 RAG 向量检索兜底,避免把无关代码塞进上下文浪费 token。 * **记忆注入预算**:严格限制短期记忆(占窗口45%)、长期记忆(注入条数上限)等不同层级数据的 token 占比。 简单来说,它就像给 AI装上了一个**智能内存管家**,通过实时监控、历史压缩和精准检索,让 AI 在有限的“大脑容量”下,既能记住关键背景,又能处理超长、超大型的代码库任务。
点赞
回复 取消回复
柒眠 2026年06月08日 15:31
引用原文:是 conversationHistory 压缩
@派聪明 这个压缩和Memory 系统里的短期记忆压缩有什么区别
点赞
回复3 取消回复
派聪明 2026年06月08日 15:31
在 PaiCLI 的架构中,**`conversationHistory`压缩**与 **Memory系统里的短期记忆压缩**虽然都是为了防止上下文窗口溢出,但两者在作用对象和触发时机上有本质区别: ###1.压缩的对象不同* **`conversationHistory`压缩**:针对的是 **Agent真正要发送给 LLM 的消息列表**。它负责重组实际发出的 API请求,防止上下文撑爆模型限制。 * **Memory系统里的短期记忆压缩**:针对的是 **底层的完整对话记录存储**。它通过 Map-Reduce算法将历史消息提炼成摘要,并写回短期记忆系统中。 ###2.触发时机不同* **`conversationHistory`压缩**:发生在 **每次调用 LLM之前**。系统会主动检查当前待发送的历史记录 token 是否达到窗口上限的90%,若达到则触发压缩,属于“前置拦截”。 * **短期记忆压缩**:发生在 **写入短期记忆之后**。当一条新消息(如用户输入、工具结果)存入系统后,系统会评估总存储量,达到阈值(约占窗口45% 的90%)后触发压缩。 ###3.具体的压缩逻辑不同* **`conversationHistory`压缩**:为了严格遵守 API协议,必须按 `user message`(用户消息)边界进行切割。它会保留最近3 个用户轮次的消息,把更早的历史交给 LLM 总结成一段摘要,以避免切断 `assistant tool_call`(工具调用)和 `tool result`(工具结果)的配对关系。 * **短期记忆压缩**:使用 Map-Reduce摘要法,将旧消息按片段生成摘要后合并。
点赞
回复 取消回复
展开剩余 2 条回复
柒眠 2026年06月08日 15:26
引用原文:判断条件是短期记忆 token 占用达到阈值,当前代码默认是 90%。短期记忆预算又是模型窗口的 45%,所以粗略看:D
@派聪明 这个90%和45%怎么理解
点赞
回复1 取消回复
派聪明 2026年06月08日 15:27
这两个数字代表了 PaiCLI 在管理上下文窗口时的**“两道防线”**和**“预算分配”**策略。具体理解如下: **1.45%(短期记忆预算分配):** 整个 AI模型有一个最大的上下文窗口限制(比如200k 或1M token)。在这个总空间里,系统划定了 **45%** 作为“短期记忆”(即当前对话历史)的最大可用空间。 * *例如 DeepSeek V4 的窗口是1M,那么短期记忆的绝对上限就是 `1,000,000 *45% =450k` tokens。* 剩下的55%预算留给了系统提示词、长期记忆注入、RAG检索结果以及工具调用返回的内容等。 **2.90%(压缩触发阈值):** 这是在上述45% 的预算空间内设定的一个**警告线**。系统会实时监控短期记忆的 token消耗,当它达到自身预算限制的 **90%** 时,就会自动触发 Map-Reduce摘要压缩,而不是等100%撑爆了才去处理。 * *继续上面的例子,短期记忆预算是450k,90% 的阈值就是 `450k *90% =405k` tokens。当对话历史膨胀到405k 时,系统就会开始把旧对话压缩成摘要。* **总结来说:** **45%**决定了对话历史在总上下文中**最多能占多大空间**;**90%**决定了对话历史在这个分配空间内**达到多少时开始清理压缩**。这样做能有效防患于未然,确保模型在多轮对话中不会因为上下文超限而报错崩溃。
点赞
回复 取消回复
土豆大王 2026年06月02日 21:14
引用原文:关键是分割点必须落在 user message 边界,不能切断 assistant tool_call 和 tool result 的配对关系。否则 OpenAI-compatible API 会发现 tool_call_id 找不到对应 tool 消息,轻则模型理解混乱,重则直接 400。
这段怎么理解
点赞
回复 取消回复
Ψ 2026年06月01日 10:15
引用原文:我说:“第一套是 Memory 系统里的短期记忆压缩,用的是 Map-Reduce 摘要:旧消息先按片段生成摘要,再把多段摘要合并,最后把摘要写回短期记忆。” “第二套是 conversationHistory 压缩,压的是 Agent 真正发给 LLM 的消息列表。它不是 Map-Reduce,而是在调用 LLM 前检查 token,达到阈值后,把 system 后面、最近 3 个 user 轮次之前的旧消息交给 LLM 总结成一段摘要,再重建消息列表。”
为什么要两套压缩呢?不能用一套
点赞
回复1 取消回复
z* 2026年06月01日 18:26
确实,感觉完全可以只用第二套,把第一套压缩后的短期记忆消息合进conversationHistory。现在是Memory 系统里的短期记忆压缩一遍,然后conversationHistory里面包含的各种消息(其中也包含了短期记忆,然后还有其他的消息)单独再压缩一遍发给llm。所有目前Memory 系统里的短期记忆是为了给用户查看吗?
点赞
回复 取消回复
Ψ 2026年06月01日 10:14
引用原文:然后把这些和短期记忆里的对话历史一起拼装成完整的 prompt 发给模型
我看了代码,发现短期记忆的对话历史好像不是真正发给大模型的把,而是conversationHistory这个消息列表才是真正发给大模型的。他们各自有自己的压缩方式
点赞
回复 取消回复
亚泽 2026年05月21日 17:14
引用原文:AST 解析
@派聪明 @杠精派 这是什么
1
回复 取消回复
且放白鹿 2026年05月19日 13:54
引用原文:挺能吹的啊
@杠精派 这啥
1
回复 取消回复

目录