§
    ™Štjµò  ã                  ó°  — d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	m
Z
 ddlmZmZmZmZ ddlmZ ddlmZmZ ddlZddlmZ dd	lmZmZ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& ddl'm(Z( ddl)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z<m=Z=m>Z> ddl?m@Z@mAZA ddlBmCZC ddlDmEZE ddlFmGZG ddlHmIZI ddlJmKZK ddlLmMZM ddlNmOZO  ejP        eQ¦  «        ZR G d„ d e<¦  «        ZS G d!„ d"e<¦  «        ZT G d#„ d$e*eez           ¦  «        ZU G d%„ d&e*eVe         ez           ¦  «        ZW G d'„ d(eS¦  «        ZX G d)„ d*eT¦  «        ZY ed+eCd,¬-¦  «         G d.„ d/eS¦  «        ¦   «         ZZ ed+eCd,¬-¦  «         G d0„ d1eS¦  «        ¦   «         Z[ G d2„ d3e8¦  «        Z\eVeez  ez           Z]eXeYz  Z^ G d4„ d5eK¦  «        Z_dS )6zEChain that takes in an input and produces an action and action input.é    )ÚannotationsN)Úabstractmethod)ÚAsyncIteratorÚCallableÚIteratorÚSequence)ÚPath)ÚAnyÚcast)Ú
deprecated)ÚAgentActionÚAgentFinishÚ	AgentStep)ÚAsyncCallbackManagerForChainRunÚAsyncCallbackManagerForToolRunÚBaseCallbackManagerÚCallbackManagerForChainRunÚCallbackManagerForToolRunÚ	Callbacks)ÚOutputParserException)ÚBaseLanguageModel)ÚBaseMessage)ÚBaseOutputParser)ÚBasePromptTemplate)ÚFewShotPromptTemplate)ÚPromptTemplate)ÚRunnableÚRunnableConfigÚensure_config)ÚAddableDict)ÚBaseTool)Úget_color_mapping)Ú	BaseModelÚ
ConfigDictÚmodel_validator)ÚSelfÚoverride)ÚAGENT_DEPRECATION_WARNING)ÚAgentExecutorIterator)Ú	AgentType)ÚInvalidTool)ÚChain)ÚLLMChain)Úasyncio_timeoutc                  ó   ‡ — e Zd ZdZed&d„¦   «         Zd'd„Ze	 d(d)d„¦   «         Ze	 d(d)d„¦   «         Z	eed&d„¦   «         ¦   «         Z
d*d„Ze	 d(d+d„¦   «         Zed,d„¦   «         Zed-ˆ fd „¦   «         Zd.d$„Zd/d%„Zˆ xZS )0ÚBaseSingleActionAgentzBase Single Action Agent class.Úreturnú	list[str]c                ó   — dgS ©úReturn values of the agent.Úoutput© ©Úselfs    ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/langchain_classic/agents/agent.pyÚreturn_valuesz#BaseSingleActionAgent.return_values:   ó   € ð ˆzÐó    úlist[str] | Nonec                ó   — dS )úGet allowed tools.Nr7   r8   s    r:   Úget_allowed_toolsz'BaseSingleActionAgent.get_allowed_tools?   s   € àˆtr=   NÚintermediate_stepsúlist[tuple[AgentAction, str]]Ú	callbacksr   Úkwargsr
   úAgentAction | AgentFinishc                ó   — dS )á0  Given input, decided what to do.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with observations.
            callbacks: Callbacks to run.
            **kwargs: User inputs.

        Returns:
            Action specifying what tool to use.
        Nr7   ©r9   rB   rD   rE   s       r:   ÚplanzBaseSingleActionAgent.planC   ó   € € € r=   c              ‹  ó
   K  — dS )á6  Async given input, decided what to do.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with observations.
            callbacks: Callbacks to run.
            **kwargs: User inputs.

        Returns:
            Action specifying what tool to use.
        Nr7   rI   s       r:   ÚaplanzBaseSingleActionAgent.aplanV   ó
   è è € € € r=   c                ó   — dS ©úReturn the input keys.Nr7   r8   s    r:   Ú
input_keysz BaseSingleActionAgent.input_keysi   rK   r=   Úearly_stopping_methodÚstrÚ_r   c                ó\   — |dk    rt          ddid¦  «        S d|› d�}t          |¦  «        ‚)á’  Return response when agent has been stopped due to max iterations.

        Args:
            early_stopping_method: Method to use for early stopping.
            intermediate_steps: Steps the LLM has taken to date,
                along with observations.

        Returns:
            Agent finish object.

        Raises:
            ValueError: If `early_stopping_method` is not supported.
        Úforcer6   ú3Agent stopped due to iteration limit or time limit.Ú ú'Got unsupported early_stopping_method `ú`©r   Ú
ValueError©r9   rT   rB   rV   Úmsgs        r:   Úreturn_stopped_responsez-BaseSingleActionAgent.return_stopped_responsen   sM   € ð& ! GÒ+Ð+åØÐPÐQØñô ð ð QÐ8MÐPÐPÐPˆÝ˜‰oŒoÐr=   Úllmr   ÚtoolsúSequence[BaseTool]Úcallback_managerúBaseCallbackManager | Nonec                ó   — t           ‚)a  Construct an agent from an LLM and tools.

        Args:
            llm: Language model to use.
            tools: Tools to use.
            callback_manager: Callback manager to use.
            kwargs: Additional arguments.

        Returns:
            Agent object.
        ©ÚNotImplementedError)Úclsrc   rd   rf   rE   s        r:   Úfrom_llm_and_toolsz(BaseSingleActionAgent.from_llm_and_toolsŠ   s
   € õ& "Ð!r=   c                ó   — t           ‚©z#Return Identifier of an agent type.ri   r8   s    r:   Ú_agent_typez!BaseSingleActionAgent._agent_typeŸ   ó
   € õ "Ð!r=   úbuiltins.dictc                óæ   •— t          ¦   «                              ¦   «         }	 | j        }n# t          $ r d}Y nw xY wt	          |t
          ¦  «        rt          |j        ¦  «        |d<   n|�||d<   |S )zuReturn dictionary representation of agent.

        Returns:
            Dictionary representation of agent.
        NÚ_type)ÚsuperÚ
model_dumpro   rj   Ú
isinstancer*   rU   Úvalue)r9   rE   Ú_dictrs   Ú	__class__s       €r:   ÚdictzBaseSingleActionAgent.dict¤   sˆ   ø€ õ ‘”×"Ò"Ñ$Ô$ˆð	ØÔ$ˆEˆEøÝ"ð 	ð 	ð 	ØˆEˆEˆEð	øøøå�e�YÑ'Ô'ð 	#Ý  ¤Ñ-Ô-ˆE�'‰NˆNØÐØ"ˆE�'‰NØˆs   £+ «:¹:Ú	file_pathú
Path | strÚNonec                ór  — t          |t          ¦  «        rt          |¦  «        n|}|j        }|                     dd¬¦  «         |                      ¦   «         }d|vrd| › d�}t          |¦  «        ‚|j        dk    rG|                     d¦  «        5 }t          j
        ||d¬	¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S |j                             d¦  «        rG|                     d¦  «        5 }t          j
        ||d¬¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S |› d�}t          |¦  «        ‚)zðSave the agent.

        Args:
            file_path: Path to file to save the agent to.

        Example:
        ```python
        # If working with agent executor
        agent.agent.save(file_path="path/agent.yaml")
        ```
        T©ÚparentsÚexist_okrs   úAgent z does not support savingú.jsonÚwé   ©ÚindentN©z.yamlz.ymlF©Údefault_flow_styleú must be json or yaml)rv   rU   r	   ÚparentÚmkdirrz   rj   ÚsuffixÚopenÚjsonÚdumpÚendswithÚyamlr_   )r9   r{   Ú	save_pathÚdirectory_pathÚ
agent_dictra   Úfs          r:   ÚsavezBaseSingleActionAgent.save¶   sæ  € õ (2°)½SÑ'AÔ'AÐP•D˜‘O”O�OÀyˆ	à"Ô)ˆØ×Ò T°DÐÑ9Ô9Ð9ð —Y’Y‘[”[ˆ
Ø˜*Ð$Ð$Ø9˜4Ð9Ð9Ð9ˆCÝ% cÑ*Ô*Ð*àÔ˜wÒ&Ð&Ø—’ Ñ$Ô$ð 3¨Ý”	˜* a°Ð2Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3àÔ×&Ò&Ð'8Ñ9Ô9ð 	"Ø—’ Ñ$Ô$ð C¨Ý”	˜* a¸EÐBÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cð Ð5Ð5Ð5ˆCÝ˜S‘/”/Ð!ó$   ÂB7Â7B;Â>B;Ã3DÄDÄDc                ó   — i S ©ú#Return logging kwargs for tool run.r7   r8   s    r:   Útool_run_logging_kwargsz-BaseSingleActionAgent.tool_run_logging_kwargsØ   ó   € àˆ	r=   ©r1   r2   ©r1   r>   ©N©rB   rC   rD   r   rE   r
   r1   rF   ©rT   rU   rB   rC   rV   r
   r1   r   )
