From c969a779c94567179164ed2fea3decd18e678bf6 Mon Sep 17 00:00:00 2001 From: Zach Jones Date: Tue, 4 Apr 2023 00:50:51 -0400 Subject: [PATCH] Fix: Pass along kwargs when creating a sql agent (#2350) Currently, `agent_toolkits.sql.create_sql_agent()` passes kwargs to the `ZeroShotAgent` that it creates but not to `AgentExecutor` that it also creates. This prevents the caller from providing some useful arguments like `max_iterations` and `early_stopping_method` This PR changes `create_sql_agent` so that it passes kwargs to both constructors. --------- Co-authored-by: Zachary Jones --- langchain/agents/agent_toolkits/sql/base.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/langchain/agents/agent_toolkits/sql/base.py b/langchain/agents/agent_toolkits/sql/base.py index bf358cab..b259f5af 100644 --- a/langchain/agents/agent_toolkits/sql/base.py +++ b/langchain/agents/agent_toolkits/sql/base.py @@ -20,6 +20,8 @@ def create_sql_agent( format_instructions: str = FORMAT_INSTRUCTIONS, input_variables: Optional[List[str]] = None, top_k: int = 10, + max_iterations: Optional[int] = 15, + early_stopping_method: str = "force", verbose: bool = False, **kwargs: Any, ) -> AgentExecutor: @@ -41,5 +43,9 @@ def create_sql_agent( tool_names = [tool.name for tool in tools] agent = ZeroShotAgent(llm_chain=llm_chain, allowed_tools=tool_names, **kwargs) return AgentExecutor.from_agent_and_tools( - agent=agent, tools=toolkit.get_tools(), verbose=verbose + agent=agent, + tools=toolkit.get_tools(), + verbose=verbose, + max_iterations=max_iterations, + early_stopping_method=early_stopping_method, )