langchain.agents.mrkl.base.ZeroShotAgent

class langchain.agents.mrkl.base.ZeroShotAgent[源代码]

基础: Agent

自版本 0.1.0 已弃用: 请使用 create_react_agent 代替。

MRKL 链的代理。

参数

output_parser – 代理的输出解析器。

通过解析和验证关键字参数中的输入数据来创建新模型。

如果输入数据无法解析成有效模型,则引发 ValidationError。

paramallowed_tools:Optional[List[str]] = None

允许代理使用的工具。如果为 None,则允许所有工具。

paramllm_chain [必需]

用于代理的 LLMChain。

paramoutput_parser:AgentOutputParser [可选]

用于代理的输出解析器。

async aplan(intermediate_steps: List[Tuple[AgentAction, str]], callbacks: Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]], **kwargs: Any) Union[AgentAction, AgentFinish]

异步给定输入,决定要做什么。

参数
  • intermediate_steps (列表[Tuple[AgentAction, str]]) – LLM至今为止采取的步骤以及观测结果。

  • callbacks (可选[Union[List[BaseCallbackHandler], BaseCallbackManager]]) – 要执行的回调。

  • **kwargs (任何) – 用户输入。

返回

指定使用哪个工具的动作。

返回类型

Union[AgentAction, AgentFinish]

classmethod create_prompt(tools: Sequence[BaseTool], prefix: str = 'Answer the following questions as best you can. You have access to the following tools:', suffix: str = 'Begin!\n\nQuestion: {input}\nThought:{agent_scratchpad}', format_instructions: str = 'Use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: the action to take, should be one of [{tool_names}]\nAction Input: the input to the action\nObservation: the result of the action\n... (this Thought/Action/Action Input/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question', input_variables: Optional[List[str]] = None) PromptTemplate[source]

按零样本代理的风格创建提示。

参数
  • tools (Sequence中的BaseTool) – 代理将能够访问的工具列表,用于格式化提示。

  • prefix (str) – 将要放在工具列表之前的字符串。默认为 PREFIX。

  • 后缀 (str) – 要添加到工具列表之后的字符串。默认为 SUFFIX。

  • 格式说明 (str) – 关于如何使用工具的说明。默认为 FORMAT_INSTRUCTIONS。

  • 输入变量 (可选[字符串列表]) – 最终提示将期望的输入变量列表。默认为 None。

返回

由这里的片段组装而成的 PromptTemplate。

返回类型

PromptTemplate

classmethod from_llm_and_tools(llm: BaseLanguageModel, tools: Sequence[BaseTool], callback_manager: Optional[BaseCallbackManager] = None, output_parser: Optional[AgentOutputParser] = None, prefix: str = 'Answer the following questions as best you can. You have access to the following tools:', suffix: str = 'Begin!\n\nQuestion: {input}\nThought:{agent_scratchpad}', format_instructions: str = 'Use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: the action to take, should be one of [{tool_names}]\nAction Input: the input to the action\nObservation: the result of the action\n... (this Thought/Action/Action Input/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question', input_variables: Optional[List[str]] = None, **kwargs: Any) Agent[source]

从 LLM 和工具构建智能体。

参数
  • llm (BaseLanguageModel) – 作为智能体 LLM 使用的 LLM。

  • tools (工具序列) – 要使用的工具。

  • callback_manager (可选[BaseCallbackManager]) – 要使用的回调管理器。默认为 None。

  • output_parser (可选[AgentOutputParser]) – 要使用的输出解析器。默认为 None。

  • 前缀 (str) – 要使用的前缀。默认为 PREFIX。

  • 后缀 (str) – 要使用的后缀。默认为 SUFFIX。

  • 格式说明 (str) – 要使用的格式说明。默认为 FORMAT_INSTRUCTIONS。

  • 输入变量 (可选[字符串列表]) – 要使用的输入变量。默认为 None。

  • kwargs (任何类型) – 要传给智能体的额外参数。

返回类型

智能体

get_allowed_tools() Optional[字符串列表]

获取允许使用的工具。

返回类型

可选[字符串列表]

get_full_inputs(intermediate_steps: 中间步骤列表: List[Tuple[, str]], **kwargs: 任何类型) Dict[str, 任何类型]

从中间步骤创建 LLMChain 的完整输入。

参数
  • intermediate_steps (列表[Tuple[AgentAction, str]]) – LLM至今为止采取的步骤以及观测结果。

  • **kwargs (任何) – 用户输入。

返回

LLMChain 的完整输入。

返回类型

Dict[str, 任何类型]

plan(intermediate_steps: List[Tuple[AgentAction, str]], callbacks: Optional[Union[List[BaseCallbackHandler], BaseCallbackManager]] = None, **kwargs: Any) Union[AgentAction, AgentFinish]

给定的输入,决定要做什么。

参数
  • intermediate_steps (列表[Tuple[AgentAction, str]]) – LLM至今为止采取的步骤以及观测结果。

  • callbacks (可选[Union[List[BaseCallbackHandler], BaseCallbackManager]]) – 要执行的回调。

  • **kwargs (任何) – 用户输入。

返回

指定使用哪个工具的动作。

返回类型

Union[AgentAction, AgentFinish]

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

当智能体因最大迭代次数而停止时返回响应。

参数
  • early_stopping_method (str) – 使用早期停止的方法。

  • intermediate_steps (列表[Tuple[AgentAction, str]]) – LLM至今为止采取的步骤以及观测结果。

  • **kwargs (任何) – 用户输入。

返回

智能体完成对象。

返回类型

AgentFinish

抛出异常

ValueError – 如果 early_stopping_method 不在 [‘force’, ‘generate’] 范围内。

save(file_path: Union[Path, str]) None

保存代理。

参数

file_path (Union[Path, str]) – 要保存代理的文件路径。

返回类型

None

示例: .. code-block:: python

若与代理执行器协同使用,则使用:agent.agent.save(file_path="path/agent.yaml")

tool_run_logging_kwargs() Dict

返回工具运行的日志参数。

返回类型

Dict

property llm_prefix: str

附加到 llm 调用的前缀。

返回

返回类型

“Thought”

property observation_prefix: str

附加到观测值的前缀。

返回

返回类型

“Observation”

property return_values: List[str]

代理的返回值。