[docs]defcreate_python_agent(llm:BaseLanguageModel,tool:PythonREPLTool,agent_type:AgentType=AgentType.ZERO_SHOT_REACT_DESCRIPTION,callback_manager:Optional[BaseCallbackManager]=None,verbose:bool=False,prefix:str=PREFIX,agent_executor_kwargs:Optional[Dict[str,Any]]=None,**kwargs:Dict[str,Any],)->AgentExecutor:"""Construct a python agent from an LLM and tool."""tools=[tool]agent:BaseSingleActionAgentifagent_type==AgentType.ZERO_SHOT_REACT_DESCRIPTION:prompt=ZeroShotAgent.create_prompt(tools,prefix=prefix)llm_chain=LLMChain(llm=llm,prompt=prompt,callback_manager=callback_manager,)tool_names=[tool.namefortoolintools]agent=ZeroShotAgent(llm_chain=llm_chain,allowed_tools=tool_names,**kwargs)# type: ignore[arg-type]elifagent_type==AgentType.OPENAI_FUNCTIONS:system_message=SystemMessage(content=prefix)_prompt=OpenAIFunctionsAgent.create_prompt(system_message=system_message)agent=OpenAIFunctionsAgent(# type: ignore[call-arg]llm=llm,prompt=_prompt,tools=tools,callback_manager=callback_manager,**kwargs,# type: ignore[arg-type])else:raiseValueError(f"Agent type {agent_type} not supported at the moment.")returnAgentExecutor.from_agent_and_tools(agent=agent,tools=tools,callback_manager=callback_manager,verbose=verbose,**(agent_executor_kwargsor{}),)