ConversationalChatAgent#

class langchain.agents.conversational_chat.base.ConversationalChatAgent[source]#

Bases: Agent

Deprecated since version 0.1.0: Use create_json_chat_agent instead.

An agent designed to hold a conversation in addition to using tools.

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

param allowed_tools: List[str] | None = None#

Allowed tools for the agent. If None, all tools are allowed.

param llm_chain: LLMChain [Required]#

LLMChain to use for agent.

param output_parser: AgentOutputParser [Optional]#

Output parser for the agent.

param template_tool_response: str = "TOOL RESPONSE: \n---------------------\n{observation}\n\nUSER'S INPUT\n--------------------\n\nOkay, so what is the response to my last comment? If using information obtained from the tools you must mention it explicitly without mentioning the tool names - I have forgotten all TOOL RESPONSES! Remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else."#

Template for the tool response.

async aplan(intermediate_steps: List[Tuple[AgentAction, str]], callbacks: List[BaseCallbackHandler] | BaseCallbackManager | None = None, **kwargs: Any) β†’ AgentAction | AgentFinish#

Async given input, decided what to do.

Parameters:
Returns:

Action specifying what tool to use.

Return type:

AgentAction | AgentFinish

classmethod create_prompt(tools: Sequence[BaseTool], system_message: str = 'Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful system that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.', human_message: str = "TOOLS\n------\nAssistant can ask the user to use tools to look up information that may be helpful in answering the users original question. The tools the human can use are:\n\n{{tools}}\n\n{format_instructions}\n\nUSER'S INPUT\n--------------------\nHere is the user's input (remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else):\n\n{{{{input}}}}", input_variables: List[str] | None = None, output_parser: BaseOutputParser | None = None) β†’ BasePromptTemplate[source]#

Create a prompt for the agent.

Parameters:
  • tools (Sequence[BaseTool]) – The tools to use.

  • system_message (str) – The system message to use. Defaults to the PREFIX.

  • human_message (str) – The human message to use. Defaults to the SUFFIX.

  • input_variables (List[str] | None) – The input variables to use. Defaults to None.

  • output_parser (BaseOutputParser | None) – The output parser to use. Defaults to None.

Returns:

A PromptTemplate.

Return type:

BasePromptTemplate

classmethod from_llm_and_tools(llm: BaseLanguageModel, tools: Sequence[BaseTool], callback_manager: BaseCallbackManager | None = None, output_parser: AgentOutputParser | None = None, system_message: str = 'Assistant is a large language model trained by OpenAI.\n\nAssistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.\n\nAssistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.\n\nOverall, Assistant is a powerful system that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.', human_message: str = "TOOLS\n------\nAssistant can ask the user to use tools to look up information that may be helpful in answering the users original question. The tools the human can use are:\n\n{{tools}}\n\n{format_instructions}\n\nUSER'S INPUT\n--------------------\nHere is the user's input (remember to respond with a markdown code snippet of a json blob with a single action, and NOTHING else):\n\n{{{{input}}}}", input_variables: List[str] | None = None, **kwargs: Any) β†’ Agent[source]#

Construct an agent from an LLM and tools.

Parameters:
  • llm (BaseLanguageModel) – The language model to use.

  • tools (Sequence[BaseTool]) – A list of tools to use.

  • callback_manager (BaseCallbackManager | None) – The callback manager to use. Default is None.

  • output_parser (AgentOutputParser | None) – The output parser to use. Default is None.

  • system_message (str) – The system message to use. Default is PREFIX.

  • human_message (str) – The human message to use. Default is SUFFIX.

  • input_variables (List[str] | None) – The input variables to use. Default is None.

  • **kwargs (Any) – Any additional arguments.

Returns:

An agent.

Return type:

Agent

get_allowed_tools() β†’ List[str] | None#

Get allowed tools.

Return type:

List[str] | None

get_full_inputs(intermediate_steps: List[Tuple[AgentAction, str]], **kwargs: Any) β†’ Dict[str, Any]#

Create the full inputs for the LLMChain from intermediate steps.

Parameters:
  • intermediate_steps (List[Tuple[AgentAction, str]]) – Steps the LLM has taken to date, along with observations.

  • **kwargs (Any) – User inputs.

Returns:

Full inputs for the LLMChain.

Return type:

Dict[str, Any]

plan(intermediate_steps: List[Tuple[AgentAction, str]], callbacks: List[BaseCallbackHandler] | BaseCallbackManager | None = None, **kwargs: Any) β†’ AgentAction | AgentFinish#

Given input, decided what to do.

Parameters:
Returns:

Action specifying what tool to use.

Return type:

AgentAction | AgentFinish

return_stopped_response(early_stopping_method: str, intermediate_steps: List[Tuple[AgentAction, str]], **kwargs: Any) β†’ AgentFinish#

Return response when agent has been stopped due to max iterations.

Parameters:
  • early_stopping_method (str) – Method to use for early stopping.

  • intermediate_steps (List[Tuple[AgentAction, str]]) – Steps the LLM has taken to date, along with observations.

  • **kwargs (Any) – User inputs.

Returns:

Agent finish object.

Return type:

AgentFinish

Raises:

ValueError – If early_stopping_method is not in [β€˜force’, β€˜generate’].

save(file_path: Path | str) β†’ None#

Save the agent.

Parameters:

file_path (Path | str) – Path to file to save the agent to.

Return type:

None

Example: .. code-block:: python

# If working with agent executor agent.agent.save(file_path=”path/agent.yaml”)

tool_run_logging_kwargs() β†’ Dict#

Return logging kwargs for tool run.

Return type:

Dict

property llm_prefix: str#

Prefix to append the llm call with.

Returns:

”

Return type:

β€œThought

property observation_prefix: str#

Prefix to append the observation with.

Returns:

”

Return type:

β€œObservation

property return_values: List[str]#

Return values of the agent.