
    9|h                        d Z ddlmZmZmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZ  eded      	 	 	 	 ddddee   de
dee   dee   dee   dee   deee      dedefd       Zy)zLoad agent.    )AnyOptionalSequence)
deprecated)BaseCallbackManager)BaseLanguageModel)BaseTool)AGENT_DEPRECATION_WARNING)AgentExecutor)	AgentType)AGENT_TO_CLASS
load_agentz0.1.0z1.0)messageremovalN)tagstoolsllmagentcallback_manager
agent_pathagent_kwargsr   kwargsreturnc                ,   |rt        |      ng }||t        j                  }||t        d      ||t        vr$t        d| dt	        j
                          d      |j                  t        |t              r|j                  n|       t        |   }	|xs i } |	j                  || fd|i|}
n9|,t        ||| |      }
	 |j                  |
j                         nt        d      t        j                  d	|
| ||d|S # t        $ r Y %w xY w)
a\  Load an agent executor given tools and LLM.

    Args:
        tools: List of tools this agent has access to.
        llm: Language model to use as the agent.
        agent: Agent type to use. If None and agent_path is also None, will default
            to AgentType.ZERO_SHOT_REACT_DESCRIPTION. Defaults to None.
        callback_manager: CallbackManager to use. Global callback manager is used if
            not provided. Defaults to None.
        agent_path: Path to serialized agent to use. If None and agent is also None,
            will default to AgentType.ZERO_SHOT_REACT_DESCRIPTION. Defaults to None.
        agent_kwargs: Additional keyword arguments to pass to the underlying agent.
            Defaults to None.
        tags: Tags to apply to the traced runs. Defaults to None.
        kwargs: Additional keyword arguments passed to the agent executor.

    Returns:
        An agent executor.

    Raises:
        ValueError: If both `agent` and `agent_path` are specified.
        ValueError: If `agent` is not a valid agent type.
        ValueError: If both `agent` and `agent_path` are None.
    zLBoth `agent` and `agent_path` are specified, but at most only one should be.zGot unknown agent type: z. Valid types are: .r   )r   r   r   zISomehow both `agent` and `agent_path` are None, this should never happen.)r   r   r   r    )listr   ZERO_SHOT_REACT_DESCRIPTION
ValueErrorr   keysappend
isinstancevaluefrom_llm_and_toolsr   _agent_typeNotImplementedErrorr   from_agent_and_tools)r   r   r   r   r   r   r   r   tags_	agent_cls	agent_objs              Z/var/www/html/test/engine/venv/lib/python3.12/site-packages/langchain/agents/initialize.pyinitialize_agentr,      sd   P DJBE}+55Z3.
 	
 &*5' 2$$2$7$7$9#:!=  	Jui$@U[[eL"5)	#)r0I00
)9
=I
	 
	Cu?O
		LL../ W
 	
 -- )	
   # 		s   D 	DD)NNNN)__doc__typingr   r   r   langchain_core._apir   langchain_core.callbacksr   langchain_core.language_modelsr   langchain_core.toolsr	   langchain._api.deprecationr
   langchain.agents.agentr   langchain.agents.agent_typesr   langchain.agents.loadingr   r   strdictr,   r       r+   <module>r:      s     * * * 8 < ) @ 0 2 ? % "&6: $#'J %)JHJ	J IJ 23	J
 J 4.J 8C=
!J J J
Jr9   