ByteBot
扫码查看

在Linux容器中操作桌面的AI智能体

ByteBot

综合介绍

ByteBot 是一个开源的、可自行部署的AI桌面智能体。 它通过结合大型语言模型(如Claude 3.5、GPT-4o)和一个在容器中运行的完整Linux桌面环境,来实现用自然语言指令自动化完成复杂的电脑操作。 用户可以像与人沟通一样,用简单的语言向ByteBot下达指令,例如“调研几个竞争对手并制作成表格”或“将这份CSV文件的数据填入网页表单”。 ByteBot会像一个虚拟员工一样,在虚拟的桌面环境中自主地操作鼠标、键盘、浏览器等应用来完成任务,整个过程用户都可以在网页上实时看到。 由于它是自行部署的,所有数据和任务都保留在用户自己的设施中,保证了隐私和安全。同时,用户可以完全控制其运行环境,例如安装特定软件或进行个性化配置,并且可以直接使用自己的大模型API密钥,没有平台使用限制。

功能列表

  • 自然语言控制: 用户仅需用日常语言描述任务,AI即可理解并执行电脑操作。
  • 实时视觉反馈: 用户可以通过网页浏览器实时观看AI在虚拟桌面上的每一步操作,就像在看远程桌面一样。
  • 任务历史记录: 所有执行过的自动化任务都会被记录下来,方便回顾和重新执行。
  • 多AI模型支持: 支持接入多种主流的大语言模型,包括Anthropic的Claude系列、OpenAI的GPT系列以及Google的Gemini系列,用户可根据需求和预算自由选择。
  • 容器化隔离环境: 每个桌面智能体都运行在独立的Docker容器中,与宿主机系统安全隔离,保证了运行的稳定和安全性。
  • 开发者API: 提供REST API接口,允许开发者将桌面自动化能力集成到自己的应用程序或更复杂的工作流中。
  • 环境可扩展: 用户可以轻松地通过修改Dockerfile来扩展虚拟桌面环境,例如安装新的应用程序(如办公套件、设计软件)或添加自定义配置。
  • 跨平台访问: 无需在本地安装任何客户端软件,仅通过浏览器即可访问和管理ByteBot。

使用帮助

ByteBot的设计目标是让普通用户和开发者都能轻松上手,通过简单的指令实现复杂的桌面自动化。以下是详细的安装和使用流程。

一、 安装前的准备

在开始安装之前,请确保你的系统满足以下基本要求:

  1. Docker和Docker Compose: 这是运行ByteBot的基础,它依赖容器化技术来创建一个隔离的桌面环境。请确保已安装 Docker Engine 20.10或更高版本以及 Docker Compose
  2. AI模型API密钥: ByteBot本身是AI智能体的“大脑”和“手脚”,但它的“思考能力”来自于外部的大语言模型。你需要至少拥有以下其中一个AI服务商的API密钥:
    • Anthropic: 用于驱动Claude模型,官方推荐使用 Claude 3.5 Sonnet,因为它在复杂推理和视觉理解方面表现出色。
    • OpenAI: 用于驱动GPT模型,如 GPT-4o 或 GPT-4,适合通用的自动化任务。
    • Google: 用于驱动Gemini模型,如 Gemini 1.5 Pro,在效率和速度上有优势。

二、 快速启动流程

只需两分钟,你就可以启动并运行你的第一个AI桌面智能体。

  1. 克隆项目代码打开你的终端,执行以下命令从GitHub上克隆ByteBot的最新代码:
    git clone https://github.com/bytebot-ai/bytebot.git
    
  2. 进入项目目录
    cd bytebot
    
  3. 配置API密钥你需要创建一个环境文件来存放你的API密钥。ByteBot会读取这个文件来连接对应的AI模型。请根据你拥有的密钥选择其中一条命令执行
    • 如果你使用 Anthropic Claude 的密钥:
      echo "ANTHROPIC_API_KEY=你的密钥" > docker/.env
      
    • 如果你使用 OpenAI GPT 的密钥:
      echo "OPENAI_API_KEY=你的密钥" > docker/.env
      
    • 如果你使用 Google Gemini 的密钥:
      echo "GOOGLE_API_KEY=你的密钥" > docker/.env
      

    请将命令中的 你的密钥 替换为真实的API Key。这个操作会在 docker 目录下创建一个名为 .env 的文件。

  4. 启动服务执行以下命令,Docker Compose会自动拉取所需的镜像并启动所有服务,包括智能体后端、桌面环境和网页用户界面。 -d 参数表示在后台运行。
    docker-compose -f docker/docker-compose.yml up -d
    
  5. 开始使用启动成功后,在你的浏览器中打开以下地址:http://localhost:9992你将看到一个聊天界面和一个嵌入式的桌面实时画面。现在,你可以在聊天框中输入你的指令,然后观察ByteBot如何为你工作。

