打通Agent最后一公里: 用阿里云无影AgentBay+LangChain实现浏览器自动化

简介: langchain-agentbay-integration 是一个连接 LangChain 与阿里云无影 AgentBay 的工具包,支持浏览器自动化、代码执行等云端操作,助力开发者高效构建智能代理应用。

本文作者:阿里云无影技术专家 尹越


在人工智能和自动化技术飞速发展的今天,越来越多的开发者开始关注如何利用大语言模型(LLM)来构建智能应用。今天我要给大家介绍一个非常实用的工具包——langchain-agentbay-integration,它能够帮助你快速将 LangChain 框架与 AgentBay 平台集成,轻松实现浏览器自动化等高级功能。


一. 背景介绍

1.1 什么是 AgentBay?

AgentBay 是阿里云推出的一个智能代理平台,它提供了强大的云端环境来运行各种自动化任务。通过 AgentBay,你可以获得一个隔离的云端环境,用来执行代码、操作浏览器、处理文件等操作,而无需在本地配置复杂的环境。AgentBay 提供了多种镜像环境,包括支持浏览器、代码、电脑、手机等执行环境,非常适合构建各种自动化测试和智能代理应用。 https://www.aliyun.com/product/agentbay https://github.com/aliyun/wuying-agentbay-sdk

1.2 LangChain 框架简介

LangChain 是目前最流行的基于大语言模型(LLM)的应用开发框架之一。它提供了一套完整的工具链,帮助开发者快速构建基于 LLM 的应用,如聊天机器人、智能问答系统、自动化代理等。LangChain 的核心优势在于它的模块化设计,允许开发者灵活组合各种组件,如模型接口、提示词模板、数据检索、工具集成等,从而构建出功能强大的智能应用。 https://www.langchain.com/

1.3 langchain-agentbay-integration 的价值

对于已经熟悉 LangChain 但尚未接触过 AgentBay 的开发者来说,langchain-agentbay-integration 提供了一个桥梁。通过这个集成包,你可以直接在 LangChain 应用中使用 AgentBay 提供的强大功能。

  目前该集成包支持四种环境类型,每种环境针对不同的自动化场景:

Mobile 环境 (MobileIntegrationToolkit) - Android 移动设备自动化:

  • 屏幕点击和滑动操作
  • 文本输入和按键事件
  • UI 元素获取
  • 截图功能

Computer 环境 (ComputerIntegrationToolkit) - 桌面电脑自动化:

  • 鼠标操作(点击、移动、拖拽、滚动)
  • 键盘输入和快捷键
  • 截图和 OCR 元素识别
  • VLM 视觉分析

Codespace 环境 (CodespaceIntegrationToolkit) - 代码空间操作:

  • 代码执行(支持 Python 和 JavaScript)
  • 文件系统操作(读写文件)
  • 命令执行(在云端环境中执行 shell 命令)

Browser 环境 (BrowserIntegrationToolkit) - 浏览器自动化:

  • 浏览器导航
  • 页面交互操作(点击、填写表单等)
  • 截图功能

这大大降低了使用 AgentBay 平台的门槛,让你可以专注于业务逻辑的实现,而无需关心底层环境的配置和管理。 https://pypi.org/project/langchain-agentbay-integration/


二. 安装和使用过程

接下来,我将通过一个实际的例子来演示如何使用 langchain-agentbay-integration 包。我们将验证 AgentBay 官网在百度搜索中的排名情况,这需要使用浏览器自动化功能。

2.1 环境准备

首先,建议创建并启动一个虚拟环境来避免依赖冲突:

python3 -m venv agentbay_langchain_env
source ./agentbay_langchain_env/bin/activate  # Linux/Mac
# 或者在 Windows 上使用: agentbay_langchain_env\Scripts\activate

在虚拟环境中执行如下依赖配置和API密钥配置等操作,确保你使用的是最新版本的 pip:

pip install --upgrade pip

安装必要的包:

pip install -U langchain-agentbay-integration==0.2.2 wuying-agentbay-sdk==0.15.0
pip install langchain==1.0.3 langchain-openai==1.0.1

2.2 配置密钥

在运行示例之前,需要配置两个 API 密钥:

  1. AgentBay API Key
  • 访问 Agent-Bay 控制台
  • 登录你的阿里云账号
  • 在服务管理部分创建或选择一个 API KEY
  • 复制 API Key 并设置为 AGENTBAY_API_KEY 环境变量
  1. DashScope API Key
  • 访问 DashScope 平台
  • 登录你的账号
  • 在 API Key 管理部分复制 API Key
  • 设置为 DASHSCOPE_API_KEY 环境变量

在终端中设置环境变量:

export AGENTBAY_API_KEY="your-agentbay-api-key"
export DASHSCOPE_API_KEY="your-dashscope-api-key"

2.3 运行示例代码