rc   r   rd   re   rf   rg   rE   r
   r1   r0   ©r1   rU   ©rE   r
   r1   rq   ©r{   r|   r1   r}   ©r1   rq   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Úpropertyr;   rA   r   rJ   rN   rS   rb   Úclassmethodrl   ro   r'   rz   r˜   r�   Ú__classcell__©ry   s   @r:   r0   r0   7   s†  ø€ € € € € Ø)Ð)àðð ð ñ „Xððð ð ð ð ð  $ðð ð ð ñ „^ðð$ ð  $ðð ð ð ñ „^ðð$ Øð%ð %ð %ñ „^ñ „Xð%ðð ð ð ð8 ð
 8<ð	"ð "ð "ð "ñ „[ð"ð( ð"ð "ð "ñ „Xð"ð ðð ð ð ð ñ „Xðð" "ð  "ð  "ð  "ðDð ð ð ð ð ð ð r=   r0   c                  óä   ‡ — e Zd ZdZedd„¦   «         Zd d„Ze	 d!d"d„¦   «         Ze	 d!d"d„¦   «         Z	eedd„¦   «         ¦   «         Z
d#d„Zed$d„¦   «         Zed%ˆ fd„¦   «         Zd&d„Zd'd„Zˆ xZS )(ÚBaseMultiActionAgentzBase Multi Action Agent class.r1   r2   c                ó   — dgS r4   r7   r8   s    r:   r;   z"BaseMultiActionAgent.return_valuesà   r<   r=   r>   c                ó   — dS )zHGet allowed tools.

        Returns:
            Allowed tools.
        Nr7   r8   s    r:   rA   z&BaseMultiActionAgent.get_allowed_toolså   s	   € ð ˆtr=   NrB   rC   rD   r   rE   r
   úlist[AgentAction] | AgentFinishc                ó   — dS )a5  Given input, decided what to do.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with the observations.
            callbacks: Callbacks to run.
            **kwargs: User inputs.

        Returns:
            Actions specifying what tool to use.
        Nr7   rI   s       r:   rJ   zBaseMultiActionAgent.planí   rK   r=   c              ‹  ó
   K  — dS )a;  Async given input, decided what to do.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with the observations.
            callbacks: Callbacks to run.
            **kwargs: User inputs.

        Returns:
            Actions specifying what tool to use.
        Nr7   rI   s       r:   rN   zBaseMultiActionAgent.aplan   rO   r=   c                ó   — dS rQ   r7   r8   s    r:   rS   zBaseMultiActionAgent.input_keys  rK   r=   rT   rU   rV   r   c                ó\   — |dk    rt          ddid¦  «        S d|› d�}t          |¦  «        ‚)rX   rY   r6   z$Agent stopped due to max iterations.r[   r\   r]   r^   r`   s        r:   rb   z,BaseMultiActionAgent.return_stopped_response  sC   € ð& ! GÒ+Ð+å Ð*PÐQÐSUÑVÔVÐVØPÐ8MÐPÐPÐPˆÝ˜‰oŒoÐr=   c                ó   — t           ‚rn   ri   r8   s    r:   ro   z BaseMultiActionAgent._agent_type1  rp   r=   rq   c                óØ   •— t          ¦   «                              ¦   «         }t          j        t          ¦  «        5  t          | j        ¦  «        |d<   ddd¦  «         n# 1 swxY w Y   |S )ú*Return dictionary representation of agent.rs   N)rt   ru   Ú
contextlibÚsuppressrj   rU   ro   ©r9   rE   rx   ry   s      €r:   rz   zBaseMultiActionAgent.dict6  sš   ø€ õ ‘”×"Ò"Ñ$Ô$ˆÝÔ Õ!4Ñ5Ô5ð 	3ð 	3Ý  Ô!1Ñ2Ô2ˆE�'‰Nð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3àˆs   »AÁA#Á&A#r{   r|   r}   c                ór  — t          |t          ¦  «        rt          |¦  «        n|}|                      ¦   «         }d|vrd| › d�}t	          |¦  «        ‚|j        }|                     dd¬¦  «         |j        dk    rG|                     d¦  «        5 }t          j
        ||d¬	¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S |j                             d¦  «        rG|                     d¦  «        5 }t          j
        ||d¬¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S |› d�}t          |¦  «        ‚)a€  Save the agent.

        Args:
            file_path: Path to file to save the agent to.

        Raises:
            NotImplementedError: If agent does not support saving.
            ValueError: If `file_path` is not json or yaml.

        Example:
        ```python
        # If working with agent executor
        agent.agent.save(file_path="path/agent.yaml")
        ```
        rs   r‚   z does not support saving.Tr   rƒ   r„   r…   r†   Nrˆ   Fr‰   r‹   )rv   rU   r	   rz   rj   rŒ   r�   rŽ   r�   r�   r‘   r’   r“   r_   )r9   r{   r”   r–   ra   r•   r—   s          r:   r˜   zBaseMultiActionAgent.save>  sæ  € õ" (2°)½SÑ'AÔ'AÐP•D˜‘O”O�OÀyˆ	ð —Y’Y‘[”[ˆ
Ø˜*Ð$Ð$Ø:˜4Ð:Ð:Ð:ˆCÝ% cÑ*Ô*Ð*à"Ô)ˆØ×Ò T°DÐÑ9Ô9Ð9àÔ˜wÒ&Ð&Ø—’ Ñ$Ô$ð 3¨Ý”	˜* a°Ð2Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3àÔ×&Ò&Ð'8Ñ9Ô9ð 	"Ø—’ Ñ$Ô$ð C¨Ý”	˜* a¸EÐBÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cð Ð5Ð5Ð5ˆCÝ˜S‘/”/Ð!r™   c                ó   — i S r›   r7   r8   s    r:   r�   z,BaseMultiActionAgent.tool_run_logging_kwargsd  rž   r=   rŸ   r    r¡   ©rB   rC   rD   r   rE   r
   r1   r´   r£   r¤   r¥   r¦   r§   )r¨   r©   rª   r«   r¬   r;   rA   r   rJ   rN   rS   rb   ro   r'   rz   r˜   r�   r®   r¯   s   @r:   r±   r±   Ý   s\  ø€ € € € € Ø(Ð(àðð ð ñ „Xððð ð ð ð ð  $ðð ð ð ñ „^ðð$ ð  $ðð ð ð ñ „^ðð$ Øð%ð %ð %ñ „^ñ „Xð%ðð ð ð ð2 ð"ð "ð "ñ „Xð"ð ðð ð ð ð ñ „Xðð$"ð $"ð $"ð $"ðLð ð ð ð ð ð ð r=   r±   c                  ó*   — e Zd ZdZedd„¦   «         ZdS )	ÚAgentOutputParserz=Base class for parsing agent output into agent action/finish.ÚtextrU   r1   rF   c                ó   — dS )z$Parse text into agent action/finish.Nr7   ©r9   rÄ   s     r:   ÚparsezAgentOutputParser.parsel  rK   r=   N)rÄ   rU   r1   rF   ©r¨   r©   rª   r«   r   rÇ   r7   r=   r:   rÃ   rÃ   i  s8   € € € € € ØGÐGàð3ð 3ð 3ñ „^ð3ð 3ð 3r=   rÃ   c                  ó*   — e Zd ZdZedd„¦   «         ZdS )	ÚMultiActionAgentOutputParserz‚Base class for parsing agent output into agent actions/finish.

    This is used for agents that can return multiple actions.
    rÄ   rU   r1   r´   c                ó   — dS )z£Parse text into agent actions/finish.

        Args:
            text: Text to parse.

        Returns:
            List of agent actions or agent finish.
        Nr7   rÆ   s     r:   rÇ   z"MultiActionAgentOutputParser.parsey  rK   r=   N)rÄ   rU   r1   r´   rÈ   r7   r=   r:   rÊ   rÊ   q  s>   € € € € € ðð ð
 ðð ð ñ „^ðð ð r=   rÊ   c                  ó¬   — e Zd ZU dZded<   	 g Zded<   g Zded<   dZded	<   	  ed¬
¦  «        Z	e
dd„¦   «         Ze
dd„¦   «         Z	 ddd„Z	 ddd„ZdS )ÚRunnableAgentúAgent powered by Runnables.z)Runnable[dict, AgentAction | AgentFinish]Úrunnabler2   Úinput_keys_argÚreturn_keys_argTÚboolÚstream_runnable©Úarbitrary_types_allowedr1   c                ó   — | j         S ©r5   ©rÑ   r8   s    r:   r;   zRunnableAgent.return_values™  ó   € ð Ô#Ð#r=   c                ó   — | j         S ©rR   ©rÐ   r8   s    r:   rS   zRunnableAgent.input_keysž  s   € ð Ô"Ð"r=   NrB   rC   rD   r   rE   r
   rF   c                ó¼   — i |¥d|i¥}d}| j         r,| j                             |d|i¬¦  «        D ]}|€|}Œ||z  }Œn| j                             |d|i¬¦  «        }|S ©aP  Based on past history and current inputs, decide what to do.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with the observations.
            callbacks: Callbacks to run.
            **kwargs: User inputs.

        Returns:
            Action specifying what tool to use.
        rB   NrD   ©Úconfig©rÓ   rÏ   ÚstreamÚinvoke©r9   rB   rD   rE   ÚinputsÚfinal_outputÚchunks          r:   rJ   zRunnableAgent.plan£  óœ   € ð" F�FÐEÐ0Ð2DÐEÐEˆØ ˆØÔð 	Yð œ×-Ò-¨f¸kÈ9Ð=UÐ-ÑVÔVð *ð *�ØÐ'Ø#(�L�Là  EÑ)�L�Lð	*ð  œ=×/Ò/°ÀÈYÐ?WÐ/ÑXÔXˆLàÐr=   c              ‹  óØ   K  — i |¥d|i¥}d}| j         r2| j                             |d|i¬¦  «        2 3 d{V —†}|€|}Œ||z  }Œ6 n$| j                             |d|i¬¦  «        ƒ d{V —†}|S ©aR  Async based on past history and current inputs, decide what to do.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with observations.
            callbacks: Callbacks to run.
            **kwargs: User inputs.

        Returns:
            Action specifying what tool to use.
        rB   NrD   rß   ©rÓ   rÏ   ÚastreamÚainvokerä   s          r:   rN   zRunnableAgent.aplanÇ  sï   è è € ð" F�FÐEÐ0Ð2DÐEÐEˆØ ˆØÔð 	ð  $œ}×4Ò4ØØ# YÐ/ð  5ñ  ô  ð *ð *ð *ð *ð *ð *ð *�eð  Ð'Ø#(�L�Là  EÑ)�L�Lð ð  ð "&¤×!6Ò!6ØØ# YÐ/ð "7ñ "ô "ð ð ð ð ð ð ˆLð Ðó   ²ArŸ   r¡   r¢   ©r¨   r©   rª   r«   Ú__annotations__rÐ   rÑ   rÓ   r$   Úmodel_configr¬   r;   rS   rJ   rN   r7   r=   r:   rÍ   rÍ   …  sû   € € € € € € Ø%Ð%à7Ð7Ð7Ñ7Ø/Ø "€NÐ"Ð"Ð"Ñ"Ø!#€OÐ#Ð#Ð#Ñ#Ø €OÐ Ð Ð Ñ ðð �:Ø $ðñ ô €Lð ð$ð $ð $ñ „Xð$ð ð#ð #ð #ñ „Xð#ð  $ð"ð "ð "ð "ð "ðN  $ð'ð 'ð 'ð 'ð 'ð 'ð 'r=   rÍ   c                  ó¬   — e Zd ZU dZded<   	 g Zded<   g Zded<   dZded	<   	  ed¬
¦  «        Z	e
dd„¦   «         Ze
dd„¦   «         Z	 ddd„Z	 ddd„ZdS )ÚRunnableMultiActionAgentrÎ   z/Runnable[dict, list[AgentAction] | AgentFinish]rÏ   r2   rÐ   rÑ   TrÒ   rÓ   rÔ   r1   c                ó   — | j         S r×   rØ   r8   s    r:   r;   z&RunnableMultiActionAgent.return_values  rÙ   r=   c                ó   — | j         S )úQReturn the input keys.

        Returns:
            List of input keys.
        rÜ   r8   s    r:   rS   z#RunnableMultiActionAgent.input_keys
  s   € ð Ô"Ð"r=   NrB   rC   rD   r   rE   r
   r´   c                ó¼   — i |¥d|i¥}d}| j         r,| j                             |d|i¬¦  «        D ]}|€|}Œ||z  }Œn| j                             |d|i¬¦  «        }|S rÞ   rá   rä   s          r:   rJ   zRunnableMultiActionAgent.plan  rè   r=   c              ‹  óØ   K  — i |¥d|i¥}d}| j         r2| j                             |d|i¬¦  «        2 3 d{V —†}|€|}Œ||z  }Œ6 n$| j                             |d|i¬¦  «        ƒ d{V —†}|S rê   rë   rä   s          r:   rN   zRunnableMultiActionAgent.aplan7  sï   è è € ð" F�FÐEÐ0Ð2DÐEÐEˆØ ˆØÔð 	ð  $œ}×4Ò4ØØ# YÐ/ð  5ñ  ô  ð *ð *ð *ð *ð *ð *ð *�eð  Ð'Ø#(�L�Là  EÑ)�L�Lð ð  ð "&¤×!6Ò!6ØØ# YÐ/ð "7ñ "ô "ð ð ð ð ð ð ˆLð
 Ðrî   rŸ   r¡   rÁ   rï   r7   r=   r:   ró   ró   ñ  sû   € € € € € € Ø%Ð%à=Ð=Ð=Ñ=Ø0Ø "€NÐ"Ð"Ð"Ñ"Ø!#€OÐ#Ð#Ð#Ñ#Ø €OÐ Ð Ð Ñ ðð �:Ø $ðñ ô €Lð ð$ð $ð $ñ „Xð$ð ð#ð #ð #ñ „Xð#ð  $ð"ð "ð "ð "ð "ðN  $ð(ð (ð (ð (ð (ð (ð (r=   ró   z0.1.0z2.0.0)ÚmessageÚremovalc                  ó’   ‡ — e Zd ZU dZded<   	 ded<   	 ded<   	 edd	„¦   «         Zedˆ fd„¦   «         Z	 ddd„Z		 ddd„Z
dd„Zˆ xZS )ÚLLMSingleActionAgentz$Base class for single action agents.r-   Ú	llm_chainrÃ   Úoutput_parserr2   Ústopr1   c                óV   — t          t          | j        j        ¦  «        dhz
  ¦  «        S )rö   rB   ©ÚlistÚsetrý   rS   r8   s    r:   rS   zLLMSingleActionAgent.input_keysq  s(   € õ •C˜œÔ1Ñ2Ô2Ð6JÐ5KÑKÑLÔLÐLr=   rE   r
   rq   c                óN   •— t          ¦   «                              ¦   «         }|d= |S ©r»   rþ   ©rt   rz   r¾   s      €r:   rz   zLLMSingleActionAgent.dictz  ó#   ø€ õ ‘”—’‘”ˆØ�/Ð"Øˆr=   NrB   rC   rD   r   rF   c                ól   —  | j         j        d|| j        |dœ|¤Ž}| j                             |¦  «        S )a4  Given input, decided what to do.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with the observations.
            callbacks: Callbacks to run.
            **kwargs: User inputs.

        Returns:
            Action specifying what tool to use.
        ©rB   rÿ   rD   r7   )rý   Úrunrÿ   rþ   rÇ   ©r9   rB   rD   rE   r6   s        r:   rJ   zLLMSingleActionAgent.plan�  sR   € ð" $�”Ô#ð 
Ø1Ø”Øð
ð 
ð ð	
ð 
ˆð Ô!×'Ò'¨Ñ/Ô/Ð/r=   c              ‹  ó|   K  —  | j         j        d|| j        |dœ|¤Žƒ d{V —†}| j                             |¦  «        S )rM   r	  Nr7   )rý   Úarunrÿ   rþ   rÇ   r  s        r:   rN   zLLMSingleActionAgent.aplanš  st   è è € ð" +�t”~Ô*ð 
Ø1Ø”Øð
ð 
ð ð	
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð Ô!×'Ò'¨Ñ/Ô/Ð/r=   c                óV   — dt          | j        ¦  «        dk    rdn| j        d         dœS )rœ   r[   r   ©Ú
llm_prefixÚobservation_prefix)Úlenrÿ   r8   s    r:   r�   z,LLMSingleActionAgent.tool_run_logging_kwargs³  s5   € ð Ý(+¨D¬I©¬¸!Ò(;Ð(; " "ÀÄÈ1Äð
ð 
ð 	
r=   rŸ   r¥   r¡   r¢   r§   )r¨   r©   rª   r«   rð   r¬   rS   r'   rz   rJ   rN   r�   r®   r¯   s   @r:   rü   rü   b  sï   ø€ € € € € € ð /Ð.àÐÐÑØ$Ø$Ð$Ð$Ñ$Ø)Ø€O€O�OØ%àðMð Mð Mñ „XðMð ðð ð ð ð ñ „Xðð  $ð0ð 0ð 0ð 0ð 0ð8  $ð0ð 0ð 0ð 0ð 0ð2
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r=   rü   c                  óè  ‡ — e Zd ZU dZded<   	 ded<   	 dZded<   	 ed6ˆ fd„¦   «         Zd7d„Ze	d8d„¦   «         Z
e	d8d„¦   «         Zd9d„Z	 d:d;d„Z	 d:d;d„Zd<d„Ze	d8d„¦   «         Z ed¬¦  «        d=d!„¦   «         Ze	ed>d#„¦   «         ¦   «         Ze	ed>d$„¦   «         ¦   «         Zeed?d(„¦   «         ¦   «         Zed@d*„¦   «         ZeedAd+„¦   «         ¦   «         Ze	 	 dBdCd1„¦   «         ZdDd4„ZdEd5„Zˆ xZS )FÚAgentzèAgent that calls the language model and deciding the action.

    This is driven by a LLMChain. The prompt in the LLMChain MUST include
    a variable called "agent_scratchpad" where the agent can put its
    intermediary work.
    r-   rý   rÃ   rþ   Nr>   Úallowed_toolsrE   r
   r1   rq   c                óN   •— t          ¦   «                              ¦   «         }|d= |S r  r  r¾   s      €r:   rz   z
Agent.dictÏ  r  r=   c                ó   — | j         S )r@   )r  r8   s    r:   rA   zAgent.get_allowed_toolsÖ  s   € àÔ!Ð!r=   r2   c                ó   — dgS r4   r7   r8   s    r:   r;   zAgent.return_valuesÚ  r<   r=   c                ór   — d| j                              ¦   «         › �d| j                              ¦   «         › �gS )Nú
z
	)r  Úrstripr8   s    r:   Ú_stopzAgent._stopß  sB   € ð 4�Ô(×/Ò/Ñ1Ô1Ð3Ð3Ø5�4Ô*×1Ò1Ñ3Ô3Ð5Ð5ð
ð 	
r=   rB   rC   ústr | list[BaseMessage]c                ó\   — d}|D ]&\  }}||j         z  }|d| j        › |› d| j        › �z  }Œ'|S )zJConstruct the scratchpad that lets the agent continue its thought process.r[   r  )Úlogr  r  )r9   rB   ÚthoughtsÚactionÚobservations        r:   Ú_construct_scratchpadzAgent._construct_scratchpadæ  sW   € ð
 ˆØ#5ð 	Wð 	WÑˆF�KØ˜œ
Ñ"ˆHØÐV˜TÔ4ÐV°kÐVÐVÀTÄ_ÐVÐVÑVˆHˆHØˆr=   rD   r   rF   c                óz   —  | j         |fi |¤Ž} | j        j        dd|i|¤Ž}| j                             |¦  «        S )rH   rD   r7   )Úget_full_inputsrý   Úpredictrþ   rÇ   ©r9   rB   rD   rE   Úfull_inputsÚfull_outputs         r:   rJ   z
Agent.planñ  sU   € ð" +�dÔ*Ð+=ÐHÐHÀÐHÐHˆØ,�d”nÔ,ÐPÐP°yÐPÀKÐPÐPˆØÔ!×'Ò'¨Ñ4Ô4Ð4r=   c              ‹  ó–   K  —  | j         |fi |¤Ž} | j        j        dd|i|¤Žƒ d{V —†}| j                             |¦  «        ƒ d{V —†S )rM   rD   Nr7   )r%  rý   Úapredictrþ   Úaparser'  s         r:   rN   zAgent.aplan  s}   è è € ð" +�dÔ*Ð+=ÐHÐHÀÐHÐHˆØ3˜DœNÔ3ÐWÐW¸iÐWÈ;ÐWÐWÐWÐWÐWÐWÐWÐWˆØÔ'×.Ò.¨{Ñ;Ô;Ð;Ð;Ð;Ð;Ð;Ð;Ð;r=   úbuiltins.dict[str, Any]c                óL   — |                       |¦  «        }|| j        dœ}i |¥|¥S )a!  Create the full inputs for the LLMChain from intermediate steps.

        Args:
            intermediate_steps: Steps the LLM has taken to date,
                along with observations.
            **kwargs: User inputs.

        Returns:
            Full inputs for the LLMChain.
        ©Úagent_scratchpadrÿ   )r#  r  )r9   rB   rE   r   Ú
new_inputss        r:   r%  zAgent.get_full_inputs  s7   € ð ×-Ò-Ð.@ÑAÔAˆØ*2¸D¼JÐGÐGˆ
Ø'�&Ð'˜JÐ'Ð'r=   c                óV   — t          t          | j        j        ¦  «        dhz
  ¦  «        S )rR   r0  r  r8   s    r:   rS   zAgent.input_keys.  s(   € õ •C˜œÔ1Ñ2Ô2Ð6HÐ5IÑIÑJÔJÐJr=   Úafter©Úmoder&   c                ór  — | j         j        }d|j        vr¡t                               d¦  «         |j                             d¦  «         t          |t          ¦  «        r|xj        dz  c_        nGt          |t          ¦  «        r|xj
        dz  c_
        n!dt          |¦  «        › �}t          |¦  «        ‚| S )aC  Validate that prompt matches format.

        Args:
            values: Values to validate.

        Returns:
            Validated values.

        Raises:
            ValueError: If `agent_scratchpad` is not in prompt.input_variables
                and prompt is not a FewShotPromptTemplate or a PromptTemplate.
        r0  zl`agent_scratchpad` should be a variable in prompt.input_variables. Did not find it, so adding it at the end.z
{agent_scratchpad}zGot unexpected prompt type )rý   ÚpromptÚinput_variablesÚloggerÚwarningÚappendrv   r   Útemplater   rŽ   Útyper_   )r9   r7  ra   s      r:   Úvalidate_promptzAgent.validate_prompt3  sÀ   € ð ”Ô&ˆØ VÔ%;Ð;Ð;Ý�NŠNð=ñô ð ð Ô"×)Ò)Ð*<Ñ=Ô=Ð=Ý˜&¥.Ñ1Ô1ð &Ø�”Ð#9Ñ9�”�Ý˜FÕ$9Ñ:Ô:ð &Ø�”Ð!7Ñ7�”�àBµD¸±L´LÐBÐB�Ý  ‘o”oÐ%Øˆr=   rU   c                ó   — dS )z&Prefix to append the observation with.Nr7   r8   s    r:   r  zAgent.observation_prefixQ  rK   r=   c                ó   — dS )z#Prefix to append the LLM call with.Nr7   r8   s    r:   r  zAgent.llm_prefixV  rK   r=   rd   re   r   c                ó   — dS )z‡Create a prompt for this class.

        Args:
            tools: Tools to use.

        Returns:
            Prompt template.
        Nr7   ©rk   rd   s     r:   Úcreate_promptzAgent.create_prompt[  rK   r=   r}   c                ó   — dS )zgValidate that appropriate tools are passed in.

        Args:
            tools: Tools to use.
        Nr7   rB  s     r:   Ú_validate_toolszAgent._validate_toolsg  rK   r=   c                ó   — dS )z)Get default output parser for this class.Nr7   )rk   rE   s     r:   Ú_get_default_output_parserz Agent._get_default_output_parsero  rK   r=   rc   r   rf   rg   úAgentOutputParser | Nonec                óÒ   — |                       |¦  «         t          ||                      |¦  «        |¬¦  «        }d„ |D ¦   «         }|p|                      ¦   «         } | d|||dœ|¤ŽS )aH  Construct an agent from an LLM and tools.

        Args:
            llm: Language model to use.
            tools: Tools to use.
            callback_manager: Callback manager to use.
            output_parser: Output parser to use.
            kwargs: Additional arguments.

        Returns:
            Agent object.
        )rc   r7  rf   c                ó   — g | ]	}|j         ‘Œ
S r7   ©Úname©Ú.0Útools     r:   ú
<listcomp>z,Agent.from_llm_and_tools.<locals>.<listcomp>�  s   € Ð2Ð2Ð2 D�d”iÐ2Ð2Ð2r=   )rý   r  rþ   r7   )rE  r-   rC  rG  )	rk   rc   rd   rf   rþ   rE   rý   Ú
tool_namesÚ_output_parsers	            r:   rl   zAgent.from_llm_and_toolst  sŸ   € ð* 	×Ò˜EÑ"Ô"Ð"ÝØØ×$Ò$ UÑ+Ô+Ø-ð
ñ 
ô 
ˆ	ð
 3Ð2¨EÐ2Ñ2Ô2ˆ
Ø&ÐJ¨#×*HÒ*HÑ*JÔ*JˆØˆsð 
ØØ$Ø(ð
ð 
ð ð	
ð 
ð 	
r=   rT   r   c                ó�  — |dk    rt          ddid¦  «        S |dk    r•d}|D ]&\  }}||j        z  }|d| j        › |› d| j        › �z  }Œ'|dz  }|| j        dœ}i |¥|¥} | j        j        di |¤Ž}	| j                             |	¦  «        }
t          |
t           ¦  «        r|
S t          d|	i|	¦  «        S d	|› �}t          |¦  «        ‚)aÄ  Return response when agent has been stopped due to max iterations.

        Args:
            early_stopping_method: Method to use for early stopping.
            intermediate_steps: Steps the LLM has taken to date,
                along with observations.
            **kwargs: User inputs.

        Returns:
            Agent finish object.

        Raises:
            ValueError: If `early_stopping_method` is not in ['force', 'generate'].
        rY   r6   rZ   r[   Úgenerater  zB

I now need to return a final answer based on the previous steps:r/  zBearly_stopping_method should be one of `force` or `generate`, got Nr7   )r   r  r  r  r  rý   r&  rþ   rÇ   rv   r_   )r9   rT   rB   rE   r   r!  r"  r1  r(  r)  Úparsed_outputra   s               r:   rb   zAgent.return_stopped_response˜  s;  € ð( ! GÒ+Ð+åØÐPÐQØñô ð ð ! JÒ.Ð.àˆHØ'9ð ð Ñ#�˜Ø˜FœJÑ&�ØØR˜Ô0ÐR°+ÐRÐRÀÄÐRÐRñ��ð ØVñˆHð /7ÀÄ
ÐKÐKˆJØ2˜VÐ2 zÐ2ˆKØ0˜$œ.Ô0Ð?Ð?°;Ð?Ð?ˆKà Ô.×4Ò4°[ÑAÔAˆMÝ˜-­Ñ5Ô5ð %à$Ð$õ  ¨+Ð6¸ÑDÔDÐDð+Ø(ð+ð +ð 	õ ˜‰oŒoÐr=   c                ó    — | j         | j        dœS )rœ   r  r  r8   s    r:   r�   zAgent.tool_run_logging_kwargsÏ  s   € ð œ/Ø"&Ô"9ð
ð 
ð 	
r=   r¥   r    rŸ   )rB   rC   r1   r  r¡   r¢   )rB   rC   rE   r
   r1   r-  ©r1   r&   r¤   )rd   re   r1   r   )rd   re   r1   r}   )rE   r
   r1   rÃ   )NN)rc   r   rd   re   rf   rg   rþ   rH  rE   r
   r1   r  )rT   rU   rB   rC   rE   r
   r1   r   r§   )r¨   r©   rª   r«   rð   r  r'   rz   rA   r¬   r;   r  r#  rJ   rN   r%  rS   r%   r>  r   r  r  r­   rC  rE  rG  rl   rb   r�   r®   r¯   s   @r:   r  r  »  s°  ø€ € € € € € ðð ð ÐÐÑØ$Ø$Ð$Ð$Ñ$Ø)Ø&*€MÐ*Ð*Ð*Ñ*ØHàðð ð ð ð ñ „Xðð"ð "ð "ð "ð ðð ð ñ „Xðð ð
ð 
ð 
ñ „Xð
ð	ð 	ð 	ð 	ð  $ð5ð 5ð 5ð 5ð 5ð0  $ð<ð <ð <ð <ð <ð*(ð (ð (ð (ð& ðKð Kð Kñ „XðKð €_˜'Ð"Ñ"Ô"ðð ð ñ #Ô"ðð: Øð5ð 5ð 5ñ „^ñ „Xð5ð Øð2ð 2ð 2ñ „^ñ „Xð2ð Øðð ð ñ „^ñ „[ðð ðð ð ñ „[ðð Øð8ð 8ð 8ñ „^ñ „[ð8ð ð
 8<Ø26ð!
ð !
ð !
ð !
ñ „[ð!
ðF5ð 5ð 5ð 5ðn
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r=   r  c                  ól   — e Zd ZU dZdZded<   	 dZded<   	 e	 ddd„¦   «         Ze	 ddd„¦   «         Z	dS )ÚExceptionToolz!Tool that just returns the query.Ú
_ExceptionrU   rL  zException toolÚdescriptionNÚqueryÚrun_managerú CallbackManagerForToolRun | Noner1   c                ó   — |S r¡   r7   ©r9   r\  r]  s      r:   Ú_runzExceptionTool._runß  s	   € ð ˆr=   ú%AsyncCallbackManagerForToolRun | Nonec              ƒ  ó
   K  — |S r¡   r7   r`  s      r:   Ú_arunzExceptionTool._arunç  s   è è € ð ˆr=   r¡   )r\  rU   r]  r^  r1   rU   )r\  rU   r]  rb  r1   rU   )
