手把手带你使用无影 AgentBay + AgentScope 完成一站式智能体开发部署

简介: 阿里云无影 AgentBay 作为一个面向 AI 智能体开发的云端 GUI 沙箱服务,已集成至阿里巴巴通义实验室开源的 AgentScope 框架,助力开发者快速构建安全、高效的智能体应用。

本文作者:阿里云无影技术专家 吴晓

什么是无影 AgentBay

无影 AgentBay 是阿里云提供的云端 GUI 沙箱环境服务,专为 AI Agent 智能体开发而设计。AgentBay 的SDK已在 GitHub 上开源(欢迎大家 Star✨!),目前支持 Python、TypeScript、Golang 三种编程语言。

AgentBay 支持四种类型的沙箱环境:

  • Browser Use:浏览器自动化环境,提供完整的 Web 自动化、网页抓取、表单填写等能力
  • Computer Use:桌面操作系统环境,支持 Windows/Linux 桌面应用的自动化操作
  • Mobile Use:移动端环境,支持 Android 设备的模拟和控制
  • CodeSpace:代码执行环境,支持 Python 等多种编程语言的云端执行

镜像类型

说明

适用场景

linux_latest

Linux 环境

基础命令执行、文件操作

windows_latest

Windows 环境

Windows 应用操作

browser_latest

浏览器自动化环境

Web 自动化、网页操作

mobile_latest

移动端环境

移动应用操作

code_latest

代码执行环境

Python/代码执行

AgentBay 主要解决智能体开发中的以下核心问题:

  1. 基础设施部署复杂:传统智能体开发需要本地部署 Docker 容器或 Kubernetes 集群,配置和维护成本高。AgentBay 提供开箱即用的云端沙箱,开发者只需通过 API Key 即可访问,无需关心底层基础设施。
  2. 环境隔离与安全性:智能体在执行代码、文件操作、浏览器控制等任务时,需要确保不会危及系统安全。AgentBay 提供严格的多租户架构隔离,每个会话都在完全隔离的环境中运行,确保进程、文件系统和网络层面的安全隔离。
  3. 多平台环境支持:智能体需要访问不同的执行环境(Linux、Windows、浏览器、移动端),传统方案需要为每种环境单独部署和维护。AgentBay 统一提供多种环境类型,通过简单的 API 调用即可切换,实现跨平台智能体开发。
  4. GUI 操作能力缺失:许多智能体任务需要图形界面交互能力(如点击、输入、截图等),传统命令行或 API 方式无法满足。AgentBay 提供完整的 GUI 操作能力,包括鼠标控制、键盘输入、屏幕截图、窗口管理等,支持真实的图形界面交互。
  5. 人机协作需求:智能体在执行复杂任务时,往往需要人类干预(如处理 CAPTCHA、输入敏感信息等)。AgentBay 支持混合交互模式,智能体可以通过程序化 API 控制,同时人类操作员可以随时无缝接管进行手动操作,实现真正的人机协作。

什么是 AgentScope Runtime

AgentScope Runtime 是由阿里巴巴通义实验室开源的一个全面的智能体运行时框架,旨在解决智能体开发中的两个关键挑战:

  1. 安全的沙箱工具执行:智能体在执行工具(如代码执行、文件操作、浏览器控制等)时,需要确保不会危及系统安全。AgentScope Runtime 提供了隔离的沙箱环境,确保所有工具操作都在安全隔离的环境中执行。
  2. 可扩展的智能体服务化部署:在生产环境中部署智能体应用时,需要处理会话管理、上下文管理(长短期记忆、外部知识库)、环境控制等复杂的基础设施问题。AgentScope Runtime 提供了完整的部署基础设施,让开发者可以专注于智能体逻辑本身,而无需关心底层的基础设施实现。

AgentScope Runtime 为什么需要 AgentBay

AgentScope-Runtime已经有沙箱环境,但AgentBay相对于AgentScope-Runtime自有沙箱有下列的优势:

  1. 无需本地部署,开箱即用
  • AgentBay 作为阿里云提供的云端服务,开发者只需一个 API Key 即可调用,无需在本地安装 Docker、Kubernetes 或维护任何基础设施。
  • AgentScope-Runtime 虽然提供了安全沙箱能力,但通常需要本地部署和配置运行环境(如容器或虚拟化资源),增加了部署复杂度和运维成本。
  1. 原生支持多平台 GUI 环境
  • AgentBay 原生提供四种 GUI 沙箱类型,并支持完整的图形界面交互能力,如鼠标点击、键盘输入、截图、窗口管理等。
  • AgentScope-Runtime 沙箱设计更偏向通用工具执行的安全隔离(如代码、文件、网络操作),对 GUI 环境(云电脑和浏览器)的支持有限,且不支持云手机的沙箱。
  1. 人机协作能力(Human in the loop)
  • AgentBay 支持混合交互模式——智能体自动执行 + 人类操作员随时接管(如处理验证码、输入密码等)。
  • AgentScope-Runtime 聚焦于智能体自动化与服务化部署,默认提供画面流的GUI沙箱,但是不支持人类接管操作。