创建一个 Python 脚本,例如 baidu_seo_check.py,内容如下:

import os
from dataclasses import dataclass
from langchain.agents import create_agent
from langchain_openai import ChatOpenAI
from langchain_agentbay_integration.toolkits import BrowserIntegrationToolkit
from langchain_agentbay_integration.tools import SessionData
from agentbay import AgentBay, CreateSessionParams
# 定义上下文类,用于传递 session 数据
@dataclass
class AgentContext:
    """必须包含 session_data 字段"""
    session_data: SessionData = None
# 创建 AgentBay 会话
agent_bay = AgentBay()
params = CreateSessionParams(image_id="browser_latest")
result = agent_bay.create(params)
session = result.session
# 初始化工具包
toolkit = BrowserIntegrationToolkit()
toolkit.initialize_browser(session)  # 使用 session 初始化浏览器
tools = toolkit.get_tools()
# 初始化 LLM
llm = ChatOpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    model=os.getenv("DASHSCOPE_MODEL", "qwen3-max")
)
# 使用 LangChain v1.0 的 create_agent 创建代理
agent = create_agent(
    llm,
    tools=tools,
    context_schema=AgentContext,
    system_prompt="""你是一个能够使用 AgentBay 浏览器工具的助手,可以自动化执行网页浏览任务。
    
可用工具:
1. browser_navigate - 在 AgentBay 会话中导航到指定 URL
2. browser_act - 在浏览器页面上执行操作,如点击按钮、填写表单等
3. browser_screenshot - 对当前浏览器页面进行截图
使用这些工具帮助用户完成网页浏览任务。"""
)
# 准备上下文
session_data = SessionData()
session_data.browser_session = session
context = AgentContext(session_data=session_data)
# 执行 SEO 验证任务
example_query = """
任务目标:
验证无影AgentBay官网在百度搜索中的排名情况,只有当搜索结果第一条链接是 https://www.aliyun.com/product/agentbay.html 时才认为验证通过。
任务过程:
下面所有截屏都保存在./snapshots/browser/下面
1. 导航到 https://www.baidu.com/
2. 对页面进行截图,文件名为'0_baidu_first_page.png'
3. 在搜索框中输入"无影AgentBay官网"并点击"百度一下"按钮
4. 对搜索结果页面进行截图,文件名为'1_baidu_search_result_page.png'
5. 点击第一条搜索结果
6. 对最终页面进行截图,文件名为'2_first_search_item.png'
任务返回:
以 JSON 格式返回结果:
{
    "success": true|false,
    "message": "验证通过以及其他消息|验证失败原因"
}
"""
# 执行代理
result = agent.invoke(
    {"messages": [{"role": "user", "content": example_query}]},
    context=context,
    config={"recursion_limit": 500}
)
# 提取并打印最终结果
if "messages" in result and len(result["messages"]) > 0:
    final_message = result["messages"][-1]
    if hasattr(final_message, 'content') and final_message.content:
        print(f"最终结果: {final_message.content}")
    else:
        print(f"最终结果: {final_message}")
else:
    print(f"最终结果: {result}")
# 清理资源
toolkit.cleanup_browser()
agent_bay.delete(session)

运行脚本:

python3 baidu_seo_check.py


三. 结果验证

3.1 langchain返回结果

如果一切顺利,你应该能看到类似以下的输出:

最终结果: {
    "success": true,
    "message": "验证通过,搜索结果第一条确实指向了 AgentBay 官网"
}

3.2 过程截图

在整个执行过程中,会生成三张截图:

  1. 百度首页截图 - 展示了初始访问百度网站的页面

  2. 百度搜索结果页截图 - 展示了搜索"无影AgentBay官网"后的结果页面

  3. 第一条结果页面截图 - 展示了点击搜索结果第一条后跳转到的页面

这些截图可以帮助你直观地验证整个自动化过程是否按预期执行。

3.3 过程日志

在执行过程中,也会打印类似如下的日志信息(已脱敏和简化):

Browser tools loaded: browser_navigate, browser_act, browser_screenshot
AgentBay | INFO | ✅ Session created: s-****whs
AgentBay | INFO | ✅ Browser initialized successfully
[Step 1] browser_navigate -> https://www.baidu.com/
         Output: {"success": true}
[Step 2] browser_screenshot -> ./snapshots/browser/0_baidu_first_page.png
         Output: {"success": true}
[Step 3] browser_act -> Fill '无影AgentBay官网' and click search
         Output: {"success": true, "actions": ["Input text", "Click 百度一下"]}
[Step 4] browser_screenshot -> ./snapshots/browser/1_baidu_search_result_page.png
         Output: {"success": true}
[Step 5] browser_act -> Click first search result
         Output: {"success": true, "action": "Clicked 阿里云官方"}
[Step 6] browser_screenshot -> ./snapshots/browser/2_first_search_item.png
         Output: {"success": true}
