Bytebot:开源自托管 AI 桌面智能体(自带 Ubuntu 虚拟桌面)
Bytebot 是一个自托管的 AI 桌面智能体,运行在容器化的 Ubuntu Linux 虚拟桌面中,通过自然语言命令操作真实应用程序、文件系统和浏览器来完成任务。项目采用 Apache 2.0 许可证,内置虚拟桌面、AI Agent(NestJS)、任务界面(Next.js)与 REST API 四大组件,支持 Claude、GPT、Gemini,并可通过 LiteLLM 接入 Azure OpenAI、AWS Bedrock、Ollama 本地模型等 100+ 提供商,提供 Railway、Docker Compose 与 Kubernetes/Helm 三种部署方式。
社区作者 · zZz
它解决什么问题
项目概览
Bytebot 是「拥有自己电脑的 AI」——一个自托管(self-hosted)的 AI 桌面智能体。与仅能操作浏览器的 agent 或传统 RPA 工具不同,Bytebot 自带一套完整的虚拟桌面,可以像人类一样看屏幕、移动鼠标、敲键盘,从而完成跨应用的复杂多步工作流。
配图 1 为项目 Logo。官网、文档、Discord、X(Twitter)等入口见仓库说明。
它为什么需要一台「自己的电脑」
一个桌面智能体意味着 AI 拥有完整虚拟桌面,可以:
- 使用任意应用(浏览器、邮件客户端、办公工具、IDE)
- 下载并用自带文件系统整理文件
- 通过密码管理器登录网站和应用
- 读取与处理文档、PDF、电子表格
- 跨不同程序完成复杂的多步工作流
四大组件架构
- **虚拟桌面**:完整的 Ubuntu Linux 环境,预装常用应用;技术栈为 Ubuntu 22.04 + XFCE、Firefox、VS Code 等工具
- **AI Agent**:NestJS 服务,负责理解任务并协调 AI 与桌面动作
- **任务界面**:Next.js 应用,用于创建任务并实时观看 Bytebot 工作
- **APIs**:REST 端点,用于以编程方式创建任务与控制桌面
核心特性
- **自然语言任务**:直接描述你要完成的事
- **文件上传**:把文件拖到任务里交给 Bytebot 处理
- **实时桌面视图**:实时观看 Bytebot 操作
- **接管模式(Takeover Mode)**:需要人工协助或配置时可接管桌面
- **密码管理器支持**:可安装 1Password、Bitwarden 等实现自动认证(含 2FA)
- **持久化环境**:安装的程序会保留,供后续任务继续使用
能力示例
完整任务自主性
给出「从我们的供应商门户下载全部发票并整理到一个文件夹」这类任务时,Bytebot 会:打开浏览器 → 逐个访问门户 → 处理认证(含通过密码管理器完成 2FA)→ 把文件下载到本地文件系统 → 整理进文件夹。
文档处理
把文件上传到 Bytebot 桌面后,它可以:将整份 PDF 读入上下文、从复杂文档中抽取数据、跨多个文件交叉比对信息、基于分析创建新文档、处理 API 无法访问的格式。
使用真实应用
Bytebot 不局限于 Web 界面,还可以使用文本编辑器、VS Code、邮件客户端等桌面应用,运行脚本和命令行工具,按需安装新软件,并为特定工作流配置应用。
示例任务(原文示例)
基础类:
- "Go to Wikipedia and create a summary of quantum computing"
- "Research flights from NYC to London and create a comparison document"
- "Take screenshots of the top 5 news websites"
文档处理类:
- "Read the uploaded contracts.pdf and extract all payment terms and deadlines"
- "Process these 5 invoice PDFs and create a summary report"
- "Download and analyze the latest financial report and answer: What were the key risks mentioned?"
多应用工作流类:
- "Download last month's bank statements from our three banks and consolidate them"
- "Check all our vendor portals for new invoices and create a summary report"
- "Log into our CRM, export the customer list, and update records in the ERP system"
编程控制
通过任务 API 创建任务(Python 示例,端口 9991):
import requests
# Simple task
response = requests.post('http://localhost:9991/tasks', json={
'description': 'Download the latest sales report and create a summary'
})
# Task with file upload
files = {'files': open('contracts.pdf', 'rb')}
response = requests.post('http://localhost:9991/tasks',
data={'description': 'Review these contracts for important dates'},
files=files
)直接控制桌面(computer-use API,端口 9990):
# Take a screenshot
curl -X POST http://localhost:9990/computer-use \
-H "Content-Type: application/json" \
-d '{"action": "screenshot"}'
# Click at specific coordinates
curl -X POST http://localhost:9990/computer-use \
-H "Content-Type: application/json" \
-d '{"action": "click_mouse", "coordinate": [500, 300]}'配置你的桌面智能体(三步)
- **部署 Bytebot**:使用下述任一部署方式把 Bytebot 跑起来。
- **配置桌面**:在 UI 的 Desktop 标签中安装所需程序、设置用于认证的密码管理器、按偏好配置应用、登录希望 Bytebot 访问的网站。
- **开始派发任务**:用自然语言创建任务,观看 Bytebot 在配置好的桌面上完成它们。
为什么选择自托管
- **数据隐私**:一切运行在你自己的基础设施上
- **完全控制**:按需定制桌面环境
- **没有限制**:使用自己的 AI API Key,不受平台限制
- **灵活**:可安装任意软件、访问任意系统
高级能力
**多 AI 提供商**:通过 LiteLLM 集成接入任意提供商,包括 Azure OpenAI、AWS Bedrock、Ollama 本地模型以及 100+ 其他提供商。
**企业部署**:支持在 Kubernetes 上用 Helm 部署。
社区与贡献
可通过 Discord 获取帮助与讨论,文档位于 docs.bytebot.ai,Bug 与功能请求走 GitHub Issues。项目欢迎 Bug 修复、新功能、文档改进与多语言翻译等贡献;建议先查看已有 issue、就重大改动开 issue 讨论、提交描述清晰的 PR。
许可证
Bytebot 以 Apache 2.0 许可证开源,由 Tantl Labs 与开源社区构建。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
准备工作
- 一台可运行 Docker 的机器(Docker Compose 部署方式),或 Railway 账号,或 Kubernetes 集群 + Helm(企业部署方式)。
- 一个 AI 提供商 API Key,三选一:Anthropic(ANTHROPIC_API_KEY)、OpenAI(OPENAI_API_KEY)、Google Gemini(GEMINI_API_KEY)。
- 自行确认可用端口:UI 9992、任务 API 9991、桌面控制 API 9990。
方式一:Railway(最简单,约 2 分钟)
- 点击仓库中的 Railway 部署按钮(配图 2)。
- 部署过程中填入你的 AI provider API key 即可。
方式二:Docker Compose
# 1. 克隆仓库
git clone https://github.com/bytebot-ai/bytebot.git
cd bytebot
# 2. 写入 AI provider key(三选一;注意原文档等号两侧带空格)
echo " ANTHROPIC_API_KEY=sk-ant-... " > docker/.env
# 或者: echo "OPENAI_API_KEY=sk-..." > docker/.env
# 或者: echo "GEMINI_API_KEY=..." > docker/.env
# 3. 启动容器(后台运行)
docker-compose -f docker/docker-compose.yml up -d
# 4. 打开界面
# http://localhost:9992完整部署指南见仓库链接的官方部署文档。
方式三:Kubernetes + Helm(企业部署)
# Clone the repository
git clone https://github.com/bytebot-ai/bytebot.git
cd bytebot
# Install with Helm
helm install bytebot ./helm \
--set agent.env.ANTHROPIC_API_KEY=sk-ant-...更多细节见企业部署指南。
首次运行与初始化(必须按顺序)
- 部署完成后打开 http://localhost:9992 进入 Web UI。
- 在 UI 的 **Desktop 标签**中配置桌面环境:安装你需要的额外程序、设置密码管理器以完成自动认证、按偏好配置应用、登录希望 Bytebot 访问的网站。
- 在 UI 中创建自然语言任务并执行;需要人工介入时可使用接管模式(Takeover Mode)临时接管桌面。
- 首次运行后安装的程序会保留在持久化环境中,后续任务仍可用(可在「配置桌面」阶段一次性装好常用工具)。
编程调用入口
- 创建任务:
POST http://localhost:9991/tasks(JSON 字段description;可同时上传files) - 桌面控制:
POST http://localhost:9990/computer-use,例如{"action": "screenshot"}或{"action": "click_mouse", "coordinate": [500, 300]}
常见问题
- **换 AI 提供商**:除内置的 Anthropic Claude、OpenAI GPT、Google Gemini 外,可通过 LiteLLM 集成接入 Azure OpenAI、AWS Bedrock、Ollama 本地模型以及 100+ 其他提供商。
- **登录需要 2FA 的网站**:在桌面中安装并配置 1Password、Bitwarden 等密码管理器,让 Bytebot 自动完成认证。
- **演示与效果**:仓库提供两段演示视频(bytebot_github_login.mp4、bytebot_uc_2.mp4)展示登录与用例流程;页面未给出对应的视频提示词。
- **最小硬件配置、GPU 要求、具体镜像体积等信息**:来源未明确,待核验。