3232from veadk .memory .short_term_memory_backends .sqlite_backend import (
3333 SQLiteSTMBackend ,
3434)
35+ from veadk .models .ark_transform import build_cache_metadata
3536from veadk .utils .logger import get_logger
3637
3738logger = get_logger (__name__ )
@@ -41,14 +42,29 @@ def wrap_get_session_with_callbacks(obj, callback_fn: Callable):
4142 get_session_fn = getattr (obj , "get_session" )
4243
4344 @wraps (get_session_fn )
44- def wrapper (* args , ** kwargs ):
45- result = get_session_fn (* args , ** kwargs )
45+ async def wrapper (* args , ** kwargs ):
46+ result = await get_session_fn (* args , ** kwargs )
4647 callback_fn (result , * args , ** kwargs )
4748 return result
4849
4950 setattr (obj , "get_session" , wrapper )
5051
5152
53+ def enable_responses_api_for_session_service (result , * args , ** kwargs ):
54+ if result and isinstance (result , Session ):
55+ if result .events :
56+ for event in result .events :
57+ if (
58+ event .actions
59+ and event .actions .state_delta
60+ and not event .cache_metadata
61+ and "response_id" in event .actions .state_delta
62+ ):
63+ event .cache_metadata = build_cache_metadata (
64+ response_id = event .actions .state_delta .get ("response_id" ),
65+ )
66+
67+
5268class ShortTermMemory (BaseModel ):
5369 """Short term memory for agent execution.
5470
@@ -170,6 +186,11 @@ def model_post_init(self, __context: Any) -> None:
170186 db_kwargs = self .db_kwargs , ** self .backend_configs
171187 ).session_service
172188
189+ if self .backend != "local" :
190+ wrap_get_session_with_callbacks (
191+ self ._session_service , enable_responses_api_for_session_service
192+ )
193+
173194 if self .after_load_memory_callback :
174195 wrap_get_session_with_callbacks (
175196 self ._session_service , self .after_load_memory_callback
0 commit comments