r¨   r©   rª   r«   rL  rð   r[  r'   ra  rd  r7   r=   r:   rY  rY  ×  s—   € € € € € € Ø+Ð+à€DÐÐÐÑØØ'€KÐ'Ð'Ð'Ñ'Ø"àð 9=ðð ð ð ñ „Xðð ð >Bðð ð ð ñ „Xðð ð r=   rY  c                  ód  — e Zd ZU dZded<   	 ded<   	 dZded<   	 d	Zd
ed<   	 dZded<   	 dZded<   	 dZ	ded<   	 dZ
ded<   	 e	 didjd„¦   «         Z ed¬¦  «        dkd „¦   «         Z ed!¬¦  «        edld$„¦   «         ¦   «         Zedmd&„¦   «         Zednd*„¦   «         Zdnd+„Z	 diddd,œdod1„Zedpd3„¦   «         Zedpd4„¦   «         Zdqd7„Zdrd<„Z	 didsdD„Z	 didtdF„ZdudI„Z	 didvdO„Z	 didwdQ„Z	 didxdU„Z	 didydV„Z 	 didzdX„Z!	 did{dY„Z"	 did|dZ„Z#	 did}d[„Z$d~d_„Z%dd`„Z&e	 did€df„¦   «         Z'e	 did�dh„¦   «         Z(dS )‚ÚAgentExecutorzAgent that is using tools.ú7BaseSingleActionAgent | BaseMultiActionAgent | RunnableÚagentre   rd   FrÒ   Úreturn_intermediate_stepsé   z
int | NoneÚmax_iterationsNzfloat | NoneÚmax_execution_timerY   rU   rT   z3bool | str | Callable[[OutputParserException], str]Úhandle_parsing_errorséÿÿÿÿzNint | Callable[[list[tuple[AgentAction, str]]], list[tuple[AgentAction, str]]]Útrim_intermediate_stepsrD   r   rE   r
   r1   c                ó   —  | d|||dœ|¤ŽS )zþCreate from agent and tools.

        Args:
            agent: Agent to use.
            tools: Tools to use.
            callbacks: Callbacks to use.
            kwargs: Additional arguments.

        Returns:
            Agent executor object.
        )rh  rd   rD   r7   r7   )rk   rh  rd   rD   rE   s        r:   Úfrom_agent_and_toolsz"AgentExecutor.from_agent_and_tools"  s5   € ð& ˆsð 
