核心模块(Modules)
代理(Agents)
代理类型(AgentTypes)
自问自答搜索(SelfAskWithSearch)

自问自答带搜索

这个演示展示了带搜索代理的自问自答功能。

from langchain import hub
from langchain.agents import AgentExecutor, create_self_ask_with_search_agent
from langchain_community.llms import Fireworks
from langchain_community.tools.tavily_search import TavilyAnswer

初始化工具

我们将初始化我们想要使用的工具。这是一个很好的工具,因为它给我们提供了答案(而不是文档)

对于这个代理,只能使用一个工具,它需要被命名为"Intermediate Answer"。

tools = [TavilyAnswer(max_results=1, name="Intermediate Answer")]

创建代理

# 获取要使用的提示 - 您可以修改这个提示!
prompt = hub.pull("hwchase17/self-ask-with-search")
# 选择将驱动代理的LLM
llm = Fireworks()
 
# 构建自问自答带搜索代理
agent = create_self_ask_with_search_agent(llm, tools, prompt)

运行代理

# 通过传入代理和工具来创建一个代理执行器
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
agent_executor.invoke(
    {"input": "What is the hometown of the reigning men's U.S. Open champion?"}
)
> 进入新的代理执行器链...
是的。
追问:谁是现任美国网球公开赛男单冠军?现任美国网球公开赛男单冠军是诺瓦克·德约科维奇。他在2023年美国网球公开赛的决赛中击败丹尼尔·梅德韦杰夫赢得了他的第24个大满贯单打冠军。
所以最终答案是:诺瓦克·德约科维奇。

> 完成链条。





{'input': "What is the hometown of the reigning men's U.S. Open champion?",
 'output': 'Novak Djokovic.'}