openclaw 是专注浏览器交互的开源ai agent工具,支持docker(开箱即用)和源码部署(可调试、需手动安装chromium);docker需传llm_api_key和llm_base_url,源码部署须用venv隔离并执行playwright install chromium。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

OpenClaw 是一个面向自动化测试与 Web 操作的开源 AI Agent 工具,常被用于网页端 UI 自动化、RPA 类任务执行;它和 OpenHands 同属 All-Hands-AI 社区生态,但定位不同——OpenClaw 专注浏览器交互,不涉及代码编辑或终端命令执行。你若在本地部署时纠结该选 Docker 还是源码方式,本质是在权衡环境稳定性与调试可控性:前者省心但黑盒,后者灵活但易卡在依赖链上。
Docker 部署:开箱即用,隔离运行
方法一:单命令拉起官方镜像(推荐新手)
执行:docker pull docker.all-hands.dev/all-hands-ai/openclaw:0.39-nikolaik → docker run -p 3001:3001 -e LLM_API_KEY=sk-xxx -e LLM_BASE_URL=https://api.openai.com/v1 --rm docker.all-hands.dev/all-hands-ai/openclaw:0.39-nikolaik
这一步会直接启动带 Chromium 浏览器环境的容器,Web GUI 默认监听本机 3001 端口。注意:必须传入 【LLM_API_KEY 和 LLM_BASE_URL】,否则容器启动后立即退出,且无错误日志提示。
方法二:用 docker-compose 管理多服务(适合需持久化配置场景)
新建 docker-compose.yml,写入 service 定义并挂载 ./config:/app/config 目录 → docker-compose up -d 启动。
挂载配置目录后,每次重启容器不会丢失你改过的 browser_path 或 timeout 设置;但要注意宿主机 Chrome 版本必须与容器内 Chromium 兼容,否则 Puppeteer 启动失败且报错模糊。
本地源码部署:可调试、可断点、可魔改
第一步:克隆仓库并进入项目目录git clone https://github.com/All-Hands-AI/OpenClaw.git → cd OpenClaw
第二步:创建并激活 Python 环境python3 -m venv .venv → source .venv/bin/activate(Linux/macOS)或 .venv\Scripts\activate(Windows)
这一步不能跳过,因为 OpenClaw 依赖的 playwright 会绑定特定版本的 Chromium,全局 Python 环境容易与其他项目冲突。
第三步:安装依赖并下载浏览器二进制pip install -e ".[dev]" → playwright install chromium
【必须手动执行 playwright install】,仅 pip install 不会自动下载浏览器,后续运行时会卡在 launch_browser() 并抛出 TimeoutError。
第四步:启动本地服务uvicorn openclaw.server:app --host 0.0.0.0 --port 3001 --reload
--reload 参数只在源码模式下有效,Docker 镜像里默认关闭热重载以节省内存;改完 Python 文件后保存,服务会自动重启,适合边调边试。
关键差异速查表
容器内进程不可直接 attach 调试,而源码部署时可用 VS Code 的 Python Debugger 断点进 openclaw/agent/agent.py 的 run_step() 方法;
Docker 镜像已预编译前端资源,修改 React 组件需 rebuild 镜像,源码部署则只需 npm run dev 单独启前端;
源码部署中 PLAYWRIGHT_DOWNLOAD_HOST 环境变量可指定国内镜像源加速 Chromium 下载,Docker 方式需改写 Dockerfile 才能生效。