三、 如何下达有效指令

与ByteBot交互的核心是提供清晰、明确的自然语言指令。例如:

  • 研究任务: "访问TechCrunch网站,找到最近三篇关于AI创业公司的文章,并总结它们的核心业务。"
  • 数据操作: "打开我桌面上的sales_data.csv文件,访问example.com/form网页,并将CSV文件中的前五行数据依次填入表单。"
  • 日常办公: "登录我的Gmail邮箱,搜索来自‘季度报告’主题的邮件,下载附件并将其重命名为‘2025年Q3报告.pdf’。"

四、 高级用法:通过API进行编程控制

对于开发者来说,ByteBot提供了REST API,可以将其自动化能力无缝集成到其他系统中。

你可以通过向 http://localhost:9991/tasks 发送POST请求来创建新任务。

例如,使用Python的requests库:

import requests
import time
# 定义API端点
BASE_URL = "http://localhost:9991"
# 1. 创建一个新任务
task_description = "在谷歌上搜索'ByteBot AI',然后点击第一个GitHub链接"
response = requests.post(
f"{BASE_URL}/tasks", 
json={'description': task_description}
)
if response.status_code == 200:
task_id = response.json()['id']
print(f"成功创建任务,ID: {task_id}")
# 2. 轮询任务状态
while True:
status_response = requests.get(f"{BASE_URL}/tasks/{task_id}")
if status_response.status_code == 200:
status_data = status_response.json()
print(f"任务状态: {status_data['status']}")
if status_data['status'] in ['completed', 'failed']:
print("任务详情:", status_data)
break
else:
print("获取任务状态失败")
break
time.sleep(5)
else:
print("创建任务失败:", response.text)

应用场景

  1. 自动化商业情报收集你可以指令ByteBot定期访问竞争对手的网站、行业新闻门户或社交媒体,抓取最新的产品发布、价格变动或客户评价,并将这些信息整理到指定的文档或电子表格中。
  2. 简化繁琐的数据录入对于需要从不同来源(如PDF文档、电子邮件、网页)提取信息并录入到CRM系统、ERP系统或电子表格中的重复性工作,ByteBot可以完全代劳,准确地完成复制和粘贴操作。
  3. 辅助软件UI测试开发者和测试工程师可以利用ByteBot来自动化用户界面的测试流程。只需用自然语言描述测试用例(如“登录系统,导航到用户设置页面,修改头像,然后退出登录”),ByteBot就能模拟真实用户的操作来执行测试。
  4. 个人生产力助手普通用户可以把它当作一个全能的个人助理,用于处理日常杂务,例如“帮我预定下周三从上海到北京的机票”、“整理我下载文件夹里所有的PDF文件,并按文件名中的日期分类”或“每当这个网站的价格低于50美元时提醒我”。

QA

  1. ByteBot支持哪些操作系统?ByteBot通过Docker运行,因此可以在任何支持Docker的操作系统上部署,包括Linux、macOS和Windows (通过WSL2)。为了获得最佳性能,官方推荐在Linux主机上运行。
  2. 使用ByteBot是免费的吗?ByteBot项目本身是开源的,你可以免费下载和使用它的代码。 但是,它需要调用第三方大型语言模型(如OpenAI的GPT或Anthropic的Claude)的API来获得“智能”,这些API服务通常是按使用量收费的。因此,你的成本主要来自于你所选择的AI模型的API调用费用。
  3. ByteBot如何理解我的电脑屏幕?ByteBot的核心技术之一是利用多模态大语言模型的视觉理解能力。它会截取当前虚拟桌面的屏幕截图,然后将这张图片和你的指令一起发送给AI模型(例如GPT-4o或Claude 3.5 Sonnet)。AI模型会分析图片内容,识别出按钮、文本框、图标等界面元素,然后决定下一步应该执行什么操作(如点击某个坐标或输入文字)。
  4. 我的数据安全吗?非常安全。ByteBot是一个自托管(Self-Hosted)解决方案,所有组件,包括AI智能体和桌面环境,都运行在你自己的服务器或本地计算机上。你的指令、操作数据和API密钥完全不经过任何第三方服务器,从而确保了数据的隐私和安全。
微信微博Email复制链接