agentscope-ai / agentscope-ai/agentscope-java

[Feature]: Add Hooks to SessionManager and Implement Memory Limits

Đang mở
#295 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
area/core/memory enhancement
Ngôn ngữ chính
Java
Star
5.6k
Fork
1.3k
Merge trung bình
4 ngày 12 giờ
Pull request đã merge (30 ngày)
77

Mô tả

1. **Add a hooks mechanism to SessionManager**

Allow developers to inject custom logic at key lifecycle stages (e.g., before/after state updates, on save/load).
Refactor internal state to be strongly typed for better developer experience and safer operations.

2. **Introduce configurable memory limits**
Support setting max message count and max token limit per session or memory instance.
Provide eviction strategies (e.g., FIFO, LRU) to automatically trim history when limits are reached.

**Use Cases & Benefits**

- **External Storage & Memory Control**:
We use Minio for external session storage. With hooks, we can precisely enforce token/window limits—keeping short-term memory lightweight while preserving long-term context separately.

- **Dual Storage for Business Needs**: We store full conversation history in a relational database (by message) for on-demand paginated access. Hooks allow clean extraction and persistence without wrapping layers or workarounds.

- **Prevent OOM**: Enforcing token/message limits ensures system stability in long-running or high-volume conversation scenarios.

**Suggested Implementation Outline**

- Define a SessionManagerHooks interface with methods like onStateUpdate, beforeSave, afterLoad.
- Add MemoryLimitConfig with maxMessages and maxTokens options, coupled with a trimming mechanism.
- Refactor state to use typed structures instead of map.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.