ØØØð
ð 
ð ð	
ð 
ð 	
r=   r3  r4  r&   c                óÌ   — | j         }| j        }|                     ¦   «         }|�?t          |¦  «        d„ |D ¦   «         k    r"d|› dd„ |D ¦   «         › d�}t	          |¦  «        ‚| S )zûValidate that tools are compatible with agent.

        Args:
            values: Values to validate.

        Returns:
            Validated values.

        Raises:
            ValueError: If allowed tools are different than provided tools.
        Nc                ó   — h | ]	}|j         ’Œ
S r7   rK  rM  s     r:   ú	<setcomp>z/AgentExecutor.validate_tools.<locals>.<setcomp>L  s-   € ð @
ð @
ð @
ØˆDŒIð@
ð @
ð @
r=   zAllowed tools (z!) different than provided tools (c                ó   — g | ]	}|j         ‘Œ
S r7   rK  rM  s     r:   rP  z0AgentExecutor.validate_tools.<locals>.<listcomp>Q  s   € Ð#@Ð#@Ð#@°$ D¤IÐ#@Ð#@Ð#@r=   ú))rh  rd   rA   r  r_   )r9   rh  rd   r  ra   s        r:   Úvalidate_toolszAgentExecutor.validate_tools<  s­   € ð ”
ˆØ”
ˆØ×/Ò/Ñ1Ô1ˆØÐ$­¨]Ñ);Ô);ð @
ð @
Ø"'ð@
ñ @
ô @
ò *
ð *
ðD -ð Dð DØ#@Ð#@¸%Ð#@Ñ#@Ô#@ðDð Dð Dð õ ˜S‘/”/Ð!Øˆr=   ÚbeforeÚvaluesrz   c                ó   — |                      d¦  «        }|r¶t          |t          ¦  «        r¡	 |j        }|t          t
                   t          z  k    }n9# t          $ r d}Y n+t          $ r t           
                    d¦  «         d}Y nw xY w|                     dd¦  «        }|rt          ||¬¦  «        |d<   nt          ||¬¦  «        |d<   |S )z—Convert runnable to agent if passed in.

        Args:
            values: Values to validate.

        Returns:
            Validated values.
        rh  Fz.Unexpected error getting OutputType from agentrÓ   T)rÏ   rÓ   )Úgetrv   r   Ú