目前 AgentBay SDK 已经集成进 AgentScope-Runtime 开源项目中,作为 AgentScope Runtime 的一种沙箱实现(AgentBay Sandbox)提供服务。通过集成,开发者可以在 AgentScope Runtime 框架中直接使用 AgentBay 作为云原生沙箱,无需单独部署和维护沙箱环境。

AgentBay Sandbox 作为 AgentScope Runtime 集成的云原生沙箱实现,基于阿里云的 AgentBay 服务,为智能体开发提供了以下优势:

  • 无需本地部署:无需 Kubernetes,通过 API Key 即可使用云端沙箱环境
  • 多种环境支持:支持 Linux、Windows、浏览器、代码执行、移动端等多种环境类型
  • GUI 操作能力:提供完整的图形界面操作能力,包括鼠标、键盘、屏幕截图、窗口管理等
  • 开箱即用:通过云服务直接访问,无需维护基础设施,降低开发和运维成本
  • 安全隔离:每个会话都在完全隔离的云端环境中运行,确保安全性和可靠性


安装和使用过程

1. 安装依赖

首先,安装 AgentScope Runtime 和 AgentBay SDK:

# 安装 AgentScope Runtime
pip install agentscope-runtime
# 安装 AgentBay SDK
pip install wuying-agentbay-sdk
# 安装 AgentScope 框架(如果还没有安装)
pip install agentscope

2. API 密钥配置

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

  1. AgentBay API Key:
  • 访问 AgentBay 控制台
  • 登录你的阿里云账号
  • 在服务管理部分创建或选择一个 API KEY
  • 复制 API Key 并设置为 AGENTBAY_API_KEY 环境变量
  1. 🔔 注意:AgentBay账号需要有Pro以上的权益
  2. 百炼 API Key:
  • 访问百炼平台
  • 登录你的账号
  • 在 API Key 管理部分复制 API Key
  • 设置为  DASHSCOPE_API_KEY 环境变量
# 设置 AgentBay API Key
export AGENTBAY_API_KEY=your_agentbay_api_key
# 设置 百炼 API Key(用于模型调用)
export DASHSCOPE_API_KEY=your_dashscope_api_key


您也可以创建 .env 文件来管理 API 密钥:

# .env 文件
AGENTBAY_API_KEY=your_agentbay_api_key
DASHSCOPE_API_KEY=your_dashscope_api_key

3. 快速开始

方式一:直接使用 AgentBay Sandbox

最简单的使用方式是直接创建 AgentBay Sandbox 实例:

import os
from agentscope_runtime.sandbox.box.agentbay.agentbay_sandbox import (
    AgentbaySandbox,
)
# 创建 AgentBay Sandbox
sandbox = AgentbaySandbox(
    api_key=os.getenv("AGENTBAY_API_KEY"),
    image_id="linux_latest",  # 或 "browser_latest", "windows_latest" 等
)
# 执行 Shell 命令
result = sandbox.call_tool(
    "run_shell_command",
    {"command": "echo 'Hello from AgentBay!'"},
)
print(result)
# 文件操作
sandbox.call_tool(
    "write_file",
    {"path": "/tmp/test.txt", "content": "Hello World"},
)
# 读取文件
result = sandbox.call_tool("read_file", {"path": "/tmp/test.txt"})
print(result)
# 清理资源
sandbox._cleanup()

方式二:通过 SandboxService 使用

通过 SandboxServiceEnvironmentManager 可以更好地管理沙箱生命周期:

注意:agentscope-runtime 的 sandbox_service 基于 Docker 运行,因此在执行以下代码之前,请确保已启动 Docker 服务。

