
给AI一台专属电脑OpenDots×OpenBot容器化电脑完全教程浏览器/文件/Shell逐点隔离【免费下载链接】OpenDotsYour always-on AI coworkers that move between text, calls, and Slack.项目地址: https://gitcode.com/gh_mirrors/op/OpenDotsOpenDots 是一个开源的持久化 AI 智能体工作台模板每个 AI 同事Dot都拥有一台容器化专属电脑基于 OpenBot 的容器监管服务supervisor与电脑服务构建。这台电脑是一个独立的 Docker 容器浏览器、文件、Shell 三类权限按 Dot 逐点隔离浏览器配置文件和工作区文件在重启后依然保留。本文将带你完成从零搭建到安全验收的完整流程。️ 为什么 AI 需要一台容器化的专属电脑普通聊天机器人只能说而 OpenDots 的 Dot 可以做打开网页、阅读内容、保存笔记、运行命令验证文件。这些能力全部发生在属于该 Dot 的独立容器里而不是你的宿主机上。核心设计一览一 Dot 一容器Dot 的 ID 决定它的容器和持久卷互不可见状态持久化停止/重启容器后工作区文件和浏览器 Cookie、登录态全部保留权限逐点控制浏览器 / 文件 / Shell 三项权限默认全部关闭按需为每个 Dot 单独开启凭证最小化每个 Dot 拿到的是独立派生的凭证主令牌永远留在应用与监管服务内部 隔离架构三个角色各管一摊OpenDots 的容器化电脑由三个部分组成源码见 src/server/computer-service.ts 与 src/server/computer-tools.ts角色职责隔离要点computer-supervisor生命周期管理按需创建/停止每个 Dot 的容器唯一挂载 Docker socket 的组件computer-image每个 Dot 的电脑镜像构建目标不是共享电脑每个 Dot 独立容器 独立命名卷应用app通过监管服务 API 下发动作容器化部署时走内网 DNS无宿主机端口暴露凭证隔离是亮点之一监管服务镜像在构建时应用了一个失败关闭的补丁deployment/computers/harden-supervisor.mjs让每个容器只拿到HMAC-SHA256(主令牌, opendots-computer: dotId)派生的窄凭证——监督令牌、模型密钥、主电脑令牌都不会转发进容器。若上游代码契约变化补丁会直接拒绝构建防止静默降级。容器网络方面compose.computers.yml 将电脑容器放入独立控制网络容器化部署的 overlaycompose.computers-app.yml进一步把控制网络设为 internal电脑容器没有任何发布到宿主的端口只有监管服务能通过服务 DNS 触达它们。 本地搭建给 AI 电脑装系统5 步1. 克隆并初始化项目git clone https://gitcode.com/gh_mirrors/op/OpenDots cd OpenDots npm ci cp .env.example .env2. 配置电脑服务的 4 个环境变量在.env中设置两个令牌必须是不同的、至少 24 位的随机字符串不要用占位值COMPUTER_SUPERVISOR_URLhttp://127.0.0.1:4312 COMPUTER_SUPERVISOR_TOKEN你的随机令牌A COMPUTER_TOKEN另一个随机令牌B COMPUTER_NAMESPACEopendots3. 构建镜像并启动监管服务docker compose -f compose.computers.yml build computer-image computer-supervisor docker compose -f compose.computers.yml up -d computer-supervisor npm run dev注意computer-image只是构建目标不是要长期运行的共享电脑——真正的容器由监管服务在你点击 Start 时动态创建。4. 在 Computer 面板中开启能力打开任意 Dot 的Computer面板启用电脑访问勾选需要的能力浏览器 / 文件 / Shell点击Start。只有确认该 Dot 需要运行命令时才授予 Shell 权限。5. 用自然语言验收对 Dot 说一句在你的电脑里打开某个网站并用两句话总结你会看到实时浏览器视图直接内嵌在对话流里——这就是 AG-UI 的工具渲染能力 进阶把应用也容器化本地开发用宿主应用 循环端口即可生产部署建议让应用也跑在容器里通过 overlay 接入电脑网络docker compose -f compose.yml -f compose.computers.yml -f compose.computers-app.yml \ build computer-image computer-supervisor app browser docker compose -f compose.yml -f compose.computers.yml -f compose.computers-app.yml \ up -d app browser computer-supervisor此时的安全边界是监管服务走独立控制网络应用通过服务 DNS 寻址电脑电脑容器零宿主端口。COMPUTER_NAMESPACE决定容器与卷的命名空间——保持它稳定且每个部署唯一。完整说明见 docs/COMPUTERS.md。 浏览器、文件、Shell逐点权限怎么给Dot 的每一项电脑能力都受独立布尔权限控制定义见 src/shared/computer-types.ts服务端逐次校验服务不可用时动作会明确失败绝不会回落到你的宿主机 Shell 或文件浏览器 导航、截图、元素快照、点击输入URL 仅限 http/httpsCookie 与登录态跨重启保留文件 只能读写工作区相对路径校验拒绝..、反斜杠与绝对路径这些文件不会自动同步到 Spaces 页面Shell ⌨️在该 Dot 自己的容器内执行有界命令最长 8 秒输出、60 秒超时不在宿主机上运行人工接管Takeover是最实用的安全阀你可以随时暂停 Agent 输入自己接管浏览器点击、打字、滚动完成后再交还给 Agent。交还后 Agent 必须重新获取快照才能继续元素操作防止凭旧地图开新车。操作审计Activity记录每个动作的名称、请求者owner/agent与成败结果每 Dot 保留最近 1000 条审计记录刻意排除了输入值、文件内容与完整命令。撤销某项权限会取消该 Dot 的进行中请求并阻断后续动作——注意撤销无法回滚已完成的副作用。✅ 上线前验收清单官方推荐照 docs/COMPUTERS.md 的验证章节建议做一遍双 Dot 对照测试创建两个 Dot 并开启被测能力在电脑 A 写一个文件确认电脑 B 无法列出它停止/重启电脑 A确认文件仍在持久化验证测试浏览器会话跨重启恢复、接管与交还、权限关闭后的拒绝行为确认电脑服务不可用时工具调用返回清晰的错误而非静默跳过⚙️ 安全加固信任边界要诚实官方文档对信任边界的表述非常坦诚模板使用标准 Docker 隔离容器共享宿主内核Shell 权限意味着容器内的程序可访问网络并读取该 Dot 自己的浏览器配置文件。据此给出两条建议在与你信任级别匹配的机器/基础设施上运行需要更强隔离时可设置COMPUTER_RUNTIMErunsc使用已安装的 gVisor 运行时模板不代为安装日常运维还要注意停止电脑会保留文件与浏览器配置模板不提供破坏性重置不要在日常清理中删除命名卷。镜像或主令牌变更时监管服务会在下次 ensure 请求时重建容器但保留卷请与进行中的任务协调好更新时机。总结OpenDots 的容器化电脑方案可以浓缩为一句话每个 AI 同事一台独立容器权限逐点授予凭证逐点派生状态持久保留。从.env四个变量到 Docker Compose 三条命令你既能 10 分钟内搭起本地电脑也能平滑升级到全容器化的生产网络。更多细节可查阅 docs/SETUP.md、deployment/computers/README.md 与演示说明 docs/demos/README.md。【免费下载链接】OpenDotsYour always-on AI coworkers that move between text, calls, and Slack.项目地址: https://gitcode.com/gh_mirrors/op/OpenDots创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考