OutputTyper  r   r   Ú	TypeErrorÚ	Exceptionr9  Ú	exceptionÚpopró   rÍ   )rk   ry  rh  Úoutput_typeÚmulti_actionrÓ   s         r:   Úvalidate_runnable_agentz%AgentExecutor.validate_runnable_agentV  s  € ð —
’
˜7Ñ#Ô#ˆØð 	•Z ¥xÑ0Ô0ð 	ðNØ#Ô.�ð  +­dµ;Ô.?Å+Ñ.MÒM��øõ ð %ð %ð %Ø$���Ýð %ð %ð %Ý× Ò Ð!QÑRÔRÐRØ$���ð%øøøð %ŸjšjÐ):¸DÑAÔAˆOØð 	Ý":Ø"Ø$3ð#ñ #ô #��w‘�õ
 #0Ø"Ø$3ð#ñ #ô #��w‘ð ˆs   ®A ÁB
Á"%B
Â	B
ú,BaseSingleActionAgent | BaseMultiActionAgentc                ón   — t          | j        t          ¦  «        rt          d| j        ¦  «        S | j        S )aC  Type cast self.agent.

        If the `agent` attribute is a Runnable, it will be converted one of
        RunnableAgentType in the validate_runnable_agent root_validator.

        To support instantiating with a Runnable, here we explicitly cast the type
        to reflect the changes made in the root_validator.
        ÚRunnableAgentType)rv   rh  r   r   r8   s    r:   Ú_action_agentzAgentExecutor._action_agentz  s3   € õ �d”j¥(Ñ+Ô+ð 	9ÝÐ+¨T¬ZÑ8Ô8Ð8ØŒzÐr=   r{   r|   r}   c                ó$   — d}t          |¦  «        ‚)zÊRaise error - saving not supported for Agent Executors.

        Args:
            file_path: Path to save to.

        Raises:
            ValueError: Saving not supported for agent executors.
        zpSaving not supported for agent executors. If you are trying to save the agent, please use the `.save_agent(...)`)r_   )r9   r{   ra   s      r:   r˜   zAgentExecutor.saveˆ  s   € ð!ð 	õ
 ˜‰oŒoÐr=   c                ó6   — | j                              |¦  «        S )zZSave the underlying agent.

        Args:
            file_path: Path to save to.
        )r‡  r˜   )r9   r{   s     r:   Ú
save_agentzAgentExecutor.save_agent™  s   € ð Ô!×&Ò& yÑ1Ô1Ð1r=   )Úinclude_run_infoÚasync_rå   r‹  rŒ  r)   c               ó4   — t          | ||| j        |¬¦  «        S )aP  Enables iteration over steps taken to reach final output.

        Args:
            inputs: Inputs to the agent.
            callbacks: Callbacks to run.
            include_run_info: Whether to include run info.
            async_: Whether to run async. (Ignored)

        Returns:
            Agent executor iterator object.
        )Útagsr‹  )r)   rŽ  )r9   rå   rD   r‹  rŒ  s        r:   ÚiterzAgentExecutor.iter¡  s,   € õ& %ØØØØ”Ø-ð
ñ 
ô 
ð 	
r=   r2   c                ó   — | j         j        S rÛ   )r‡  rS   r8   s    r:   rS   zAgentExecutor.input_keys¼  s   € ð Ô!Ô,Ð,r=   c                óH   — | j         rg | j        j        ¢d‘S | j        j        S )zReturn the singular output key.rB   )ri  r‡  r;   r8   s    r:   Úoutput_keyszAgentExecutor.output_keysÁ  s3   € ð Ô)ð 	MØL�TÔ'Ô5ÐLÐ7KÐLÐLØÔ!Ô/Ð/r=   rL  r!   c                ó0   — d„ | j         D ¦   «         |         S )zwLookup tool by name.

        Args:
            name: Name of tool.

        Returns:
            Tool object.
        c                ó   — i | ]
}|j         |“ŒS r7   rK  rM  s     r:   ú
<dictcomp>z-AgentExecutor.lookup_tool.<locals>.<dictcomp>Ñ  s   € Ð7Ð7Ð7 D�”	˜4Ð7Ð7Ð7r=   )rd   )r9   rL  s     r:   Úlookup_toolzAgentExecutor.lookup_toolÈ  s   € ð 8Ð7¨D¬JÐ7Ñ7Ô7¸Ô=Ð=r=   Ú
iterationsÚintÚtime_elapsedÚfloatc                óR   — | j         �|| j         k    rdS | j        d u p
|| j        k     S )NF)rk  rl  )r9   r—  r™  s      r:   Ú_should_continuezAgentExecutor._should_continueÓ  s8   € ØÔÐ*¨z¸TÔ=PÒ/PÐ/PØ�5ØÔ&¨$Ð.ÐX°,ÀÔAXÒ2XÐXr=   r6   r   rB   r  r]  ú!CallbackManagerForChainRun | Noneúdict[str, Any]c                ój   — |r|                      |d| j        ¬¦  «         |j        }| j        r||d<   |S ©NÚgreen)ÚcolorÚverboserB   ©Úon_agent_finishr£  r;   ri  ©r9   r6   rB   r]  ræ   s        r:   Ú_returnzAgentExecutor._returnØ  sO   € ð ð 	UØ×'Ò'¨°gÀtÄ|Ð'ÑTÔTÐTØÔ+ˆØÔ)ð 	DØ1CˆLÐ-Ñ.ØÐr=   ú&AsyncCallbackManagerForChainRun | Nonec              ƒ  óz   K  — |r#|                      |d| j        ¬¦  «        ƒ d {V —† |j        }| j        r||d<   |S r   r¤  r¦  s        r:   Ú_areturnzAgentExecutor._areturnå  s}   è è € ð ð 	Ø×-Ò-ØØØœð .ñ ô ð ð ð ð ð ð ð ð
 Ô+ˆØÔ)ð 	DØ1CˆLÐ-Ñ.ØÐr=   ÚNextStepOutputú+AgentFinish | list[tuple[AgentAction, str]]c                ó¨   — t          |d         t          ¦  «        r,t          |¦  «        dk    rd}t          |¦  «        ‚|d         S d„ |D ¦   «         S )Nrn  é   z>Expected a single AgentFinish output, but got multiple values.c                óT   — g | ]%}t          |t          ¦  «        ¯|j        |j        f‘Œ&S r7   )rv   r   r!  r"  ©rN  Úas     r:   rP  z4AgentExecutor._consume_next_step.<locals>.<listcomp>ÿ  s0   € ÐVÐVÐV¨a½ZÈÍ9Ñ=UÔ=UÐV�”˜1œ=Ð)ÐVÐVÐVr=   )rv   r   r  r_   )r9   ry  ra   s      r:   Ú_consume_next_stepz AgentExecutor._consume_next_stepö  sZ   € õ �f˜R”j¥+Ñ.Ô.ð 	Ý�6‰{Œ{˜aÒÐØV�Ý  ‘o”oÐ%Ø˜"”:ÐØVÐV°6ÐVÑVÔVÐVr=   Úname_to_tool_mapúdict[str, BaseTool]Úcolor_mappingúdict[str, str]rC   c                ót   — |                       t          |                      |||||¦  «        ¦  «        ¦  «        S r¡   )r²  r  Ú_iter_next_step©r9   r³  rµ  rå   rB   r]  s         r:   Ú_take_next_stepzAgentExecutor._take_next_step  sK   € ð ×&Ò&ÝØ×$Ò$Ø$Ø!ØØ&Øñô ñô ñ

