赞
踩
ReAct(Reacting Agents)代理是一种用于模拟人类解决问题过程的智能代理,在LangChain框架中,ReAct代理利用大型语言模型(LLM)的能力来执行一系列的推理步骤,这些步骤通常涉及对信息的搜索和分析工作。ReAct代理的主要特点如下所示:
在实际应用中,使用ReAct代理的场景通常涉及到创建一个能够进行一系列推理步骤来解决特定问题的代理。例如下面是一个使用ReAct代理的例子,其中代理将使用搜索工具来回答关于某个主题的问题。
实例6-1:使用ReAct代理回答关于某个主题的问题(源码路径:codes\6\ReAct.py)
实例文件ReAct.py的具体实现代码如下所示。
- from langchain.agents import AgentExecutor, create_react_agent
- from langchain_community.tools.tavily_search import TavilySearchResults
- from langchain_openai import OpenAI
- from langchain import hub
-
- # 初始化搜索工具
- search_tool = TavilySearchResults(max_results=1)
- # 获取提示模板
- prompt = hub.pull("hwchase17/react")
- # 选择语言模型
- llm = OpenAI()
- # 构建ReAct代理
- agent = create_react_agent(llm, [search_tool], prompt)
-
- # 创建代理执行器
- agent_executor = AgentExecutor(
- agent=agent, tools=[search_tool], verbose=True, handle_parsing_errors=True
- )
-
- # 调用代理执行器来处理一个查询
- response = agent_executor.invoke({"input": "What is the capital of France?"})
在上述代码中,ReAct代理使用搜索工具来找到关于法国首都的信息,并以结构化的JSON格式返回了答案。执行后会输出:
- {
- "input": "What is the capital of France?",
- "output": "The capital of France is Paris."
- }
请注意,为了获得实际的输出,需要确保 TavilySearchResults 工具已经正确配置,并且已经在环境中设置了有效的API密钥。此外,代理的提示(prompt)和搜索工具的实现细节也会影响最终的输出。
在实际应用中,ReAct代理可以处理更复杂的任务,如多步骤的推理、错误处理、以及与用户的多轮对话状态管理。通过ReAct代理,开发者可以构建能够模拟人类解决问题过程的智能系统。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。