最终结果: {
    "success": true,
    "message": "验证通过,搜索结果第一条确实指向了 AgentBay 官网"
}


四. 总结

通过 langchain-agentbay-integration,我们可以轻松地将 LangChain 的强大 AI 能力与 AgentBay 的云端环境结合起来,实现各种复杂的自动化任务。除了我们演示的 SEO 验证场景,通过改变 Prompt 就可以调整 Agent 的执行过程,从而适应各种不同的自动化场景。这种方式大大减少了传统自动化脚本所需的代码开发量,让非技术人员也能通过自然语言描述来实现复杂的自动化任务。这个集成包还能用于:

  1. 自动化测试:构建完整的 Web 应用自动化测试套件,包括用户注册、登录、表单填写、功能测试等。
  2. 数据抓取:自动化抓取网站数据,特别是那些需要交互操作才能获取的数据。
  3. 竞品分析:定期检查竞品网站的价格、功能更新等信息。
  4. 社交媒体管理:自动化执行社交媒体账号的内容发布、互动等操作。
  5. 客服机器人:构建能够实际操作网站的智能客服,帮助用户完成在线操作。
  6. 教育和培训:创建交互式教程,自动演示Web软件操作步骤。

langchain-agentbay-integration 的优势在于它将复杂的环境管理和操作封装成简单的工具,让开发者可以专注于业务逻辑的实现。无论你是想构建一个简单的网页自动化脚本,还是一个复杂的智能代理系统,这个集成包都能为你提供强有力的支持。

需要注意的是,langchain-agentbay-integration 目前仍在不断迭代和发展中。当前版本已支持 LangChain 1.0.X,采用了最新的 create_agent API 和 context_schema 机制。同时,项目团队也在积极扩展对更多 AgentBay 镜像和 API 的支持,除了浏览器自动化,还提供了 Mobile(移动端)、Computer(桌面端)和 Codespace(代码空间)等多种自动化环境,为用户提供更丰富的功能和更好的使用体验。

希望这篇介绍能帮助你快速上手 langchain-agentbay-integration,开始构建属于你自己的智能自动化应用!


五. 相关链接


六. 系列文章

相关文章
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过阿里云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
916 0
|
2月前
|
人工智能 前端开发 算法
大厂CIO独家分享:AI如何重塑开发者未来十年
在 AI 时代,若你还在紧盯代码量、执着于全栈工程师的招聘,或者仅凭技术贡献率来评判价值,执着于业务提效的比例而忽略产研价值,你很可能已经被所谓的“常识”困住了脚步。
1631 89
大厂CIO独家分享:AI如何重塑开发者未来十年
|
1月前
|
人工智能 运维 安全
一文看懂函数计算 AgentRun,让 Agentic AI 加速进入企业生产环境
AgentRun 的愿景很简单:让 AI Agent 从 Demo 到生产级部署,变得前所未有的简单。通过 Serverless 架构持续优化成本并解放运维负担,通过企业级 Runtime 提供生产级的执行环境和安全保障,通过开源生态集成避免框架锁定,通过全链路可观测让每个环节都清晰可控——这就是 AgentRun 要为企业提供的完整解决方案。
|
1月前
|
人工智能 运维 Serverless
AgentScope 拥抱函数计算 FC,为 Agent 应用提供 Serverless 运行底座
AgentScope推出Serverless运行时,直面AI Agent部署成本高、运维复杂、资源利用率低三大痛点。通过“按需启动、毫秒弹性、零运维”架构,实现低成本、高弹性、强隔离的智能体部署,助力多智能体应用从实验迈向规模化落地。
|
21天前
|
安全 API 开发者
手把手带你使用无影 AgentBay + AgentScope 完成一站式智能体开发部署
阿里云无影 AgentBay 作为一个面向 AI 智能体开发的云端 GUI 沙箱服务,已集成至阿里巴巴通义实验室开源的 AgentScope 框架,助力开发者快速构建安全、高效的智能体应用。
510 1
|
7天前
|
人工智能 安全 Java
Java 开发者福音:无影 AgentBay 官方 Java SDK 正式发布,无缝集成 Spring AI 与 LangChain4j
阿里云无影AgentBay推出Java SDK,助力Java应用安全接入AI Agent。通过云端沙箱隔离执行环境,解决本地执行的安全、并发与依赖难题,支持Spring AI、LangChain4j等主流框架,实现高并发、可扩展的智能体开发。
206 6
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
AgentEvolver:让智能体系统学会「自我进化」
AgentEvolver 是一个自进化智能体系统,通过自我任务生成、经验导航与反思归因三大机制,推动AI从“被动执行”迈向“主动学习”。它显著提升强化学习效率,在更少参数下实现更强性能,助力智能体持续自我迭代。开源地址:https://github.com/modelscope/AgentEvolver
1117 38

热门文章

最新文章