ô 

ð 
	
r=   ú/Iterator[AgentFinish | AgentAction | AgentStep]c              #  ó�  K  — 	 |                       |¦  «        } | j        j        |fd|r|                     ¦   «         ndi|¤Ž}�n£# t          $ �r•}t          | j        t          ¦  «        r	| j         }nd}|rd|›�}	t          |	¦  «        |‚t          |¦  «        }
t          | j        t          ¦  «        r3|j
        r)t          |j        ¦  «        }t          |j        ¦  «        }
nad}n^t          | j        t          ¦  «        r| j        }n<t          | j        ¦  «        r|                      |¦  «        }nd}	t          |	¦  «        |‚t          d||
¦  «        }|r|                     |d¬	¦  «         | j                             ¦   «         } t#          ¦   «         j        |j        f| j        d|r|                     ¦   «         ndd
œ|¤Ž}t+          ||¬¦  «        V — Y d}~dS d}~ww xY wt          |t,          ¦  «        r|V — dS t          |t          ¦  «        r|gn|}|D ]}|V — Œ|D ]}|                      ||||¦  «        V — ŒdS )ú–Take a single step in the thought-action-observation loop.

        Override this to take control of how the agent makes and acts on choices.
        rD   NFú²An output parsing error occurred. In order to pass this error back to the agent and have it try again, pass `handle_parsing_errors=True` to the AgentExecutor. This is the error: úInvalid or incomplete responseú.Got unexpected type of `handle_parsing_errors`rZ  r¡  ©r¢  ©r£  r¢  rD   ©r!  r"  )Ú_prepare_intermediate_stepsr‡  rJ   Ú	get_childr   rv   rm  rÒ   r_   rU   Úsend_to_llmr"  Ú
llm_outputÚcallabler   Úon_agent_actionr�   rY  r
  Ú
tool_inputr£  r   r   Ú_perform_agent_action)r9   r³  rµ  rå   rB   r]  r6   ÚeÚraise_errorra   rÄ   r"  Útool_run_kwargsÚactionsÚagent_actions                  r:   r¸  zAgentExecutor._iter_next_step  sü  è è € ð0	Ø!%×!AÒ!AÐBTÑ!UÔ!UÐð -�TÔ'Ô,Ø"ðð à5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdðð ðð ˆF‰Føõ
 %ð '	ñ '	ð '	Ý˜$Ô4µdÑ;Ô;ð $Ø"&Ô"<Ð<��à#�Øð -ð0ð +,ð0ð 0ð õ ! ‘o”o¨1Ð,Ý�q‘6”6ˆDÝ˜$Ô4µdÑ;Ô;ð -Ø”=ð CÝ"% a¤mÑ"4Ô"4�KÝ˜qœ|Ñ,Ô,�D�Dà"B�K�KÝ˜DÔ6½Ñ<Ô<ð -Ø"Ô8��Ý˜$Ô4Ñ5Ô5ð -Ø"×8Ò8¸Ñ;Ô;��àF�Ý  ‘o”o¨1Ð,Ý  ¨{¸DÑAÔAˆFØð CØ×+Ò+¨F¸'Ð+ÑBÔBÐBØ"Ô0×HÒHÑJÔJˆOØ-�-™/œ/Ô-ØÔ!ðàœØØ5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdð	ð ð
 "ðð ˆKõ  6°{ÐCÑCÔCÐCÐCÐCØˆFˆFˆFˆFˆFøøøøðO'	øøøõT �f�kÑ*Ô*ð 	ØˆLˆLˆLØˆFõ )¨µÑ=Ô=ÐI�6�(�(À6ˆØ#ð 	ð 	ˆLØÐÐÐÐØ#ð 	ð 	ˆLØ×,Ò,Ø ØØØñ	ô ð ð ð ð ð	ð 	s   „A A ÁG&ÁF
G!Ç!G&rÐ  r   r   c                óB  — |r|                      |d¬¦  «         |j        |v rt||j                 }|j        }||j                 }| j                             ¦   «         }|rd|d<    |j        |j        f| j        ||r|                     ¦   «         nd dœ|¤Ž}	ny| j                             ¦   «         } t          ¦   «         j        |j        t          |                     ¦   «         ¦  «        dœf| j        d |r|                     ¦   «         nd dœ|¤Ž}	t          ||	¬¦  «        S )Nr¡  rÁ  r[   r  rÂ  ©Úrequested_tool_nameÚavailable_tool_namesrÃ  )rÉ  rO  Úreturn_directr‡  r�   r
  rÊ  r£  rÅ  r+   r  Úkeysr   ©
r9   r³  rµ  rÐ  r]  rO  rÕ  r¢  rÎ  r"  s
             r:   rË  z#AgentExecutor._perform_agent_actiond  so  € ð ð 	EØ×'Ò'¨¸GÐ'ÑDÔDÐDàÔÐ 0Ð0Ð0Ø# LÔ$5Ô6ˆDØ Ô.ˆMØ! ,Ô"3Ô4ˆEØ"Ô0×HÒHÑJÔJˆOØð 3Ø02� Ñ-à"˜$œ(ØÔ'ðàœØØ5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdð	ð ð
 "ðð ˆKˆKð #Ô0×HÒHÑJÔJˆOØ+�+™-œ-Ô+à+7Ô+<Ý,0Ð1A×1FÒ1FÑ1HÔ1HÑ,IÔ,Iðð ð	ð
 œØØ5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdð	ð 	ð "ð	ð 	ˆKõ  ¸+ÐFÑFÔFÐFr=   c           
   ƒ  ó~   K  — |                       d„ |                      |||||¦  «        2 ¦   «         ƒ d {V —†¦  «        S )Nc              “  ó$   K  — g | 3 d {V —†	 }|‘Œ6 S r¡   r7   r°  s     r:   rP  z2AgentExecutor._atake_next_step.<locals>.<listcomp>”  sO   è è € ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	àð ð	ð 	ð 	ð 	s   …)r²  Ú_aiter_next_stepr¹  s         r:   Ú_atake_next_stepzAgentExecutor._atake_next_step‹  sy   è è € ð ×&Ò&ð	ð 	à#×4Ò4Ø$Ø!ØØ&Øñ ô  ð	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ñ
ô 
ð 	
r=   ú4AsyncIterator[AgentFinish | AgentAction | AgentStep]c               ó   ‡ ‡‡‡K  — 	 ‰                       |¦  «        } ‰ j        j        |fd‰r‰                     ¦   «         ndi|¤Žƒ d{V —†}�n‘# t          $ �rƒ}t          ‰ j        t          ¦  «        r	‰ j         }nd}|rd|›�}	t          |	¦  «        |‚t          |¦  «        }
t          ‰ j        t          ¦  «        r3|j
        r)t          |j        ¦  «        }t          |j        ¦  «        }
nad}n^t          ‰ j        t          ¦  «        r‰ j        }n<t          ‰ j        ¦  «        r‰                      |¦  «        }nd}	t          |	¦  «        |‚t          d||
¦  «        }‰ j                             ¦   «         } t!          ¦   «         j        |j        f‰ j        d‰r‰                     ¦   «         nddœ|¤Žƒ d{V —†}t)          ||¬	¦  «        W V — Y d}~dS d}~ww xY wt          |t*          ¦  «        r|W V — dS t          |t          ¦  «        r|gn|}|D ]}|W V — Œt-          j        ˆˆˆˆ fd
„|D ¦   «         Ž ƒ d{V —†}|D ]}|W V — ŒdS )r½  rD   NFr¾  r¿  rÀ  rZ  rÂ  rÃ  c                ó@   •— g | ]}‰                      ‰‰|‰¦  «        ‘ŒS r7   )Ú_aperform_agent_action)rN  rÐ  rµ  r³  r]  r9   s     €€€€r:   rP  z2AgentExecutor._aiter_next_step.<locals>.<listcomp>è  sG   ø€ ð ð ð ð !ð ×+Ò+Ø$Ø!Ø Øñ	ô ðð ð r=   )rÄ  r‡  rN   rÅ  r   rv   rm  rÒ   r_   rU   rÆ  r"  rÇ  rÈ  r   r�   rY  r  rÊ  r£  r   r   ÚasyncioÚgather)r9   r³  rµ  rå   rB   r]  r6   rÌ  rÍ  ra   rÄ   r"  rÎ  rÏ  rÐ  Úresultrç   s   ```  `           r:   rÚ  zAgentExecutor._aiter_next_step   sa  øøøøè è € ð.	Ø!%×!AÒ!AÐBTÑ!UÔ!UÐð 4˜4Ô-Ô3Ø"ðð à5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdðð ðð ð ð ð ð ð ð ˆF‰Føõ
 %ð %	ñ %	ð %	Ý˜$Ô4µdÑ;Ô;ð $Ø"&Ô"<Ð<��à#�Øð -ð0ð +,ð0ð 0ð õ ! ‘o”o¨1Ð,Ý�q‘6”6ˆDÝ˜$Ô4µdÑ;Ô;ð -Ø”=ð CÝ"% a¤mÑ"4Ô"4�KÝ˜qœ|Ñ,Ô,�D�Dà"B�K�KÝ˜DÔ6½Ñ<Ô<ð -Ø"Ô8��Ý˜$Ô4Ñ5Ô5ð -Ø"×8Ò8¸Ñ;Ô;��àF�Ý  ‘o”o¨1Ð,Ý  ¨{¸DÑAÔAˆFØ"Ô0×HÒHÑJÔJˆOØ 4¥¡¤Ô 4ØÔ!ð!àœØØ5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdð	!ð !ð
 "ð!ð !ð ð ð ð ð ð ˆKõ  6°{ÐCÑCÔCÐCÐCÐCÐCØˆFˆFˆFˆFˆFøøøøðK%	øøøõP �f�kÑ*Ô*ð 	ØˆLˆLˆLˆLØˆFõ )¨µÑ=Ô=ÐI�6�(�(À6ˆØ#ð 	ð 	ˆLØÐÐÐÐÐõ ”~ðð ð ð ð ð ð ð %,ðñ ô ð