import asyncio
import os
import logging
from agentscope_runtime.sandbox.enums import SandboxType
from agentscope_runtime.engine.services.sandbox import SandboxService
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
async def main():
        # Create environment manager context
        async with SandboxService(bearer_token=os.getenv("AGENTBAY_API_KEY")) as service:
            # Connect AgentBay sandbox
            sandboxes = service.connect(
                session_id="demo_service_session",
                user_id="demo_user",
                sandbox_types=[SandboxType.AGENTBAY],
            )
            if not sandboxes:
                logger.error("No sandboxes returned by SandboxService")
                return False
            sandbox = sandboxes[0]
            logger.info(
                f"Connected AgentBay sandbox via service: "
                f"{sandbox.sandbox_id}",
            )
            # Basic shell command
            result = sandbox.call_tool(
                "run_shell_command",
                {"command": "echo 'Service path OK'"},
            )
            logger.info(f"Service command result: {result}")
            # File write & read
            write_res = sandbox.call_tool(
                "write_file",
                {"path": "/tmp/svc_test.txt", "content": "hello"},
            )
            logger.info(f"Service write result: {write_res}")
            read_res = sandbox.call_tool(
                "read_file",
                {"path": "/tmp/svc_test.txt"},
            )
            logger.info(f"Service read result: {read_res}")
            # Session info
            info = sandbox.get_session_info()
            logger.info(f"Service session info: {info}")
asyncio.run(main())

具体代码示例可以参照:https://github.com/agentscope-ai/agentscope-runtime/blob/main/examples/agentbay_sandbox/agentbay_sandbox_demo.py

如何使用 AgentScope + AgentBay Sandbox 来构建一个 GUI 智能体

核心步骤主要分为以下几步:

1. 创建智能体类

创建一个继承自基础类的 GUI 智能体,核心结构如下:

async def setup_agent(self):
    """Setup AgentScope agent."""
    try:
        logger.info("Setting up AgentScope agent...")
        # Initialize AgentScope
        init()
        # Create DashScope model
        model = DashScopeChatModel(
            model_name="qwen-max",
            api_key=self.dashscope_api_key,
        )
        # Create DashScope formatter
        formatter = DashScopeChatFormatter()
        # Create agent
        self.agent = agent.ReActAgent(
            name="CloudAssistant",
            sys_prompt="""You are an AI assistant with access to a
            cloud-based sandbox environment. You can help users execute
            commands, manage files, and perform various tasks in the cloud.
            When users ask you to do something, you can use the available
            tools to:
            - Execute shell commands
            - Read and write files
            - List directory contents
            - Create directories
            - Run Python code
            - Take screenshots
            Always explain what you're doing and provide helpful
            responses.""",
            model=model,
            formatter=formatter,
            toolkit=self._get_toolkit(),
        )
        logger.info("AgentScope agent created successfully")
        return True
    except Exception as e:
        logger.error(f"Failed to setup agent: {e}")
        return False

2. 初始化 AgentBay Sandbox

AgentBay Sandbox 的初始化采用显式方式,在智能体启动时创建:

# 在 setup_environment 中
sandboxes = self.sandbox_service.connect(
 session_id="demo_session",
 user_id="demo_user",
 sandbox_types=[SandboxType.AGENTBAY],
 # 注意:如果需要指定镜像类型,可能需要通过其他方式配置
 # AgentBay 会根据需要自动选择合适的镜像
)

3. 封装工具函数

将 AgentBay Sandbox 的工具封装为 AgentScope 的工具函数。每个工具函数需要:

  1. 检查 sandbox 是否已初始化
  2. 调用 sandbox.call_tool() 执行操作
  3. 返回 ToolResponse 对象

使用 AgentScope 的 Toolkit 注册所有工具函数:

def _get_toolkit(self) -> Toolkit:
        """Create and configure toolkit with AgentBay tools."""
        toolkit = Toolkit()
        # Register tool functions
        toolkit.register_tool_function(
            self.execute_command,
            func_description=(
                "Execute shell commands in the cloud environment"
            ),
        )
        toolkit.register_tool_function(
            self.write_file,
            func_description=(
                "Write content to a file in the cloud environment"
            ),
        )
        toolkit.register_tool_function(
            self.read_file,
            func_description=(
                "Read content from a file in the cloud environment"
            ),
        )
       #注册其他工具函数
       ......
        return toolkit

完整的代码示例可以参照:https://github.com/agentscope-ai/agentscope-runtime/blob/main/examples/agentbay_sandbox/agentscope_use_agentbay_sandbox.py

通过集成 AgentBay 和 AgentScope,你可以快速构建一个具备真实 GUI 交互能力的智能体。例如,你可以创建一个“网页自动化助手”智能体,让它自动登录某个网站、填写表单、截图验证结果,并在遇到验证码时暂停执行,等待人类操作员介入处理。整个过程无需本地部署复杂的沙箱环境,所有操作均在阿里云提供的安全、隔离、多平台兼容的 AgentBay 云端环境中完成。

