|
|
|
@ -1229,11 +1229,14 @@ class AgentExecutor(Chain):
|
|
|
|
|
"""Check if the tool is a returning tool."""
|
|
|
|
|
agent_action, observation = next_step_output
|
|
|
|
|
name_to_tool_map = {tool.name: tool for tool in self.tools}
|
|
|
|
|
return_value_key = "output"
|
|
|
|
|
if len(self.agent.return_values) > 0:
|
|
|
|
|
return_value_key = self.agent.return_values[0]
|
|
|
|
|
# Invalid tools won't be in the map, so we return False.
|
|
|
|
|
if agent_action.tool in name_to_tool_map:
|
|
|
|
|
if name_to_tool_map[agent_action.tool].return_direct:
|
|
|
|
|
return AgentFinish(
|
|
|
|
|
{self.agent.return_values[0]: observation},
|
|
|
|
|
{return_value_key: observation},
|
|
|
|
|
"",
|
|
|
|
|
)
|
|
|
|
|
return None
|
|
|
|
|