ð 

ð 

ð 

ð 

ð 

ð 

ˆð ð 	ð 	ˆEØˆKˆKˆKˆKˆKð	ð 	s   ˆAA ÁGÁE8GÇGc              ƒ  óv  K  — |r#|                      || j        d¬¦  «        ƒ d {V —† |j        |v rz||j                 }|j        }||j                 }| j                             ¦   «         }|rd|d<    |j        |j        f| j        ||r|                     ¦   «         nd dœ|¤Žƒ d {V —†}	n| j                             ¦   «         } t          ¦   «         j        |j        t          |                     ¦   «         ¦  «        dœf| j        d |r|                     ¦   «         nd dœ|¤Žƒ d {V —†}	t          ||	¬¦  «        S )Nr¡  )r£  r¢  r[   r  rÂ  rÒ  rÃ  )rÉ  r£  rO  rÕ  r‡  r�   r  rÊ  rÅ  r+   r  rÖ  r   r×  s
             r:   rß  z$AgentExecutor._aperform_agent_action÷  sÝ  è è € ð ð 	Ø×-Ò-ØØœØð .ñ ô ð ð ð ð ð ð ð ð ÔÐ 0Ð0Ð0Ø# LÔ$5Ô6ˆDØ Ô.ˆMØ! ,Ô"3Ô4ˆEØ"Ô0×HÒHÑJÔJˆOØð 3Ø02� Ñ-à ) ¤	ØÔ'ð!àœØØ5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdð	!ð !ð
 "ð!ð !ð ð ð ð ð ð ˆKˆKð #Ô0×HÒHÑJÔJˆOØ 2¥¡¤Ô 2à+7Ô+<Ý,0Ð1A×1FÒ1FÑ1HÔ1HÑ,IÔ,Iðð ð	!ð
 œØØ5@ÐJ˜+×/Ò/Ñ1Ô1Ð1Àdð	!ð 	!ð "ð	!ð 	!ð 	ð 	ð 	ð 	ð 	ð 	ˆKõ  ¸+ÐFÑFÔFÐFr=   c                óÖ  — d„ | j         D ¦   «         }t          d„ | j         D ¦   «         ddg¬¦  «        }g }d}d}t          j        ¦   «         }|                      ||¦  «        r×|                      |||||¬¦  «        }	t          |	t          ¦  «        r|                      |	||¬¦  «        S |                     |	¦  «         t          |	¦  «        d	k    r7|	d         }
|  
                    |
¦  «        }|�|                      |||¬¦  «        S |d	z  }t          j        ¦   «         |z
  }|                      ||¦  «        °× | j        j        | j        |fi |¤Ž}|                      |||¬¦  «        S )
z(Run text through and get agent response.c                ó   — i | ]
}|j         |“ŒS r7   rK  rM  s     r:   r•  z'AgentExecutor._call.<locals>.<dictcomp>)  ó   € ÐCÐCÐC°˜DœI tÐCÐCÐCr=   c                ó   — g | ]	}|j         ‘Œ
S r7   rK  rM  s     r:   rP  z'AgentExecutor._call.<locals>.<listcomp>,  ó   € Ð.Ð.Ð.˜4ˆTŒYÐ.Ð.Ð.r=   r¡  Úred©Úexcluded_colorsr   ç        ©r]  r®  )rd   r"   Útimerœ  rº  rv   r   r§  Úextendr  Ú_get_tool_returnr‡  rb   rT   ©r9   rå   r]  r³  rµ  rB   r—  r™  Ú
start_timeÚnext_step_outputÚnext_step_actionÚtool_returnr6   s                r:   Ú_callzAgentExecutor._call"  s×  € ð DÐC¸¼
ÐCÑCÔCÐå)Ø.Ð. 4¤:Ð.Ñ.Ô.Ø$ eÐ,ð
ñ 
ô 
ˆð =?Ðàˆ
ØˆÝ”Y‘[”[ˆ
à×#Ò# J°Ñ=Ô=ð 	4Ø#×3Ò3Ø ØØØ"Ø'ð  4ñ  ô  Ðõ Ð*­KÑ8Ô8ð Ø—|’|Ø$Ø&Ø +ð $ñ ô ð ð ×%Ò%Ð&6Ñ7Ô7Ð7ÝÐ#Ñ$Ô$¨Ò)Ð)Ø#3°AÔ#6Ð à"×3Ò3Ð4DÑEÔE�ØÐ*ØŸ<š<Ø#Ø*Ø$/ð (ñ ô ð ð
 ˜!‰OˆJÝœ9™;œ;¨Ñ3ˆLð7 ×#Ò# J°Ñ=Ô=ð 	4ð8 <�Ô#Ô;ØÔ&Øð
ð 
ð ð
ð 
ˆð
 �|Š|˜FÐ$6ÀKˆ|ÑPÔPÐPr=   c              ƒ  ó|  K  — d„ | j         D ¦   «         }t          d„ | j         D ¦   «         dg¬¦  «        }g }d}d}t          j        ¦   «         }	 t          | j        ¦  «        4 ƒd{V —† |                      ||¦  «        �r|                      |||||¬¦  «        ƒ d{V —†}	t          |	t          ¦  «        r0|  	                    |	||¬¦  «        ƒ d{V —†cddd¦  «        ƒd{V —† S | 
                    |	¦  «         t          |	¦  «        d	k    rO|	d         }
|                      |
¦  «        }|�0|  	                    |||¬¦  «        ƒ d{V —†cddd¦  «        ƒd{V —† S |d	z  }t          j        ¦   «         |z
  }|                      ||¦  «        �° | j        j        | j        |fi |¤Ž}|  	                    |||¬¦  «        ƒ d{V —†cddd¦  «        ƒd{V —† S # 1 ƒd{V —†swxY w Y   dS # t           t"          j        f$ r:  | j        j        | j        |fi |¤Ž}|  	                    |||¬¦  «        ƒ d{V —†cY S w xY w)
z.Async run text through and get agent response.c                ó   — i | ]
}|j         |“ŒS r7   rK  rM  s     r:   r•  z(AgentExecutor._acall.<locals>.<dictcomp>_  ræ  r=   c                ó   — g | ]	}|j         ‘Œ
S r7   rK  rM  s     r:   rP  z(AgentExecutor._acall.<locals>.<listcomp>b  rè  r=   r¡  rê  r   rì  Nrí  r®  )rd   r"   rî  r.   rl  rœ  rÛ  rv   r   rª  rï  r  rð  r‡  rb   rT   ÚTimeoutErrorrà  rñ  s                r:   Ú_acallzAgentExecutor._acallX  sR  è è € ð DÐC¸¼
ÐCÑCÔCÐå)Ø.Ð. 4¤:Ð.Ñ.Ô.Ø$˜Ið
ñ 
ô 
ˆð =?Ðàˆ
ØˆÝ”Y‘[”[ˆ
ð4	Ý& tÔ'>Ñ?Ô?ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'Ø×+Ò+¨J¸ÑEÔEñ <Ø-1×-BÒ-BØ(Ø%ØØ*Ø$/ð .Cñ .ô .ð (ð (ð (ð (ð (ð (Ð$õ "Ð"2µKÑ@Ô@ð Ø%)§]¢]Ø,Ø.Ø(3ð &3ñ &ô &ð  ð  ð  ð  ð  ð  ð'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð  '×-Ò-Ð.>Ñ?Ô?Ð?ÝÐ+Ñ,Ô,°Ò1Ð1Ø+;¸AÔ+>Ð(à&*×&;Ò&;Ð<LÑ&MÔ&M˜Ø&Ð2Ø)-¯ªØ +Ø 2Ø,7ð *7ñ *ô *ð $ð $ð $ð $ð $ð $ð-'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð8  !‘O�JÝ#'¤9¡;¤;°Ñ#;�Lð9 ×+Ò+¨J¸ÑEÔEñ <ð: D˜Ô+ÔCØÔ.Ø&ðð ð ðð �ð
 "Ÿ]š]ØØ&Ø +ð +ñ ô ð ð ð ð ð ð ðG'ð 'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'øõP �gÔ2Ð3ð 	ð 	ð 	à?�TÔ'Ô?ØÔ*Ø"ðð ð ðð ˆFð
 ŸšØØ"Ø'ð 'ñ ô ð ð ð ð ð ð ð ð ð ð	øøøsR   ÁG+ Á)A*GÃG+ Ã&A$GÅ
G+ ÅA(GÇG+ Ç
G"Ç"G+ Ç%G"Ç&G+ Ç+AH;È:H;ró  útuple[AgentAction, str]úAgentFinish | Nonec                óî   — |\  }}d„ | j         D ¦   «         }d}t          | j        j        ¦  «        dk    r| j        j        d         }|j        |v r$||j                 j        rt          ||id¦  «        S dS )z&Check if the tool is a returning tool.c                ó   — i | ]
}|j         |“ŒS r7   rK  rM  s     r:   r•  z2AgentExecutor._get_tool_return.<locals>.<dictcomp>§  ræ  r=   r6   r   r[   N)rd   r  r‡  r;   rO  rÕ  r   )r9   ró  rÐ  r"  r³  Úreturn_value_keys         r:   rð  zAgentExecutor._get_tool_return¡  sž   € ð
 %5Ñ!ˆ�kØCÐC¸¼
ÐCÑCÔCÐØ#ÐÝˆtÔ!Ô/Ñ0Ô0°1Ò4Ð4Ø#Ô1Ô?ÀÔBÐð ÔÐ!1Ð1Ð1Ø  Ô!2Ô3ÔAð 2õ Ø! ;Ð/Øñô ð ð ˆtr=   c                óÂ   — t          | j        t          ¦  «        r| j        dk    r|| j         d …         S t          | j        ¦  «        r|                      |¦  «        S |S )Nr   )rv   ro  r˜  rÈ  )r9   rB   s     r:   rÄ  z)AgentExecutor._prepare_intermediate_steps¶  sn   € õ
 �tÔ3µSÑ9Ô9ð	GàÔ,¨qÒ0Ð0à% tÔ'CÐ&CÐ&EÐ&EÔFÐFÝ�DÔ0Ñ1Ô1ð 	DØ×/Ò/Ð0BÑCÔCÐCØ!Ð!r=   Úinputúdict[str, Any] | Anyrà   úRunnableConfig | NoneúIterator[AddableDict]c           	   +  ó   K  — t          |¦  «        }t          | ||                     d¦  «        f|                     d¦  «        |                     d¦  «        |                     d¦  «        |                     d¦  «        ddœ|¤Ž}|E d{V —† dS )	zöEnables streaming over steps taken to reach final output.

        Args:
            input: Input to the agent.
            config: Config to use.
            kwargs: Additional arguments.

        Yields:
            Addable dictionary.
        rD   rŽ  ÚmetadataÚrun_nameÚrun_idT©rŽ  r  r  r	  Úyield_actionsN©r   r)   r{  )r9   r  rà   rE   Úiterators        r:   râ   zAgentExecutor.streamÃ  s®   è è € õ" ˜vÑ&Ô&ˆÝ(ØØØ�JŠJ�{Ñ#Ô#ð

ð —’˜FÑ#Ô#Ø—Z’Z 
Ñ+Ô+Ø—Z’Z 
Ñ+Ô+Ø—:’:˜hÑ'Ô'Øð

ð 

ð ð

ð 

ˆð ÐÐÐÐÐÐÐÐÐr=   úAsyncIterator[AddableDict]c           	    ó0  K  — t          |¦  «        }t          | ||                     d¦  «        f|                     d¦  «        |                     d¦  «        |                     d¦  «        |                     d¦  «        ddœ|¤Ž}|2 3 d{V —†}|W V — Œ6 dS )	züAsync enables streaming over steps taken to reach final output.

        Args:
            input: Input to the agent.
            config: Config to use.
            kwargs: Additional arguments.

        Yields:
            Addable dictionary.
        rD   rŽ  r  r  r	  Tr
  Nr  )r9   r  rà   rE   r  Ústeps         r:   rì   zAgentExecutor.astreamâ  sÎ   è è € õ" ˜vÑ&Ô&ˆÝ(ØØØ�JŠJ�{Ñ#Ô#ð

ð —’˜FÑ#Ô#Ø—Z’Z 
Ñ+Ô+Ø—Z’Z 
Ñ+Ô+Ø—:’:˜hÑ'Ô'Øð

ð 

ð ð

ð 

ˆð #ð 	ð 	ð 	ð 	ð 	ð 	ð 	�$ØˆJˆJˆJˆJˆJð #˜(˜(s   ÂBr¡   )
rh  rg  rd   re   rD   r   rE   r
   r1   rf  rW  )ry  rz   r1   r
   )r1   r„  r¦   )
