前言
一周暑期休假之后,大模型真好玩又来和大家分享LangChain智能体开发的相关教程啦!本系列分享前六篇分别讲述了
- LangChain&LangGraph的核心原理
- LangChain接入大模型的基本方法
- LangChain核心概念——链
- LangChain记忆存储与多轮对话机器人搭建
- LangChain接入工具基本流程
- LangChain Agent API快速搭建智能体
通过以上内容的学习大家基本具备了LangChain搭建简单智能体的能力。上篇文章中我们使用的create_tool_calling_agent函数是LangChain中一个通用的用来构建工具代理智能体的方法,除此以外LangChain还封装了丰富的Agent实现函数。本期内容通过一个多智能体协作实现浏览器自动化的项目继续向大家分享LangChain Agent智能体搭建的基本技巧。
本系列分享是笔者结合自己学习工作中使用LangChain&LangGraph经验倾心编写,力求帮助大家体系化快速掌握LangChain&LangGraph AI Agent智能体开发的技能!大家感兴趣可以关注笔者优快云账号和系列专栏。更可关注笔者同名微信公众号: 大模型真好玩, 每期分享涉及的代码均可在公众号私信: LangChain智能体开发获得。
一、LangChain Agent API实现方式
除了create_tool_calling_agent这一通用的方法,LangChain还封装了许多不同的Agent实现形式,参考下表:
| 函数名 | 功能描述 | 适用场景 |
|---|---|---|
| create_tool_calling_agent | 创建使用工具的Agent | 通用工具调用 |
| create_openai_tools_agent | 创建OpenAI工具Agent | OpenAI模型专用 |
| create_openai_functions_agent | 创建OpenAI函数Agent | OpenAI函数调用 |
| create_react_agent | 创建ReAct推理Agent | 推理+行动模式 |
| create_structured_chat_agent | 创建结构化聊天Agent | 多输入工具支持 |
| create_conversational_retrieval_agent | 创建对话检索Agent | 检索增强对话 |
| create_json_chat_agent | 创建JSON聊天Agent | JSON格式交互 |
| create_xml_agent | 创建XML格式Agent | XML逻辑格式 |
| create_self_ask_with_search_agent | 创建自问自答搜索Agent | 自主搜索推理 |
以上实现形式中比较通用的场景是我们上篇文章使用的create_tool_calling_agent,而对于一些符合OpenAI RESTFUL API格式的请求可使用create_openai_tools_agent(OpenAI 定义的大模型及工具的请求格式,我们先前文章DeepSeek大模型API实战指南,python一键调用AI超能力打造多轮对话机器人! 使用的就是OpenAI请求大模型的接口,详细的请求格式可见OpenAI-API 接口文档(中文版))。另外像create_react_agent可以用于一些推理任务,create_conversational_retrieval_agent则可以用于一些对话系统。具体的api使用还是根据实际需求来选择。
二、LangChain PlayWright浏览器自动化实战
目前很多大模型的炫酷能力都是通过浏览器自动化操作来展示的。伴随着微软PlayWright项目的兴起,不管是填写表格、发送文件还是获取不同类型的各个网页信息甚至自动购物等用户都可以通过PlayWright模拟浏览器操作来完成。LangChain作为当之无愧的宇宙第一Agent开发框架,自然也集成了PlayWright的相关功能来实现浏览器自动化操作。
2.1 构建浏览器自动化代理环境
- 首先在我们之前创建的
anaconda虚拟环境langchainenv中执行如下命令安装浏览器自动化代理环境的依赖:
pip install playwright lxml langchain_community beautifulsoup4 reportlab

- 此外还需要安装PlayWright内置的虚拟浏览器,在当前虚拟环境中执行如下命令:
playwright install
该命令会下载并安装Playwright支持的浏览器内核(注意:PlayWright并不会使用我们本机已有的浏览器,而是使用额外内核)。下载的浏览器和内核包括Chromium(Chrome开源版浏览器内核)、Firefox、WebKit(苹果Safari使用的浏览器引擎),这些浏览器和内核将被下载到本地的.cache/ms-playwright目录或项目~/.playwright 目录中,以便Playwright使用稳定一致的运行环境。

2.2 编写自动化操作浏览器脚本
大模型应用开发领域有非常多的浏览器自动化需求,最常见的场景当属“自动化提取网页内容进行分析并生成报告”,这样的流程扩宽了收集信息的有效途径,大大提升了信息分析效率。接下来我们就尝试使用create_openai_tools_agent开发一个浏览器自动化代理项目。
- 引入相关依赖,
PlayWrightBrowserToolkit和create_sync_playwright_browser与PlayWright自动化浏览器的创建有关,hub是LangChain保存提示词的网站,下面会详细讲解。其它的引入包就是我们讲过的模型和Agent构建的常用依赖这里不再赘述。
from langchain_community.agent_toolkits import PlayWrightBrowserToolkit
from langchain_community.tools.playwright.utils import create_sync_playwright_browser
from langchain import hub
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain.chat_models import init_chat_model
- 初始化PlayWright浏览器。
# 初始化 Playwright 浏览器:
sync_browser = create_sync_playwright_browser() # 创建同步执行的浏览器
toolkit = PlayWrightBrowserToolkit.from_browser(sync_browser=sync_browser) # 构建PlayWright浏览器工具
tools = toolkit.get_tools() # 获取PlayWright浏览器操作函数
- 初始化模型,这里为保证更强大的大模型Agent能力,本期内容继续使用
DeepSeek-V3模型,具体配置大家可参考 LangChain接入大模型的基本方法。
# 初始化模型
model = init_chat_model(
model="deepseek-chat",
model_provider="deepseek",
api_key="你注册的DeepSeek API Key"
)
- 现在Agent构建的三要素模型、工具函数和提示词就缺提示词了,本期分享我们只需编写一行代码即可构造提示词,代码如下:
# 通过 LangChain Hub 拉取提示词模版
prompt = hub.pull("hwchase17/openai-tools-agent")
这行代码的运行原理是从LangChainHub网站中拉取已经定义好的提示词模板,提示词模板如下:


拉取提示词模板的代码与以下自定义提示词的代码等价:
prompt = ChatPromptTemplate.from_messages(
[
("system", "You are a helpful assistant"),
('placeholder': "{chat_history}"),
("human", "{input}"

最低0.47元/天 解锁文章
5228

被折叠的 条评论
为什么被折叠?



