工作站
工作站是数字员工在独立工作模式下的运行载体——一台安装了 Gendial 客户端并注册到平台的物理机或虚拟机。工作站的引入将数字员工的"思考"和"执行"在物理上分离:推理决策在云端完成,工具和技能的实操作业在指定的工作站上执行。
概述
工作站管理入口位于后台管理的 数字员工 页面中的 工作站 标签页。每个用户只能看到和管理自己注册的工作站,工作站不能在不同用户间共享。租户管理员额外拥有 租户工作站管理 视图,可以查看租户内所有用户的工作站。
工作站与工作模式的关系
数字员工有三种工作模式(详见 数字员工设置),其中独立工作模式和灵活工作模式都可以使用工作站:
| 工作模式 | 执行环境 | 使用工作站 |
|---|---|---|
| 助手模式 | 用户本地电脑 | 否 |
| 独立工作模式 | 指定工作站 | 是(必须) |
| 灵活工作模式 | 运行时动态切换 | 是(可选) |
当数字员工选择独立工作模式时,所有工具调用和技能执行都会被路由到指定的工作站。云端负责推理决策,工作站负责落地执行,两者通过 WebSocket 长连接实时通信。
注册工作站
工作站的注册不是在平台上预先创建,而是在客户端首次运行时自动完成的。流程如下:
第一步:安装客户端
在目标机器上安装 Gendial Workbench 客户端程序。安装完成后,客户端会以托盘图标的形式后台运行。
第二步:选择工作模式
首次启动时,客户端会弹出配置向导。在第一步中选择 独立工作站模式,然后使用平台账号登录。
第三步:填写工作站信息
在配置向导的最后一步,填写工作站的名称和描述,以及允许数字员工访问的工作目录范围。点击确认后,客户端会自动在服务端注册该工作站,生成唯一的工作站 ID。
注册完成后,工作站即出现在后台管理的 工作站 标签页中,可以被数字员工选为独立工作模式的执行目标。
工作站状态
工作站的运行状态通过以下指标反映:
- 在线状态:在线(绿色)表示客户端与平台的 WebSocket 连接正常,离线(红色)表示连接中断
- 启用状态:已停用(黄色标签)表示管理员手动停用了该工作站。停用后,即使客户端在线也不会接收任务
- IP 地址:工作站当前的网络地址,用于运维定位
- 操作系统:工作站的操作系统信息(Windows / macOS / Linux)
- 离线时间:最近一次断开连接的时间
点击 刷新 可更新在线状态。
管理操作
启停工作站
在操作菜单中可以选择 启用 或 停用 工作站。停用是一种"软下线"——客户端保持连接,但平台不再向该工作站分发任务。这适用于需要临时维护但不想完全断开连接的场景。
删除工作站
删除工作站将注销该实例,释放工作站 ID。注意:如果有数字员工绑定了该工作站且处于独立工作模式,它们将无法继续执行工具和技能。建议先确认没有活跃的数字员工依赖该工作站。
工作站的所有权和可见性
工作站归属于注册它的用户。在后台管理的工作站列表中,每个用户只能看到自己注册的工作站。租户管理员可以在 租户工作站管理 视图中查看租户内所有用户的工作站及各自的所有者信息。
数字员工分享后的工作站跟随
当用户将数字员工分享给其他用户使用时,如果该数字员工配置了工作站(独立工作模式或灵活工作模式),被分享者在使用该数字员工时会自动使用数字员工配置的工作站,无需自己注册或配置工作站。
这意味着:
- 分享数字员工时,工作站能力会跟随数字员工一起分享
- 被分享者不需要自己注册工作站即可使用数字员工的工具和技能
- 同一数字员工被多个用户使用时,所有会话统一使用该数字员工配置的工作站
隔离设计
对于未分享的场景,工作站的隔离设计仍然有效:
- 用户 A 的工作站不能被用户 B 看到或使用(除非通过分享的数字员工间接使用)
- 如果一个团队需要共享工作站资源,应该由同一个用户(或服务账号)统一注册和管理所有工作站
- 管理员可以对所有工作站进行跨用户的启停和删除操作,用于统一运维场景
容器化工作站
容器化工作站是一种无客户端的工作站形态。当数字员工需要执行工具时,平台自动在 Sandbox 服务器上创建独立的 Docker 容器。容器是按会话隔离的:每次用户与数字员工开始对话,首次工具调用时自动创建一个全新容器。
工作机制
容器化工作站采用**懒创建(Lazy Creation)**机制:容器仅在数字员工首次调用工具时创建,而非会话启动时立即创建。这确保会话启动瞬间响应,容器在后台启动。
- 管理员创建容器化工作站记录并分配给数字员工
- 用户打开数字员工对话——会话开始,尚未创建容器
- 首次调用工具(如 bash、read、write)时,平台自动创建 Docker 容器
- 容器启动 Gendial Workbench,通过 WebSocket 连接平台
- 该会话的所有后续工具调用都在此容器中执行
- 用户断开连接后,容器保留 3 分钟以支持快速重连
- 3 分钟空闲后,或 3 分钟无工具调用活动,容器自动销毁
这种按需创建、自动回收的模式确保:
- 无跨用户数据泄露(每个会话独立容器)
- 无空闲资源浪费(断开后自动销毁)
- 快速重连(3 分钟缓冲期内复用已有容器)
资源配额
每个临时容器分配:
| 资源 | 限额 |
|---|---|
| 内存 | 256 MB |
| CPU | 0.5 核 |
| 进程数 | 30 |
创建容器化工作站
该功能仅限租户管理员和智能体管理员使用。
- 进入 数字员工 页面,切换到 工作站 标签页
- 点击顶部右侧的 创建容器化工作站 按钮
- 填写工作站名称和描述
- 在"指定用户账号"输入框中搜索并选择要分配的用户
- 点击保存
工作站记录创建完成。容器在首次使用时自动创建,无需手动管理容器生命周期。
容器化工作站 vs 物理工作站
| 物理工作站 | 容器化工作站 | |
|---|---|---|
| 创建方式 | 客户端注册 | 平台创建 |
| 运行位置 | 用户本地机器 | Sandbox 服务器 |
| 生命周期 | 用户控制 | 按会话创建,空闲后自动销毁 |
| 隔离性 | 共享机器 | 每次会话独立容器 |
| 谁可创建 | 所有用户 | 仅管理员 |
| 用户分配 | 注册者本人 | 管理员指定 |
| 适用场景 | 需要本地资源、GUI 应用 | 纯后台计算、批量任务 |
容器化工作站的限制
由于容器环境的特点,以下工具和功能不适用于容器化工作站:
| 限制 | 说明 |
|---|---|
| Playwright / Puppeteer | 需要 Chromium 浏览器及系统 GUI 库 |
| GUI 应用程序 | 需要 X11/Wayland 显示服务 |
| Docker 命令 | 容器内无 Docker 守护进程 |
| 硬件直通 | USB、串口、GPU 等硬件不可用 |
如需使用上述功能,请使用物理工作站。bash、Python、Node.js、Git 等命令行工具和大多数 MCP Server 均可正常运行。
预装运行库
容器镜像预装了常用的数据科学和文件处理库,开箱即用:
Python:numpy, pandas, scipy, scikit-learn, matplotlib, seaborn, plotly, Pillow, opencv-python, openpyxl, xlrd, python-docx, python-pptx, PyPDF2, pdfplumber, requests, beautifulsoup4, lxml, pyyaml, tabulate, rich, sympy
系统工具:git, curl, wget, poppler-utils, imagemagick, jq, unzip, p7zip-full
容器管理(超级管理员)
超级管理员可通过管理面板中的容器管理页面查看和管理所有运行中的临时容器:
- 查看服务器资源使用情况(内存、CPU、容器数量)
- 列出所有运行中的容器及其会话、用户、智能体信息
- 手动销毁容器
孤儿容器(如 Redis 数据丢失但容器仍在运行)会在 2 小时后自动清理。
Daemon 配置
Sandbox 守护进程只需配置一个环境变量:
GENDIAL_SERVER_ADDRESS=http://your-server:3333在 daemon 的 .env 文件中设置此变量,容器即知道连接目标。gendial 服务器端无需额外配置。
删除容器化工作站
删除操作和物理工作站相同。已分配给该工作站的数字员工将无法继续使用容器执行工具调用。