Toggle Menu
Prev Up Next

# Source code for langchain.agents.schema

    from typing import Any, Dict, List, Tuple

    from langchain_core.agents import AgentAction
    from langchain_core.prompts.chat import ChatPromptTemplate

    class AgentScratchPadChatPromptTemplate(ChatPromptTemplate):
        """Chat prompt template for the agent scratchpad."""

        @classmethod
        def is_lc_serializable(cls) -> bool:
            return False

        def _construct_agent_scratchpad(
            self, intermediate_steps: List[Tuple[AgentAction, str]]
        ) -> str:
            if len(intermediate_steps) == 0:
                return ""
            thoughts = ""
            for action, observation in intermediate_steps:
                thoughts += action.log
                thoughts += f"\nObservation: {observation}\nThought: "
            return (
                f"This was your previous work "
                f"(but I haven't seen any of it! I only see what "
                f"you return as final answer):\n{thoughts}"
            )

        def _merge_partial_and_user_variables(self, **kwargs: Any) -> Dict[str, Any]:
            intermediate_steps = kwargs.pop("intermediate_steps")
            kwargs["agent_scratchpad"] = self._construct_agent_scratchpad(
                intermediate_steps
            )
            return kwargs