langchain.agents.react.agent.create_react_agent

langchain.agents.react.agent.create_react_agent(llm: ~langchain_core.language_models.base.BaseLanguageModel, tools: ~typing.Sequence[~langchain_core.tools.BaseTool], prompt: ~langchain_core.prompts.base.BasePromptTemplate, output_parser: ~typing.Optional[~langchain.agents.agent.AgentOutputParser] = None, tools_renderer: ~typing.Callable[[~typing.List[~langchain_core.tools.BaseTool]], str] = <function render_text_description>, *, stop_sequence: ~typing.Union[bool, ~typing.List[str]] = True) Runnable[source]

创建一个使用ReAct提示的代理。

参数:

llm: 用作代理的LLM。 tools: 该代理可以访问的工具。 prompt: 要使用的提示。有关更多信息,请参见下面的提示部分。 output_parser: 用于解析LLM输出的AgentOutputParser。 tools_renderer: 控制工具如何转换为字符串并传递到LLM。默认为`render_text_description`。 stop_sequence: 布尔值或字符串列表。

如果为True,则添加一个停止令牌”Observation:”以避免产生幻觉。 如果为False,则不添加停止令牌。 如果是字符串列表,则使用提供的列表作为停止令牌。

默认为True。如果您使用的LLM不支持停止序列,则可以将其设置为False。

返回:

代表一个代理的可运行序列。它接受与传入的提示相同的所有输入变量。它返回一个AgentAction或AgentFinish。

示例:

from langchain import hub
from langchain_community.llms import OpenAI
from langchain.agents import AgentExecutor, create_react_agent

prompt = hub.pull("hwchase17/react")
model = OpenAI()
tools = ...

agent = create_react_agent(model, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools)

agent_executor.invoke({"input": "hi"})

# 与聊天历史记录一起使用
from langchain_core.messages import AIMessage, HumanMessage
agent_executor.invoke(
    {
        "input": "what's my name?",
        # 请注意,chat_history是一个字符串
        # 因为这个提示是针对LLM而不是聊天模型的
        "chat_history": "Human: My name is Bob
AI: Hello Bob!”,

}

)

提示:

提示必须具有以下输入键:
  • tools: 包含每个工具的描述和参数。

  • tool_names: 包含所有工具名称。

  • agent_scratchpad: 包含先前代理操作和工具输出的字符串。

这是一个示例:

from langchain_core.prompts import PromptTemplate

template = '''尽力回答以下问题。您可以访问以下工具:

{tools}

使用以下格式:

问题: 您必须回答的输入问题
思考: 您应该始终考虑该做什么
动作: 要执行的操作,应该是[{tool_names}]中的一个
动作输入: 操作的输入
观察: 操作的结果
... (这个思考/动作/动作输入/观察可以重复N次)
思考: 我现在知道最终答案
最终答案: 原始输入问题的最终答案

开始!

问题: {input}
思考:{agent_scratchpad}'''

prompt = PromptTemplate.from_template(template)
Parameters
Return type

Runnable

Examples using create_react_agent