相关链接

系列文章


相关文章
|
自然语言处理 测试技术 API
打通Agent最后一公里: 用阿里云无影AgentBay+LangChain实现浏览器自动化
langchain-agentbay-integration 是一个连接 LangChain 与阿里云无影 AgentBay 的工具包,支持浏览器自动化、代码执行等云端操作,助力开发者高效构建智能代理应用。
1205 0
打通Agent最后一公里: 用阿里云无影AgentBay+LangChain实现浏览器自动化
|
数据采集 人工智能 自然语言处理
3分钟采集134篇AI文章!深度解析如何通过阿里云无影AgentBay实现25倍并发 + LlamaIndex智能推荐
结合阿里云无影 AgentBay 云端并发采集与 LlamaIndex 智能分析,3分钟高效抓取134篇 AI Agent 文章,实现 AI 推荐、智能问答与知识沉淀,打造从数据获取到价值提炼的完整闭环。
957 0
|
2月前
|
机器学习/深度学习 缓存 物联网
打造社交APP人物动漫化:通义万相wan2.x训练优化指南
本项目基于通义万相AIGC模型,为社交APP打造“真人变身跳舞动漫仙女”特效视频生成功能。通过LoRA微调与全量训练结合,并引入Sage Attention、TeaCache、xDIT并行等优化技术,实现高质量、高效率的动漫风格视频生成,兼顾视觉效果与落地成本,最终优选性价比最高的wan2.1 lora模型用于生产部署。(239字)
1085 102
|
2月前
|
人工智能 Java Serverless
AgentScope Java 答疑时间:开发者近期最关心的12个问题
近日,AgentScope Java V1.0 版本正式发布,全面对齐 Python 版核心能力,为 Java 开发者带来了构建企业级 Agentic 应用强大的开源方案。在最近与 DataWhale 合作的 AgentScope Java 解读线上直播间中,我们收到了大家的热情提问。为了方便大家集中查阅,我们整理了其中最高频的 Q&A,由 AgentScope Java 的核心开发者为大家一次性说清讲透!
647 15
|
2月前
|
机器学习/深度学习 安全 API
MAI-UI 开源:通用 GUI 智能体基座登顶 SOTA!
MAI-UI是通义实验室推出的全尺寸GUI智能体基座模型,原生集成用户交互、MCP工具调用与端云协同能力。支持跨App操作、模糊语义理解与主动提问澄清,通过大规模在线强化学习实现复杂任务自动化,在出行、办公等高频场景中表现卓越,已登顶ScreenSpot-Pro、MobileWorld等多项SOTA评测。
2301 7
|
4月前
|
人工智能 安全 Java
分布式 Multi Agent 安全高可用探索与实践
在人工智能加速发展的今天,AI Agent 正在成为推动“人工智能+”战略落地的核心引擎。无论是技术趋势还是政策导向,都预示着一场深刻的变革正在发生。如果你也在探索 Agent 的应用场景,欢迎关注 AgentScope 项目,或尝试使用阿里云 MSE + Higress + Nacos 构建属于你的 AI 原生应用。一起,走进智能体的新世界。
1054 64
|
18天前
|
人工智能 安全 Java
Java 开发者福音:无影 AgentBay 官方 Java SDK 正式发布,无缝集成 Spring AI 与 LangChain4j
阿里云无影AgentBay推出Java SDK,助力Java应用安全接入AI Agent。通过云端沙箱隔离执行环境,解决本地执行的安全、并发与依赖难题,支持Spring AI、LangChain4j等主流框架,实现高并发、可扩展的智能体开发。
278 6
|
11天前
|
开发框架 人工智能 前端开发
双十一欠的淘金币贷款还完了吗?无影 AgentBay SDK 实现 Agent 自动领金币,云手机开发效率起飞!
基于 Mobile Agent 框架与阿里云无影 AgentBay SDK 打造的云手机 GUI 自动化助手。通过 ASP 低延迟画面流与 SDK 指令直通能力,实现 AI 自动执行与人工实时接管的高效协同,有效应对动态 UI 变更、高频弹窗干扰及系统级截图黑屏等挑战。
137 5
|
2月前
|
人工智能 运维 Serverless
AgentScope 拥抱函数计算 FC,为 Agent 应用提供 Serverless 运行底座
AgentScope推出Serverless运行时,直面AI Agent部署成本高、运维复杂、资源利用率低三大痛点。通过“按需启动、毫秒弹性、零运维”架构,实现低成本、高弹性、强隔离的智能体部署,助力多智能体应用从实验迈向规模化落地。

热门文章

最新文章