ConversationalChatAgent#
- class langchain.agents.conversational_chat.base.ConversationalChatAgent[source]#
Bases:
Agent
Deprecated since version 0.1.0: Use
create_json_chat_agent()
instead. It will be removed in None==1.0.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][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- param allowed_tools: List[str] | None = None#
Allowed tools for the agent. If None, all tools are allowed.
- 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:
intermediate_steps (List[Tuple[AgentAction, str]]) β Steps the LLM has taken to date, along with observations.
callbacks (list[BaseCallbackHandler] | BaseCallbackManager | None) β Callbacks to run.
**kwargs (Any) β User inputs.
- Returns:
Action specifying what tool to use.
- Return type:
- 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:
- 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:
- 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:
intermediate_steps (List[Tuple[AgentAction, str]]) β Steps the LLM has taken to date, along with observations.
callbacks (list[BaseCallbackHandler] | BaseCallbackManager | None) β Callbacks to run.
**kwargs (Any) β User inputs.
- Returns:
Action specifying what tool to use.
- Return type:
- 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:
- 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.