AutoContextMemory
public class AutoContextMemory implements StateModule, Memory, ContextOffLoader
io/agentscope/core/memory/autocontext/AutoContextMemory.java:81–2145Auto 上下文记忆,在多次调用之间保存和恢复会话与记忆数据。位于 io.agentscope.core.memory.autocontext 包,实现 StateModule、Memory、ContextOffLoader。核心成员包括 addMessage、getMessages、compressIfNeeded、offload、reload、clear。
AutoContextMemory - Intelligent context memory management system.
AutoContextMemory implements the Memory interface and provides automated
context compression, offloading, and summarization to optimize LLM context window usage.
When conversation history exceeds configured thresholds, the system automatically applies
multiple compression strategies to reduce context size while preserving important information.
Key features:
-
Automatic compression when message count or token count exceeds thresholds
-
Six progressive compression strategies (from lightweight to heavyweight)
-
Intelligent summarization using LLM models
-
Content offloading to external storage
-
Tool call interface preservation during compression
-
Dual storage mechanism (working storage and original storage)
Compression strategies (applied in order):
-
Compress historical tool invocations
-
Offload large messages (with lastKeep protection)
-
Offload large messages (without protection)
-
Summarize historical conversation rounds
-
Summarize large messages in current round (with LLM summary and offload)
-
Compress current round messages
Storage architecture:
-
Working Memory Storage: Stores compressed messages for actual conversations
-
Original Memory Storage: Stores complete, uncompressed message history
构造器摘要Constructor Summary
| 构造器Constructor | 说明Description |
|---|---|
public AutoContextMemory(AutoContextConfig autoContextConfig, Model model) | 初始化 `AutoContextMemory` 实例。 Creates a new AutoContextMemory instance with the specified configuration and model. |
方法摘要Method Summary
| 方法Method | 说明Description |
|---|---|
public void addMessage(Msg message) | 添加消息。 Adds the message. |
public List<Msg> getMessages() | 获取消息。 Returns the messages. |
public boolean compressIfNeeded() | 压缩 `compressIfNeeded`。 Compresses the working memory if thresholds are reached. |
public void offload(String uuid, List<Msg> messages) | 执行卸载相关操作。 Performs the offload operation. |
public List<Msg> reload(String uuid) | 设置重新加载。 Performs the reload operation. |
public void clear(String uuid) | 清空或重置内部状态。 Clears or resets internal state. |
public void deleteMessage(int index) | 删除消息。 Deletes the message. |
public void clear() | 清空或重置内部状态。 Clears or resets internal state. |
public void attachPlanNote(PlanNotebook planNotebook) | 附加 `attachPlanNote`。 Attaches a PlanNotebook instance to enable plan-aware compression. |
public List<Msg> getOriginalMemoryMsgs() | 获取 `getOriginalMemoryMsgs`。 Gets the original memory storage containing complete, uncompressed message history. |
public List<Msg> getInteractionMsgs() | 获取 `getInteractionMsgs`。 Gets the user-assistant interaction messages from original memory storage. |
public Map<String, List<Msg>> getOffloadContext() | 获取卸载上下文。 Gets the offload context map containing offloaded message content. |
public List<CompressionEvent> getCompressionEvents() | 获取压缩事件。 Gets the list of compression events that occurred during context management. |
public void saveTo(Session session, SessionKey sessionKey) | 保存到。 Save memory state to the session. |
public void loadFrom(Session session, SessionKey sessionKey) | 加载来自。 Load memory state from the session. |
构造器详情Constructor Detail
AutoContextMemory
public AutoContextMemory(AutoContextConfig autoContextConfig, Model model)
初始化 AutoContextMemory 实例。
Creates a new AutoContextMemory instance with the specified configuration and model.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
autoContextConfig | AutoContextConfig | auto 上下文配置(类型 `AutoContextConfig`)。the configuration for auto context management |
model | Model | 模型实例(类型 `Model`)。the LLM model to use for compression and summarization |
io/agentscope/core/memory/autocontext/AutoContextMemory.java:140–148方法详情Method Detail
addMessage
public void addMessage(Msg message)
添加消息。
Adds the message.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
message | Msg | 消息(类型 `Msg`)。The message. |
io/agentscope/core/memory/autocontext/AutoContextMemory.java:150–154getMessages
public List<Msg> getMessages()
获取消息。
Returns the messages.
List<Msg>io/agentscope/core/memory/autocontext/AutoContextMemory.java:156–160compressIfNeeded
public boolean compressIfNeeded()
压缩 compressIfNeeded。
Compresses the working memory if thresholds are reached.
booleanio/agentscope/core/memory/autocontext/AutoContextMemory.java:184–305offload
public void offload(String uuid, List<Msg> messages)
执行卸载相关操作。
Performs the offload operation.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
uuid | String | UUID(类型 `String`)。The uuid. |
messages | List<Msg> | 消息列表(类型 `List`)。The messages. |
io/agentscope/core/memory/autocontext/AutoContextMemory.java:806–809reload
public List<Msg> reload(String uuid)
设置重新加载。
Performs the reload operation.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
uuid | String | UUID(类型 `String`)。The uuid. |
List<Msg>io/agentscope/core/memory/autocontext/AutoContextMemory.java:811–815clear
public void clear(String uuid)
清空或重置内部状态。
Clears or resets internal state.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
uuid | String | UUID(类型 `String`)。The uuid. |
io/agentscope/core/memory/autocontext/AutoContextMemory.java:817–820deleteMessage
public void deleteMessage(int index)
删除消息。
Deletes the message.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
index | int | 索引(类型 `int`)。The index. |
io/agentscope/core/memory/autocontext/AutoContextMemory.java:1538–1543clear
public void clear()
清空或重置内部状态。
Clears or resets internal state.
io/agentscope/core/memory/autocontext/AutoContextMemory.java:1819–1823attachPlanNote
public void attachPlanNote(PlanNotebook planNotebook)
附加 attachPlanNote。
Attaches a PlanNotebook instance to enable plan-aware compression.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
planNotebook | PlanNotebook | 计划 Notebook(类型 `PlanNotebook`)。the PlanNotebook instance to attach, or null to detach |
io/agentscope/core/memory/autocontext/AutoContextMemory.java:1837–1844getOriginalMemoryMsgs
public List<Msg> getOriginalMemoryMsgs()
获取 getOriginalMemoryMsgs。
Gets the original memory storage containing complete, uncompressed message history.
List<Msg>io/agentscope/core/memory/autocontext/AutoContextMemory.java:1975–1977getInteractionMsgs
public List<Msg> getInteractionMsgs()
获取 getInteractionMsgs。
Gets the user-assistant interaction messages from original memory storage.
List<Msg>io/agentscope/core/memory/autocontext/AutoContextMemory.java:2016–2024getOffloadContext
public Map<String, List<Msg>> getOffloadContext()
获取卸载上下文。
Gets the offload context map containing offloaded message content.
Map<String, List<Msg>>io/agentscope/core/memory/autocontext/AutoContextMemory.java:2047–2049getCompressionEvents
public List<CompressionEvent> getCompressionEvents()
获取压缩事件。
Gets the list of compression events that occurred during context management.
List<CompressionEvent>io/agentscope/core/memory/autocontext/AutoContextMemory.java:2069–2071saveTo
public void saveTo(Session session, SessionKey sessionKey)
保存到。
Save memory state to the session.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
session | Session | 会话到保存状态到。the session to save state to |
sessionKey | SessionKey | 会话键(类型 `SessionKey`)。the session identifier |
io/agentscope/core/memory/autocontext/AutoContextMemory.java:2083–2108loadFrom
public void loadFrom(Session session, SessionKey sessionKey)
加载来自。
Load memory state from the session.
| 名称Name | 类型Type | 说明Description |
|---|---|---|
session | Session | 会话到加载状态来自。the session to load state from |
sessionKey | SessionKey | 会话键(类型 `SessionKey`)。the session identifier |
io/agentscope/core/memory/autocontext/AutoContextMemory.java:2118–2144