@@ -153,13 +153,15 @@ def __init__(
153153 messages : list ,
154154 available_tools : list [str ],
155155 tool_server : Optional [ToolServer ],
156+ request_id : str ,
156157 ):
157158 self ._messages = messages
158159 self .finish_reason : Optional [str ] = None
159160 self .available_tools = available_tools
160161 self ._tool_sessions : dict [str , Union [ClientSession , Tool ]] = {}
161162 self .called_tools : set [str ] = set ()
162163 self ._tool_server = tool_server
164+ self .request_id = request_id
163165 self ._async_exit_stack : Optional [AsyncExitStack ] = None
164166 self ._reference_count = 0
165167 self ._reference_count_lock = asyncio .Lock ()
@@ -307,18 +309,6 @@ def need_builtin_tool_call(self) -> bool:
307309 or recipient .startswith ("container." )
308310 )
309311
310- async def _get_tool_session (self , tool_name : str ) -> Union ["ClientSession" , Tool ]:
311- if tool_name not in self ._tool_sessions and self ._tool_server is not None :
312- assert self ._async_exit_stack is not None , (
313- "Async exit stack not set. Please report this issue."
314- )
315- self ._tool_sessions [
316- tool_name
317- ] = await self ._async_exit_stack .enter_async_context (
318- self ._tool_server .new_session (tool_name )
319- )
320- return self ._tool_sessions [tool_name ]
321-
322312 async def call_tool (self ) -> list [Message ]:
323313 if not self .messages :
324314 return []
@@ -342,6 +332,18 @@ async def call_tool(self) -> list[Message]:
342332 def render_for_completion (self ) -> list [int ]:
343333 return render_for_completion (self .messages )
344334
335+ async def _get_tool_session (self , tool_name : str ) -> Union ["ClientSession" , Tool ]:
336+ if tool_name not in self ._tool_sessions and self ._tool_server is not None :
337+ assert self ._async_exit_stack is not None , (
338+ "Async exit stack not set. Please report this issue."
339+ )
340+ self ._tool_sessions [
341+ tool_name
342+ ] = await self ._async_exit_stack .enter_async_context (
343+ self ._tool_server .new_session (tool_name , self .request_id )
344+ )
345+ return self ._tool_sessions [tool_name ]
346+
345347 async def call_search_tool (
346348 self , tool_session : Union ["ClientSession" , Tool ], last_msg : Message
347349 ) -> list [Message ]:
0 commit comments