For the complete documentation index, see llms.txt. This page is also available as Markdown.

5.3 环境配置与安全沙箱

Computer Use 是一把双刃剑。它能帮你工作,也能(理论上)帮你删除所有文件。 因此,严禁在宿主机(Host Machine)上直接运行 Computer Use

官方建议使用最小权限的专用虚拟机或容器进行隔离。官方参考实现(quickstart)基于 Docker,本章也以 Docker 为例。

5.3.1 为什么选 Docker?

  1. 文件隔离:在不挂载宿主目录、凭据目录或浏览器 profile 的前提下,容器有独立的文件系统,Claude 只能看到容器内的 /

  2. 环境一致性:官方参考实现使用 Linux 桌面环境(通常是 X11/Xvfb)和 Docker;其他平台也可以实现自有 harness,但要处理 Retina/DPI/坐标缩放。

  3. 状态重置docker restart 只会重启同一个容器,不会清空可写层。要回到初始状态,应删除并重建容器、使用 --rm 临时容器,或恢复 VM/container 快照。

5.3.2 官方参考实现

Anthropic 开源了一个参考实现,集成了所有必要的组件:一个微型的 Linux (Ubuntu) 桌面、VNC 服务器、noVNC 网页客户端以及 Python 控制代码。

快速启动

# 1. 准备临时 API Key(只放在当前 shell 环境中,不写入镜像或仓库)
export ANTHROPIC_API_KEY="<ANTHROPIC_API_KEY>"

# 2. 拉取并运行镜像。不要挂载 $HOME/.anthropic 等宿主机凭据目录。
docker run \
    -e ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY:?}" \
    -p 127.0.0.1:5900:5900 \
    -p 127.0.0.1:8501:8501 \
    -p 127.0.0.1:6080:6080 \
    -p 127.0.0.1:8080:8080 \
    -it ghcr.io/anthropics/anthropic-quickstarts:computer-use-demo-latest

不要把宿主机的 Claude 配置目录、浏览器资料目录、SSH key、云厂商凭据或长期 token 挂进 Computer Use 容器。上面的端口绑定到 127.0.0.1,避免把 VNC/noVNC/Streamlit 暴露到局域网或公网;远程主机还要配合防火墙和隧道。Computer Use 会操作 GUI 和浏览器,仍需人工监督;涉及敏感账号、生产数据或不可逆操作时,应使用单独测试账号、临时凭据和白名单网络。

API 调用还必须带上官方要求的 Computer Use beta 头,并使用与当前模型匹配的版本化工具名。示例值(以官方文档为准):

端口解析

  • 8080: 组合界面(聊天 + 桌面画面合一),官方推荐的访问入口。

  • 8501: Streamlit 界面。用户与 Claude 交互的聊天窗口。

  • 6080: noVNC 界面。可以在浏览器里看到 Claude 正在操作的“虚拟机桌面”。

  • 5900: 原始 VNC 端口。可以用系统的 VNC 客户端连接。

5.3.3 自定义镜像构建

官方镜像基于 Ubuntu 22.04。如果任务需要特殊的软件(比如 Chrome 浏览器、LibreOffice),需要构建自己的 Dockerfile。

构建并运行:

5.3.4 生产环境安全配置

如果你要在公司内部部署 Computer Use Server,默认配置是不够安全的。

限制网络出站

Claude 可能会通过浏览器访问恶意网站。 策略:使用 Docker Network 规则或防火墙,只允许访问白名单域名(如 github.com, googleapis.com, 公司内网 API)。

最小权限用户

默认容器可能使用 root 运行部分服务。建议创建一个低权限用户 computeruse,并只给予其操作 GUI 和 home 目录的权限。

敏感信息屏蔽

如果屏幕上可能出现 2FA 验证码或密码,需要实现一个中间件,在把截图发给 Claude 之前,对特定区域(比如密码框位置)进行 遮罩处理 (Masking)

5.3.5 常见问题排查

屏幕全黑?

检查 Xvfb 是否启动。Computer Use 依赖虚拟帧缓冲(X Virtual Framebuffer)。 进入容器检查:

点击位置不准?

这通常是分辨率不匹配导致的。 确保:

  1. Docker 容器设置的分辨率(如 WIDTH=1024 HEIGHT=768)。

  2. 传递给 API 的 display_width_pxdisplay_height_px 参数。

  3. 三者必须完全一致。

中文乱码?

官方镜像默认只有英文字体。 解决方法:在 Dockerfile 中安装中文字体:


环境搭建好了,是时候让它干点正事了。我们将通过几个实战案例,看看它到底能做什么。

➡️ 实战:桌面自动化案例

最后更新于