File tree Expand file tree Collapse file tree
claude-agent-sdk-multi-agent
claude-agent-sdk-single-agent Expand file tree Collapse file tree Original file line number Diff line number Diff line change 2727
2828app = BedrockAgentCoreApp ()
2929
30+ # Maps runtimeSessionId -> claude_session_id for conversation resumption.
31+ # Both are lost if the container restarts, so in-memory storage is sufficient.
32+ _session_map : dict [str , str ] = {}
33+
3034
3135@app .entrypoint
3236async def main (payload , context : RequestContext ):
@@ -46,7 +50,7 @@ async def main(payload, context: RequestContext):
4650 return
4751
4852 code_int_session_id = payload .get ("code_int_session_id" , "" )
49- claude_session_id = payload .get ("claude_session_id" )
53+ claude_session_id = _session_map .get (runtime_session_id )
5054
5155 # Extract user ID securely from validated JWT token
5256 user_id = extract_user_id_from_context (context )
@@ -171,6 +175,8 @@ async def _process_messages(options: ClaudeAgentOptions):
171175 pass
172176 elif isinstance (msg , ResultMessage ):
173177 logger .info ("ResultMessage received, session_id=%s" , msg .session_id )
178+ if msg .session_id :
179+ _session_map [runtime_session_id ] = msg .session_id
174180 yield {"claude_session_id" : msg .session_id }
175181
176182 try :
Original file line number Diff line number Diff line change 2626
2727app = BedrockAgentCoreApp ()
2828
29+ # Maps runtimeSessionId -> claude_session_id for conversation resumption.
30+ # Both are lost if the container restarts, so in-memory storage is sufficient.
31+ _session_map : dict [str , str ] = {}
32+
2933
3034@app .entrypoint
3135async def main (payload , context : RequestContext ):
@@ -45,7 +49,7 @@ async def main(payload, context: RequestContext):
4549 return
4650
4751 code_int_session_id = payload .get ("code_int_session_id" , "" )
48- claude_session_id = payload .get ("claude_session_id" )
52+ claude_session_id = _session_map .get (runtime_session_id )
4953
5054 # Extract user ID securely from validated JWT token
5155 user_id = extract_user_id_from_context (context )
@@ -158,6 +162,8 @@ async def _process_messages(options: ClaudeAgentOptions):
158162 pass
159163 elif isinstance (msg , ResultMessage ):
160164 logger .info ("ResultMessage received, session_id=%s" , msg .session_id )
165+ if msg .session_id :
166+ _session_map [runtime_session_id ] = msg .session_id
161167 yield {"claude_session_id" : msg .session_id }
162168
163169 try :
You can’t perform that action at this time.
0 commit comments