
    ih              
          d Z ddlmZ ddl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mZmZmZmZmZ dd	lmZ dd
l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'm(Z( ddl)m*Z*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6m7Z7 ddl8m9Z9m:Z: ddl;m<Z< ddl=m>Z>m?Z? er.ddl@mAZA ddlBmCZCmDZDmEZE ddlFmGZG ddlHmIZI ddlJmKZK dd lLmMZM dd!lNmOZO g d"ZPd#d$d%d&d'd(d)d)d)d*	ZQ eeReQ+      ZSd,eTd-efd.ZUg d/ZVy0)1a  
**Agent** is a class that uses an LLM to choose a sequence of actions to take.

In Chains, a sequence of actions is hardcoded. In Agents,
a language model is used as a reasoning engine to determine which actions
to take and in which order.

Agents select and use **Tools** and **Toolkits** for actions.

**Class hierarchy:**

.. code-block::

    BaseSingleActionAgent --> LLMSingleActionAgent
                              OpenAIFunctionsAgent
                              XMLAgent
                              Agent --> <name>Agent  # Examples: ZeroShotAgent, ChatAgent


    BaseMultiActionAgent  --> OpenAIMultiFunctionsAgent


**Main helpers:**

.. code-block::

    AgentType, AgentExecutor, AgentOutputParser, AgentExecutorIterator,
    AgentAction, AgentFinish

    )Path)TYPE_CHECKINGAny)as_import_path)Tool)tool)create_importer)AgentAgentExecutorAgentOutputParserBaseMultiActionAgentBaseSingleActionAgentLLMSingleActionAgent)AgentExecutorIterator)create_vectorstore_agentcreate_vectorstore_router_agent)	AgentType)ConversationalAgent)ConversationalChatAgent)initialize_agent)create_json_chat_agent)
load_agent)	MRKLChainZeroShotAgent)OpenAIFunctionsAgentcreate_openai_functions_agent)OpenAIMultiFunctionsAgent)create_openai_tools_agent)create_react_agent)
ReActChainReActTextWorldAgent)SelfAskWithSearchChain!create_self_ask_with_search_agent)StructuredChatAgentcreate_structured_chat_agent)create_tool_calling_agent)XMLAgentcreate_xml_agent)create_json_agent)get_all_tool_namesload_huggingface_tool
load_tools)create_openapi_agent)create_pbi_agent)create_pbi_chat_agent)create_spark_sql_agent)create_sql_agent)create_csv_agentcreate_pandas_dataframe_agentcreate_spark_dataframe_agentcreate_xorbits_agentz,langchain_community.agent_toolkits.json.basez/langchain_community.agent_toolkits.openapi.basez/langchain_community.agent_toolkits.powerbi.basez4langchain_community.agent_toolkits.powerbi.chat_basez1langchain_community.agent_toolkits.spark_sql.basez+langchain_community.agent_toolkits.sql.basez-langchain_community.agent_toolkits.load_tools)	r)   r-   r.   r/   r0   r1   r,   r+   r*   )deprecated_lookupsnamereturnc                     | t         v r_t        t              j                  d   }t	        t        t              j
                  | |      }d|z   }d|z   }t        |  d| d| d      t        |       S )zGet attr name.   )suffixrelative_toz
langchain.zlangchain_experimental.z has been moved to langchain experimental. See https://github.com/langchain-ai/langchain/discussions/11680for more information.
Please update your import statement from: `z` to `z`.)DEPRECATED_CODEr   __file__parentsr   parentImportError_import_attribute)r7   HERErelative_pathold_pathnew_paths        W/var/www/html/dev/engine/venv/lib/python3.12/site-packages/langchain/agents/__init__.py__getattr__rH   w   s    H~%%a(&N!!$D
  -/,}<f : ;C6(SUW
 	
 T""    )*r
   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r$   r   r)   r-   r.   r/   r0   r1   r   r   r*   r   r   r+   r,   r'   r   r(   r   r   r#   r   r%   r&   r   r   N)W__doc__pathlibr   typingr   r   langchain_core._api.pathr   langchain_core.toolsr   langchain_core.tools.convertr   langchain._apir	   langchain.agents.agentr
   r   r   r   r   r   langchain.agents.agent_iteratorr   0langchain.agents.agent_toolkits.vectorstore.baser   r   langchain.agents.agent_typesr   $langchain.agents.conversational.baser   )langchain.agents.conversational_chat.baser   langchain.agents.initializer   langchain.agents.json_chat.baser   langchain.agents.loadingr   langchain.agents.mrkl.baser   r   ,langchain.agents.openai_functions_agent.baser   r   2langchain.agents.openai_functions_multi_agent.baser   "langchain.agents.openai_tools.baser   langchain.agents.react.agentr   langchain.agents.react.baser    r!   *langchain.agents.self_ask_with_search.baser"   r#   %langchain.agents.structured_chat.baser$   r%   (langchain.agents.tool_calling_agent.baser&   langchain.agents.xml.baser'   r(   ,langchain_community.agent_toolkits.json.baser)   -langchain_community.agent_toolkits.load_toolsr*   r+   r,   /langchain_community.agent_toolkits.openapi.baser-   /langchain_community.agent_toolkits.powerbi.baser.   4langchain_community.agent_toolkits.powerbi.chat_baser/   1langchain_community.agent_toolkits.spark_sql.baser0   +langchain_community.agent_toolkits.sql.baser1   r=   DEPRECATED_LOOKUP__package__rB   strrH   __all__ rI   rG   <module>rp      s   >  % 3 % - *  B 3 D M 8 B / ? Y H ; G O @N 
 UP YL HMISQEALI
  $KDUV #c #c #&+rI   