Package com.yapcli.memory
package com.yapcli.memory
-
ClassDescription上下文压缩器 - 当对话过长时,自动压缩旧消息 压缩策略: 1.压缩 ReAct 主循环里的
conversationHistory(即List<LlmClient.Message>)。 与ContextCompressor的区别: -ContextCompressor压的是ConversationMemory(YapCLI 的短期记忆条目) - 本类压的是 Agent 实际发给 LLM 的消息列表 第 3 期 Memory 设计假设"LLM 调用从 shortTermMemory 重建消息",但实际 Agent 直接维护 conversationHistory,与 shortTermMemory 并行。两个度量错位导致旧版压缩从未真正缩短 即将发给 LLM 的 token——本类是在 Agent.run 主循环里"调 LLM 前评估并压缩"的补丁。 算法: 1.短期记忆 - 管理当前对话的上下文 职责: 1.长期记忆 - 跨对话持久化的关键信息 职责: 1.Memory 接口 - 记忆系统的统一抽象 分为短期记忆(ShortTermMemory)和长期记忆(LongTermMemory): - 短期记忆:当前对话的上下文,包括消息历史和工具结果 - 长期记忆:跨对话持久化的关键信息,如用户偏好、项目事实记忆条目 - Memory 系统的基础数据单元Memory 管理器 - Memory 系统的门面类 统一管理短期记忆、长期记忆、上下文压缩和检索, 为 Agent 提供简洁的记忆存取接口。记忆检索器 - 根据查询从短期记忆和长期记忆中检索最相关的信息 检索策略: 1.Token 预算管理器 - 确保对话不会超出模型的上下文窗口 策略: 1.