rå   r
   rD   r   r‹  rÒ   rŒ  rÒ   r1   r)   rŸ   )rL  rU   r1   r!   )r—  r˜  r™  rš  r1   rÒ   )r6   r   rB   r  r]  r�  r1   rž  )r6   r   rB   r  r]  r¨  r1   rž  )ry  r«  r1   r¬  )r³  r´  rµ  r¶  rå   r¶  rB   rC   r]  r�  r1   r¬  )r³  r´  rµ  r¶  rå   r¶  rB   rC   r]  r�  r1   r»  )
r³  r´  rµ  r¶  rÐ  r   r]  r�  r1   r   )r³  r´  rµ  r¶  rå   r¶  rB   rC   r]  r¨  r1   r¬  )r³  r´  rµ  r¶  rå   r¶  rB   rC   r]  r¨  r1   rÜ  )
r³  r´  rµ  r¶  rÐ  r   r]  r¨  r1   r   )rå   r¶  r]  r�  r1   rž  )rå   r¶  r]  r¨  r1   r¶  )ró  rü  r1   rý  )rB   rC   r1   rC   )r  r  rà   r  rE   r
   r1   r  )r  r  rà   r  rE   r
   r1   r  ))r¨   r©   rª   r«   rð   ri  rk  rl  rT   rm  ro  r­   rq  r%   rw  rƒ  r¬   r‡  r'   r˜   rŠ  r�  rS   r’  r–  rœ  r§  rª  r²  rº  r¸  rË  rÛ  rÚ  rß  rö  rû  rð  rÄ  râ   rì   r7   r=   r:   rf  rf  ô  sC  € € € € € € Ø$Ð$àBÐBÐBÑBð3àÐÐÑØ-Ø&+ÐÐ+Ð+Ð+Ñ+ð3à!#€NÐ#Ð#Ð#Ñ#ð9ð (,ÐÐ+Ð+Ð+Ñ+ðð ")ÐÐ(Ð(Ð(Ñ(ðð RWÐÐVÐVÐVÑVðð 	ð ð ð ð ñ ðð ð
  $ð	
ð 
ð 
ð 
ñ „[ð
ð2 €_˜'Ð"Ñ"Ô"ðð ð ñ #Ô"ðð2 €_˜(Ð#Ñ#Ô#Øð ð  ð  ñ „[ñ $Ô#ð ðD ðð ð ñ „Xðð ðð ð ñ „Xðð 2ð 2ð 2ð 2ð  $ð
ð
 "'Øð
ð 
ð 
ð 
ð 
ð 
ð6 ð-ð -ð -ñ „Xð-ð ð0ð 0ð 0ñ „Xð0ð	>ð 	>ð 	>ð 	>ðYð Yð Yð Yð :>ð	ð ð ð ð ð" ?Cð	ð ð ð ð ð"	Wð 	Wð 	Wð 	Wð" :>ð
ð 
ð 
ð 
ð 
ð4 :>ðMð Mð Mð Mð Mðh :>ð%Gð %Gð %Gð %Gð %GðZ ?Cð
ð 
ð 
ð 
ð 
ð6 ?CðUð Uð Uð Uð Uðx ?Cð)Gð )Gð )Gð )Gð )Gð\ :>ð4Qð 4Qð 4Qð 4Qð 4Qðr ?CðGð Gð Gð Gð GðRð ð ð ð*"ð "ð "ð "ð ð )-ðð ð ð ñ „Xðð< ð )-ðð ð ð ñ „Xðð ð r=   rf  )`r«   Ú
__future__r   rà  Úbuiltinsr¼   r�   Úloggingrî  Úabcr   Úcollections.abcr   r   r   r   Úpathlibr	   Útypingr
   r   r“   Úlangchain_core._apir   Úlangchain_core.agentsr   r   r   Úlangchain_core.callbacksr   r   r   r   r   r   Úlangchain_core.exceptionsr   Úlangchain_core.language_modelsr   Úlangchain_core.messagesr   Úlangchain_core.output_parsersr   Úlangchain_core.promptsr   Úlangchain_core.prompts.few_shotr   Úlangchain_core.prompts.promptr   Úlangchain_core.runnablesr   r   r   Úlangchain_core.runnables.utilsr    Úlangchain_core.toolsr!   Úlangchain_core.utils.inputr"   Úpydanticr#   r$   r%   Útyping_extensionsr&   r'   Ú"langchain_classic._api.deprecationr(   Ú'langchain_classic.agents.agent_iteratorr)   Ú$langchain_classic.agents.agent_typesr*   Úlangchain_classic.agents.toolsr+   Úlangchain_classic.chains.baser,   Úlangchain_classic.chains.llmr-   Ú#langchain_classic.utilities.asyncior.   Ú	getLoggerr¨   r9  r0   r±   rÃ   r  rÊ   rÍ   ró   rü   r  rY  r«  r†  rf  r7   r=   r:   ú<module>r0     sl  ðØ KÐ Kà "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð
 €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ Eðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð <Ð ;Ð ;Ð ;Ð ;Ð ;Ø <Ð <Ð <Ð <Ð <Ð <Ø /Ð /Ð /Ð /Ð /Ð /Ø :Ð :Ð :Ð :Ð :Ð :Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø AÐ AÐ AÐ AÐ AÐ AØ 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø )Ð )Ð )Ð )Ð )Ð )Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à HÐ HÐ HÐ HÐ HÐ HØ IÐ IÐ IÐ IÐ IÐ IØ :Ð :Ð :Ð :Ð :Ð :Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø /Ð /Ð /Ð /Ð /Ð /Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?à	ˆÔ	˜8Ñ	$Ô	$€ðcð cð cð cð c˜Iñ cô cð cðLIð Ið Ið Ið I˜9ñ Iô Ið IðX3ð 3ð 3ð 3ð 3Ð(¨°{Ñ)BÔCñ 3ô 3ð 3ðð ð ð ð Ø�T˜+Ô&¨Ñ4Ô5ñô ð ð(ið ið ið ið iÐ)ñ iô ið iðXnð nð nð nð nÐ3ñ nô nð nðb €ØØ%Øðñ ô ð
Q
ð Q
ð Q
ð Q
ð Q
Ð0ñ Q
ô Q
ñô ð
Q
ðh €ØØ%Øðñ ô ð
T
ð T
ð T
ð T
ð T
Ð!ñ T
ô T
ñô ð
T
ðnð ð ð ð �Hñ ô ð ð2 �k KÑ/°)Ñ;Ô<€Ø!Ð$<Ñ<Ð ðLð Lð Lð Lð L�Eñ Lô Lð Lð Lð Lr=   