核心特点
- 开源与本地部署:代码完全开源,允许用户在自己的服务器或本地机器上运行,保障数据隐私和安全。
- 多模型支持:不仅支持 OpenAI API 格式的模型(如 GPT 系列),还深度集成 Ollama,能够方便地拉取和运行数百种开源模型(如 Llama 3、Qwen、Gemma 等)。
- 统一的 WebUI:提供了一个类似 ChatGPT 的现代化聊天界面,让用户可以通过一个入口与后端的所有模型进行交互。
- OpenAI API 兼容:后端服务完全兼容 OpenAI API 格式,这意味着任何使用 OpenAI SDK (如
openaiPython 库)的应用,只需更改 API Base URL,就可以无缝切换到 OpenClaw 部署的模型。 - 易于安装与扩展:项目通常采用 Docker 或 Docker Compose 进行部署,极大简化了环境配置,模块化设计也便于功能扩展。
系统架构(理解各组件)
一个典型的 OpenClaw 部署包含以下几个核心组件:

- Ollama:负责在本地拉取、管理和运行各种开源大语言模型,它是 OpenClaw 的“模型引擎”。
- OpenClaw 后端:核心服务,提供以下功能:
- 统一的 API 网关(兼容 OpenAI API)。
- 管理对话历史、用户会话。
- 将前端的请求路由到对应的模型服务(如 Ollama)。
- OpenClaw WebUI:基于 Next.js 等框架构建的前端聊天界面,用户直接操作的部分。
- 数据库:通常使用 SQLite 或 PostgreSQL 来存储用户、对话、配置等信息。
基本使用流程
第一步:环境准备与安装
前提条件:确保你的机器上已安装 Docker 和 Docker Compose。
-
获取代码:
git clone https://github.com/opendatalab/OpenClaw.git cd OpenClaw
-
配置环境变量: 复制示例配置文件并根据需要修改,关键配置项包括:
- 数据库连接信息。
- 服务监听的端口。
- 默认模型设置。
cp .env.example .env # 使用文本编辑器修改 .env 文件
-
启动服务: 使用 Docker Compose 一键启动所有服务(后端、前端、数据库等)。
docker-compose up -d
首次运行会下载所需的 Docker 镜像,可能需要一些时间。
-
访问 WebUI: 启动成功后,在浏览器中打开
http://localhost:3000(默认端口),你应该能看到聊天界面。
第二步:配置与连接模型
OpenClaw 本身不“包含”模型,它需要连接到模型服务。
-
启动 Ollama 并拉取模型:
- 如果你通过 Docker Compose 部署,Ollama 可能已作为服务启动。
- 你需要进入 Ollama 容器或在宿主机上安装 Ollama 命令行工具,来拉取你想要的模型。
# 拉取 Llama 3 8B 模型 docker exec <ollama_container_name> ollama pull llama3:8b # 或者如果宿主机安装了 ollama ollama pull qwen2.5:7b
-
在 OpenClaw 中添加模型:
- 登录 OpenClaw WebUI(首次使用可能需要注册/登录)。
- 通常在管理后台或模型设置页面,你需要添加一个“模型提供商”。
- 提供商类型选择
Ollama。 - API 地址填写你的 Ollama 服务地址,
http://ollama:11434(如果在同一 Docker 网络)或http://localhost:11434。 - 保存后,OpenClaw 会自动从该 Ollama 实例发现已拉取的模型,并将其添加到可用模型列表中。
第三步:开始使用
-
在 WebUI 中聊天:
- 在聊天界面左上角或模型选择区域,从下拉列表中选择你刚添加的模型(如
llama3:8b)。 - 在输入框中输入问题,开始对话,体验与 ChatGPT 非常相似。
- 在聊天界面左上角或模型选择区域,从下拉列表中选择你刚添加的模型(如
-
通过 API 调用(编程方式): OpenClaw 的核心优势之一是提供兼容 OpenAI 的 API。
- API Base URL:
http://<你的服务器地址>:<后端端口>/v1 - API Key: 默认情况下,很多开源项目为了简化,可能允许空 Key 或固定 Key(如
sk-no-key-required),具体请查看项目文档,生产环境建议配置认证。
Python 调用示例:
from openai import OpenAI # 将 base_url 指向你部署的 OpenClaw 后端 client = OpenAI( api_key="sk-no-key-required", # 根据你的配置修改 base_url="http://localhost:8000/v1" # 默认后端端口可能是 8000 或 3001 ) response = client.chat.completions.create( model="llama3:8b", # 使用你在 OpenClaw 中配置的模型名称 messages=[ {"role": "user", "content": "你好,请介绍一下你自己。"} ] ) print(response.choices[0].message.content)cURL 调用示例:
curl http://localhost:8000/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-no-key-required" \ -d '{ "model": "llama3:8b", "messages": [ {"role": "user", "content": "Hello!"} ] }' - API Base URL:
进阶管理与配置
- 用户与权限:可以配置多用户系统、API 密钥管理、访问控制等。
- 对话持久化:所有聊天记录会保存在数据库中,可以在 WebUI 中查看历史会话。
- 模型参数调整:在调用 API 时,可以传入
temperature,top_p,max_tokens等参数来控制模型生成行为。 - 集成其他模型服务:除了 Ollama,理论上可以配置 OpenClaw 连接到其他提供 OpenAI 兼容 API 的服务,如本地部署的 vLLM、Together.ai 的 API 等。
- 查看日志:使用
docker-compose logs -f来查看各个容器的运行日志,便于排查问题。
注意事项
- 硬件要求:运行大模型需要强大的硬件,特别是 GPU 内存(VRAM),运行 7B 模型建议至少有 8GB VRAM,运行 70B 模型则需要更多。
- 首次模型下载:通过 Ollama 拉取大型模型文件(数GB到数十GB)需要较长时间和稳定的网络。
- 版本差异:OpenClaw 项目可能快速迭代,具体命令、配置文件和功能请务必以你克隆的仓库中的
README.md和官方文档为准。 - 安全:如果将服务暴露到公网,请务必配置强密码、HTTPS 和防火墙规则,防止未授权访问。
OpenClaw 的本质是一个 “胶水”框架,它将好用的开源模型(通过 Ollama)、一个统一的 API 接口和一个美观的 Web 界面粘合在一起,极大简化了在私有环境中构建和测试大模型应用的门槛,对于想要进行本地开发、测试或构建内部 AI 工具的开发者和团队来说,它是一个非常优秀的选择。
开始使用的最佳路径是:准备Docker环境 -> 克隆项目并启动 -> 通过Ollama拉取一个小模型(如 Llama 3 8B)-> 在WebUI中测试 -> 最后尝试用API进行编程调用。