1212 query ,
1313 ClaudeAgentOptions ,
1414 AgentDefinition ,
15- AssistantMessage ,
1615 ResultMessage ,
17- TextBlock ,
1816)
1917
2018# Config source (in Docker image) and destination (Lambda writable)
@@ -178,8 +176,8 @@ async def process_message(
178176 agents = agents if agents else None ,
179177 )
180178
181- response_texts : list [str ] = []
182179 result_session_id = session_id or ''
180+ result_text = ''
183181 cost_usd = 0.0
184182 num_turns = 0
185183 is_error = False
@@ -190,19 +188,14 @@ async def process_message(
190188 os .environ ['AWS_PROFILE' ] = 'bedrock'
191189
192190 async for message in query (prompt = user_message , options = options ):
193- # Handle AssistantMessage - extract text from content blocks
194- if isinstance (message , AssistantMessage ):
195- for block in message .content :
196- if isinstance (block , TextBlock ):
197- response_texts .append (block .text )
198-
199- # Handle ResultMessage - extract session_id and metadata
200- elif isinstance (message , ResultMessage ):
191+ # Handle ResultMessage - contains final response and metadata
192+ if isinstance (message , ResultMessage ):
201193 result_session_id = message .session_id
194+ result_text = message .result or ''
202195 cost_usd = message .total_cost_usd or 0.0
203196 num_turns = message .num_turns
204197 is_error = message .is_error
205- if is_error and message . result :
198+ if is_error :
206199 error_message = message .result
207200
208201 except Exception as e :
@@ -214,7 +207,7 @@ async def process_message(
214207 del os .environ ['AWS_PROFILE' ]
215208
216209 return {
217- 'response' : ' \n ' . join ( response_texts ) if response_texts else '' ,
210+ 'response' : result_text ,
218211 'session_id' : result_session_id ,
219212 'cost_usd' : cost_usd ,
220213 'num_turns' : num_turns ,
0 commit comments