深入浅出LangChain AI Agent智能体开发教程(七)—LangChain多智能体浏览器自动化

前言

一周暑期休假之后,大模型真好玩又来和大家分享LangChain智能体开发的相关教程啦!本系列分享前六篇分别讲述了

通过以上内容的学习大家基本具备了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 构建浏览器自动化代理环境

  1. 首先在我们之前创建的anaconda虚拟环境langchainenv中执行如下命令安装浏览器自动化代理环境的依赖:
pip install playwright lxml langchain_community beautifulsoup4 reportlab

在这里插入图片描述

  1. 此外还需要安装PlayWright内置的虚拟浏览器,在当前虚拟环境中执行如下命令:
playwright install

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

在这里插入图片描述

2.2 编写自动化操作浏览器脚本

大模型应用开发领域有非常多的浏览器自动化需求,最常见的场景当属“自动化提取网页内容进行分析并生成报告”,这样的流程扩宽了收集信息的有效途径,大大提升了信息分析效率。接下来我们就尝试使用create_openai_tools_agent开发一个浏览器自动化代理项目。

  1. 引入相关依赖,PlayWrightBrowserToolkitcreate_sync_playwright_browserPlayWright自动化浏览器的创建有关, 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
  1. 初始化PlayWright浏览器。
# 初始化 Playwright 浏览器:
sync_browser = create_sync_playwright_browser() # 创建同步执行的浏览器
toolkit = PlayWrightBrowserToolkit.from_browser(sync_browser=sync_browser) # 构建PlayWright浏览器工具
tools = toolkit.get_tools() # 获取PlayWright浏览器操作函数
  1. 初始化模型,这里为保证更强大的大模型Agent能力,本期内容继续使用DeepSeek-V3模型,具体配置大家可参考 LangChain接入大模型的基本方法
# 初始化模型
model = init_chat_model(
    model="deepseek-chat",
    model_provider="deepseek",
    api_key="你注册的DeepSeek API Key"
)
  1. 现在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}"
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大模型真好玩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值