Class CompositeEvictionStrategy
java.lang.Object
org.springframework.ai.tool.toolsearch.eviction.CompositeEvictionStrategy
- All Implemented Interfaces:
ToolIndexEvictionStrategy
A
ToolIndexEvictionStrategy that delegates to multiple strategies and unions
their eviction decisions.
All delegates receive every onAccess(java.lang.String) and onRemoved(java.lang.String) call. A session is
evicted if any delegate requests its eviction. Typical usage is to combine LRU
capacity bounding with TTL-based idle cleanup.
- Since:
- 2.0.0
- Author:
- Christian Tzolov
-
Constructor Summary
ConstructorsConstructorDescriptionCompositeEvictionStrategy(ToolIndexEvictionStrategy... strategies) Creates a composite strategy from the given delegates. -
Method Summary
Modifier and TypeMethodDescriptionCalled each time a session is accessed at the start of request processing.voidCalled after a session's tool index has been cleared — either because this strategy returned it fromToolIndexEvictionStrategy.onAccess(java.lang.String), or because of an explicit eviction request.
-
Constructor Details
-
CompositeEvictionStrategy
Creates a composite strategy from the given delegates.- Parameters:
strategies- one or more strategies to combine; must not be empty
-
-
Method Details
-
onAccess
Description copied from interface:ToolIndexEvictionStrategyCalled each time a session is accessed at the start of request processing.Implementations should update their internal tracking state for
sessionIdand return the set of session IDs whose tool indexes must now be cleared. The returned set must never include the currently-accessedsessionId.- Specified by:
onAccessin interfaceToolIndexEvictionStrategy- Parameters:
sessionId- the session being accessed- Returns:
- session IDs to evict; never
null, may be empty
-
onRemoved
Description copied from interface:ToolIndexEvictionStrategyCalled after a session's tool index has been cleared — either because this strategy returned it fromToolIndexEvictionStrategy.onAccess(java.lang.String), or because of an explicit eviction request.Implementations should remove any internal tracking state for the evicted session.
- Specified by:
onRemovedin interfaceToolIndexEvictionStrategy- Parameters:
sessionId- the session that was evicted
-