Agent 与工具调用2887 字
LangGraph快速构建Agent工作流应用
·全库 435 / 611
《LangGraph快速构建Agent工作流应用》共 0.3 万字,通篇围绕 Agent、LangChain、prompt、ReAct 展开,归在「Agent 与工具调用」这一层。
覆盖AgentLangChainpromptReAct工作流
适合要让 AI 真的去干活、不只是陪人聊天的人
目录骨架(1 节)
- Agent工作流
示例代码
注:将ppt后缀名改为zip后解压
python版本:3.12.4
Agent工作流
下面展示了如何创建一个“计划并执行”风格的代理。 这在很大程度上借鉴了 计划和解决 论文以及 Baby-AGI 项目。
核心思想是先制定一个多步骤计划,然后逐项执行。 完成一项特定任务后,您可以重新审视计划并根据需要进行修改。
一般的计算图如下所示

这与典型的 ReAct 风格的代理进行了比较,在该代理中,您一次思考一步。 这种“计划并执行”风格代理的优势在于
- 明确的长期规划(即使是真正强大的 LLM 也可能难以做到)
- 能够使用更小/更弱的模型来执行步骤,仅在规划步骤中使用更大/更好的模型
以下演练演示了如何在 LangGraph 中实现这一点。 生成的代理将留下类似以下示例的轨迹: (链接).
设置
首先,我们需要安装所需的软件包。
%pip install --quiet -U langgraph langchain-community langchain-openai tavily-python
接下来,我们需要为 OpenAI(我们将使用的 LLM)和 Tavily(我们将使用的搜索工具)设置 API 密钥
可以选择设置 LangSmith 跟踪的 API 密钥,这将为我们提供一流的可观察性。
setx TAVILY_API_KEY ""
# Optional, add tracing in LangSmith
setx LANGCHAIN_TRACING_V2 "true"
setx LANGCHAIN_API_KEY ""
定义工具
我们将首先定义要使用的工具。 对于这个简单的示例,我们将使用 Tavily 内置的搜索工具。 但是,创建自己的工具非常容易 - 请参阅有关如何操作的文档 此处。
#示例:plan_execute.py
from langchain_community.tools.tavily_search import TavilySearchResults
# 创建TavilySearchResults工具,设置最大结果数为1
tools = [TavilySearchResults(max_results=1)]
定义我们的执行代理
现在我们将创建要用于执行任务的执行代理。 请注意,对于此示例,我们将对每个任务使用相同的执行代理,但这并非必须如此。
from langchain import hub
from langchain_openai import ChatOpenAI
import asyncio
from langgraph.prebuilt import create_react_agent
# 从LangChain的Hub中获取prompt模板,可以进行修改
prompt = hub.pull("wfh/react-agent-executor")
prompt.pretty_print()
# 选择驱动代理的LLM,使用OpenAI的ChatGPT-4o模型
llm = ChatOpenAI(model="gpt-4o")
# 创建一个REACT代理执行器,使用指定的LLM和工具,并应用从Hub中获取的prompt
agent_executor = create_react_agent(llm, tools, messages_modifier=prompt)
================================ System Message ================================
You are a helpful assistant.
============================= Messages Placeholder =============================
{{messages}}
# 调用代理执行器,询问“谁是美国公开赛的冠军”
agent_executor.invoke({"messages": [("user", "谁是美国公开赛的获胜者")]})