From 878d0c8155126c9ae6621a50559a67b4e303fd5a Mon Sep 17 00:00:00 2001 From: Chakib Ben Ziane Date: Fri, 5 May 2023 08:59:55 +0200 Subject: [PATCH] fix: #4128 missing run_manager parameter (#4130) `run_manager` was not being passed downstream. Not sure if this was a deliberate choice but it seems like it broke many agent callbacks like `agent_action` and `agent_finish`. This fix needs a proper review. Co-authored-by: blob42 --- langchain/agents/agent.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/langchain/agents/agent.py b/langchain/agents/agent.py index fbb1ff6c..0784d54d 100644 --- a/langchain/agents/agent.py +++ b/langchain/agents/agent.py @@ -957,7 +957,11 @@ class AgentExecutor(Chain): run_manager=run_manager, ) if isinstance(next_step_output, AgentFinish): - return await self._areturn(next_step_output, intermediate_steps) + return await self._areturn( + next_step_output, + intermediate_steps, + run_manager=run_manager, + ) intermediate_steps.extend(next_step_output) if len(next_step_output) == 1: @@ -965,7 +969,9 @@ class AgentExecutor(Chain): # See if tool should return directly tool_return = self._get_tool_return(next_step_action) if tool_return is not None: - return await self._areturn(tool_return, intermediate_steps) + return await self._areturn( + tool_return, intermediate_steps, run_manager=run_manager + ) iterations += 1 time_elapsed = time.time() - start_time @@ -980,7 +986,9 @@ class AgentExecutor(Chain): output = self.agent.return_stopped_response( self.early_stopping_method, intermediate_steps, **inputs ) - return await self._areturn(output, intermediate_steps) + return await self._areturn( + output, intermediate_steps, run_manager=run_manager + ) def _get_tool_return( self, next_step_output: Tuple[AgentAction, str]