公司动态
OpenClaw本地AI智能体部署指南:从Docker安装到飞书机器人实战
1. 项目概述从零到一构建你的本地AI智能体最近在AI圈子里OpenClaw小龙虾这个开源项目热度不低。很多朋友都在问这玩意儿到底怎么装、怎么用它和那些网页版的AI助手有什么区别简单来说OpenClaw是一个可以部署在你本地电脑或服务器上的AI智能体框架。它不是一个单一的聊天机器人而是一个“大脑”可以连接你本地的Ollama大模型或者通过API接入云端模型然后通过安装不同的“技能”Skill让这个大脑去帮你自动化处理各种任务比如自动回复飞书/微信消息、处理电商客服、生成图片甚至是执行一些系统操作。我花了几天时间从零开始在Mac和Ubuntu服务器上都部署了一遍踩了不少坑也总结出了一套相对稳定、高效的搭建流程。这篇文章我就以一个一线开发者的视角带你完整走一遍OpenClaw的搭建、配置和基础玩法全过程。无论你是想把它当作一个24小时在线的个人助理还是研究AI Agent的自动化潜力这篇实操指南都能让你少走弯路快速上手。2. 核心思路与方案选型为什么选择OpenClaw在决定动手之前我们得先搞清楚OpenClaw到底能解决什么问题以及它为什么值得折腾。市面上类似的AI Agent框架还有LangChain、AutoGen等OpenClaw的特点在于它更偏向于“开箱即用”和“技能化”。它的核心设计思想是一个轻量级的主程序Claw负责调度和通信各种具体能力由独立的Skill来提供。这种模块化设计让它的扩展性非常好社区也在不断贡献新的Skill。2.1 本地部署 vs 云端API这是第一个要做的选择。OpenClaw支持两种模式纯本地模式核心大脑LLM使用本地运行的模型比如通过Ollama部署的Llama 3、Qwen等。所有数据都在本地隐私性最好完全免费不考虑电费但依赖本地显卡算力响应速度和处理复杂任务的能力受硬件限制。混合/云端模式OpenClaw主程序在本地运行但通过API调用云端大模型如DeepSeek、GPT、Kimi等。这种方式能力强大、响应快但会产生API费用并且对话内容会经过第三方服务器。我的建议是如果你是学习、研究或者对隐私要求极高优先选择本地模式。用Ollama跑一个7B参数左右的模型在现在的消费级显卡上已经能有不错的表现。如果你需要处理复杂的逻辑或追求更流畅的体验可以考虑混合模式让OpenClaw根据任务类型智能选择调用本地模型简单问答或云端模型复杂分析。2.2 Docker部署 vs 原生安装OpenClaw官方推荐使用Docker部署这是最省心、环境最干净的方式能完美解决“在我机器上好好的”这类问题。但如果你需要深度定制或者宿主机环境特殊也可以选择原生安装。Docker部署推荐优点是一键拉起隔离性好升级和迁移方便。特别适合在云服务器Ubuntu上部署。你只需要关心镜像和容器不用操心Python版本、依赖冲突这些破事。原生安装更适合开发者方便你阅读和调试源码快速开发自己的Skill。但在Mac或Windows上可能会遇到各种环境配置的坑。考虑到我们大多数人的首要目标是“快速用起来”本指南将以Docker部署作为主线同时会穿插讲解原生安装的关键步骤和避坑点。3. 环境准备与依赖安装工欲善其事必先利其器。在拉取OpenClaw镜像之前我们需要确保基础环境就绪。这里我分两个场景讲解使用Docker的通用准备以及为后续连接本地大模型所做的特殊准备。3.1 基础环境准备Docker必选无论你在Mac、Windows还是Linux上使用Docker部署的第一步就是安装Docker Engine和Docker Compose。Mac/Windows直接去Docker官网下载并安装 Docker Desktop 。安装后启动确保桌面右上角Docker图标正常运行。Ubuntu/Linux通过命令行安装。# 更新软件包索引 sudo apt-get update # 安装依赖工具 sudo apt-get install ca-certificates curl # 添加Docker官方GPG密钥 sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc sudo chmod ar /etc/apt/keyrings/docker.asc # 设置存储库 echo \ deb [arch$(dpkg --print-architecture) signed-by/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \ $(. /etc/os-release echo $VERSION_CODENAME) stable | \ sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 将当前用户加入docker组避免每次都用sudo sudo usermod -aG docker $USER # 退出当前终端重新登录使组权限生效安装完成后运行docker --version和docker compose version验证是否成功。注意将用户加入docker组是一个便利操作但意味着该用户拥有了很高的权限。在生产环境或多人使用的服务器上请谨慎评估。3.2 本地大模型引擎准备Ollama如果你打算使用本地模型那么Ollama是目前最方便的工具。它就像是一个本地的大模型应用商店和管理器。安装OllamaMac/Linux直接在终端执行一键安装脚本curl -fsSL https://ollama.com/install.sh | sh。Windows从Ollama官网下载安装包。拉取一个模型安装后拉取一个适合你硬件的基础模型。例如Llama 3.1 8B是一个不错的起点。ollama pull llama3.1:8b这个命令会下载约4.7GB的模型文件。你可以根据你的显卡内存VRAM选择模型8G显存可以考虑7B/8B模型16G以上可以尝试更大的模型。运行并测试Ollama# 启动Ollama服务通常安装后会自动运行 ollama serve # 另开一个终端测试模型是否正常工作 ollama run llama3.1:8b在交互界面输入“Hello”看是否能得到正常回复。确认Ollama服务在本地正常运行默认地址是http://localhost:11434。3.3 获取OpenClaw部署文件OpenClaw的Docker部署通常需要一个docker-compose.yml配置文件。你可以从OpenClaw的GitHub仓库获取最新的示例文件。# 创建一个项目目录 mkdir openclaw-deploy cd openclaw-deploy # 下载官方的docker-compose示例文件请以仓库最新文件为准 curl -o docker-compose.yml https://raw.githubusercontent.com/openclaw-ai/openclaw/main/docker-compose.yml下载后不要急着启动我们需要先根据自身需求修改这个配置文件这是最关键的一步。4. 核心配置解析与实操部署现在进入核心环节配置和启动OpenClaw。一切的魔法都始于那个docker-compose.yml文件。4.1 解读与修改docker-compose.yml用文本编辑器打开下载的docker-compose.yml。一个典型的简化版配置可能长这样version: 3.8 services: openclaw: image: openclaw/openclaw:latest container_name: openclaw restart: unless-stopped ports: - 3000:3000 # Web管理界面端口 environment: - OLLAMA_BASE_URLhttp://host.docker.internal:11434 # 连接本地Ollama的关键 - DEFAULT_MODELllama3.1:8b # 默认使用的模型 - OPENCLAW_LOG_LEVELINFO volumes: - ./data:/app/data # 挂载数据卷持久化配置和会话 - ./skills:/app/skills # 挂载技能目录方便自定义这里有几个关键配置点需要你根据实际情况调整OLLAMA_BASE_URL这是容器内服务访问宿主机Ollama的地址。在Mac/Windows的Docker Desktop上使用http://host.docker.internal:11434是标准做法这是一个Docker提供的特殊域名指向宿主机。在Linux服务器上Docker Desktop的host.docker.internal可能不生效。你需要使用宿主机的真实IP地址或者使用network_mode: host模式但会带来端口管理问题。更推荐的方法是使用宿主机的网关IP通常是172.17.0.1或docker0网桥的IP。可以先运行ip addr show docker0查看其inet地址。假设是172.17.0.1则配置为- OLLAMA_BASE_URLhttp://172.17.0.1:11434。务必确保宿主机的防火墙如ufw允许容器网络访问11434端口例如sudo ufw allow from 172.17.0.0/16 to any port 11434。DEFAULT_MODEL必须与Ollama中已拉取的模型名称完全一致。如果你拉取的是qwen2.5:7b这里就要改成qwen2.5:7b。端口映射3000:3000将容器内的Web服务映射到宿主机的3000端口。如果宿主机3000端口已被占用可以改为8080:3000这样你就要通过http://localhost:8080访问。数据卷挂载强烈建议挂载./data和./skills。这样你的所有配置、对话历史、安装的技能在容器重建后都不会丢失。4.2 启动OpenClaw服务配置修改保存后在docker-compose.yml所在目录执行启动命令docker compose up -d-d参数代表后台运行。执行后Docker会拉取OpenClaw镜像如果本地没有并启动容器。使用以下命令查看状态和日志# 查看容器状态 docker compose ps # 应该看到 openclaw 状态为 “running” # 查看实时日志用于排查启动问题 docker compose logs -f openclaw如果日志最后显示服务已在3000端口监听没有报错那么恭喜你部署成功了打开浏览器访问http://localhost:3000或你自定义的端口就能看到OpenClaw的Web管理界面。4.3 原生安装方案备选如果你因为某些原因必须用原生安装可以遵循以下步骤。前提是系统已有Python 3.10和Git。# 1. 克隆仓库 git clone https://github.com/openclaw-ai/openclaw.git cd openclaw # 2. 创建虚拟环境推荐 python -m venv venv source venv/bin/activate # Linux/Mac # venv\Scripts\activate # Windows # 3. 安装依赖 pip install -r requirements.txt # 4. 配置环境变量 export OLLAMA_BASE_URLhttp://localhost:11434 export DEFAULT_MODELllama3.1:8b # 5. 启动 python main.py原生安装的坑主要在于依赖冲突特别是某些系统级的库。如果遇到问题优先检查Python版本和pip版本并尝试在全新的虚拟环境中操作。5. 基础配置与技能管理成功进入Web界面后我们首先需要进行基础配置并安装核心的“技能”让OpenClaw真正具备能力。5.1 首次运行与模型连接测试首次打开Web界面可能会引导你进行初始设置。核心是确认大模型连接是否正常。进入设置或对话界面通常在侧边栏能找到“Settings”或直接开始“New Chat”。测试对话在聊天框输入简单问题如“你好请介绍下你自己”。如果配置正确OpenClaw会调用你设定的DEFAULT_MODEL如Llama 3.1来生成回复。排查连接失败如果长时间无响应或报错最常见的问题是OLLAMA_BASE_URL配置不对。你需要回到终端检查。在OpenClaw容器内执行命令测试连通性docker exec openclaw curl -s http://host.docker.internal:11434/api/tags这个命令会尝试从容器内部调用Ollama的API列出可用模型。如果返回成功并看到你的模型名说明网络连通。如果失败返回Connection refused就要检查之前的网络配置和防火墙设置。5.2 技能Skill的安装与配置技能是OpenClaw的灵魂。官方和社区提供了很多技能比如连接飞书、微信、处理邮件、生成图像等。通过Web界面安装最简单在Web界面的“Skills”或“插件”商店页面通常会列出可用的技能。找到你需要的如“Feishu”飞书或“WeChat”点击安装。系统会自动从技能仓库拉取。通过命令行安装更可控有些技能可能需要额外的配置或者你想安装特定版本。首先进入容器内部docker exec -it openclaw /bin/bash然后使用OpenClaw的命令行工具安装技能。假设技能商店里有一个技能ID叫feishuclaw skill install feishu安装后通常需要配置。技能配置可能通过环境变量或是一个独立的配置文件。你需要查阅该技能的文档通常在GitHub仓库的skills/目录下或有Wiki链接。例如飞书技能需要配置FEISHU_APP_ID和FEISHU_APP_SECRET等环境变量。方法一推荐将环境变量添加到docker-compose.yml中openclaw服务的environment部分然后重启容器docker compose up -d --force-recreate openclaw。方法二在容器内部创建或修改配置文件。5.3 配置多模型切换一个强大的AI代理应该能根据任务调用不同的模型。OpenClaw支持配置模型列表。在Web界面配置在设置中找到模型配置部分除了默认模型可以添加其他模型端点。例如名称deepseek-api类型OpenAI-Compatible(很多国产模型API兼容此格式)基础URLhttps://api.deepseek.comAPI Key你的DeepSeek API密钥模型名称deepseek-chat通过环境变量配置高级你可以通过OPENCLAW_MODELS这样的环境变量以JSON格式预定义多个模型。具体格式需要参考OpenClaw的官方配置文档。在对话中使用配置好后在Web聊天界面通常可以通过下拉菜单或特定指令如/model deepseek-api来切换当前对话使用的模型。6. 实战接入飞书机器人让我们以一个最实用的场景为例将OpenClaw配置成一个飞书群聊机器人实现自动答疑。6.1 飞书开放平台配置登录 飞书开放平台 创建企业自建应用。在“权限与安全”中为应用添加“获取群组信息”和“群聊中发送消息”等必要权限。在“事件订阅”中设置请求网址Request URL。这里先空着等我们拿到OpenClaw的公网访问地址后再填。在“凭证与基础信息”中拿到App ID和App Secret这就是我们需要的FEISHU_APP_ID和FEISHU_APP_SECRET。6.2 配置OpenClaw飞书技能假设你已经通过Web界面或命令行安装了feishu技能。获取公网访问地址如果你的OpenClaw部署在本地电脑需要内网穿透工具如ngrok、frp将本地的3000端口暴露到一个公网域名。例如使用ngrokngrok http 3000你会得到一个https://xxxx.ngrok-free.app的地址。配置环境变量在你的docker-compose.yml中为openclaw服务添加飞书相关的环境变量。environment: - OLLAMA_BASE_URLhttp://host.docker.internal:11434 - DEFAULT_MODELllama3.1:8b # 飞书技能配置 - FEISHU_APP_ID你的App ID - FEISHU_APP_SECRET你的App Secret - FEISHU_ENCRYPT_KEY # 如果事件订阅启用了加密在此填写 - FEISHU_VERIFICATION_TOKEN # 事件订阅的Verification Token # 技能监听的路径通常技能会说明 - FEISHU_WEBHOOK_PATH/webhook/feishu计算并填写飞书请求网址飞书事件订阅的请求网址格式为你的公网地址FEISHU_WEBHOOK_PATH。假设你的ngrok地址是https://abc123.ngrok-free.app那么请求网址就填https://abc123.ngrok-free.app/webhook/feishu。将其填回飞书开放平台“事件订阅”的设置中。保存并重启容器docker compose up -d --force-recreate openclaw验证配置在飞书开放平台保存请求网址时平台会向该地址发送一个带challenge参数的验证请求。如果OpenClaw飞书技能配置正确它会自动处理并返回验证成功。如果失败需要查看OpenClaw容器日志docker compose logs -f openclaw来排查常见问题是网络不通或路径配置错误。6.3 测试与使用验证通过后将你的飞书应用发布到测试环境并拉入一个测试群。在群里 你的机器人并提问比如“小龙虾 今天天气怎么样”。OpenClaw会收到这个事件调用配置的AI模型生成回复并自动发送回群里。实操心得飞书等IM工具的接入核心难点在于网络。确保FEISHU_WEBHOOK_PATH与技能代码内的路由一致并且公网地址能稳定访问到你的OpenClaw服务。对于生产环境强烈建议使用有固定域名的云服务器而非不稳定的内网穿透工具。7. 高级技巧与故障排查实录即使按照步骤操作也难免会遇到问题。这里记录了我搭建过程中遇到的一些典型坑和解决方案。7.1 常见问题与解决方案问题现象可能原因排查步骤与解决方案启动容器后Web页面无法访问连接被拒绝1. 端口被占用2. 容器启动失败1.docker compose ps查看容器状态若非running则docker compose logs openclaw看错误日志。2.netstat -tlnp | grep :3000查看宿主机3000端口占用情况修改docker-compose.yml中的宿主机端口。对话无响应或提示模型不可用1. Ollama服务未运行2.OLLAMA_BASE_URL配置错误3. 模型名不匹配1. 在宿主机执行ollama list确认Ollama服务及模型。2. 在容器内执行curl OLLAMA_BASE_URL/api/tags测试连通性。3. 确认DEFAULT_MODEL变量值与ollama list中的名称完全一致大小写敏感。安装技能失败1. 网络问题2. 技能名称错误3. 依赖缺失1. 查看安装日志确认是否从GitHub等地址下载超时。2. 通过claw skill search确认正确的技能ID。3. 有些技能需要额外系统依赖需阅读该技能的README。飞书/微信等技能收不到消息1. 网络不通公网地址无法访问2. 路径(Path)配置错误3. 权限/Token错误1. 在公网用浏览器或curl测试你的公网地址webhook路径是否可达。2. 核对技能要求的路径与环境变量XX_WEBHOOK_PATH是否一致。3. 检查飞书开放平台的应用权限是否开通App ID和Secret是否正确。错误openclaw llamap svr operator(): got exception: { error: { code: 400, ...通常是向大模型API发送的请求格式错误或参数不对1. 检查模型端点URL和API Key是否正确。2. 如果是本地Ollama可能是模型未加载。尝试在Ollama中ollama run 模型名手动运行一次。3. 查看OpenClaw的详细日志找到具体的错误信息。7.2 性能优化与使用技巧本地模型选择不是模型越大越好。在资源有限的机器上一个响应速度快的7B模型体验远优于一个缓慢的70B模型。可以多尝试几个找到速度和质量的最佳平衡点。llama3.2:1b、qwen2.5:0.5b等小模型适合做简单的指令理解和路由。会话记忆问题有热词提到“第二天就不知道昨天会话的内容了”。OpenClaw默认的会话记忆可能有限或基于内存。持久化记忆通常需要额外的技能或配置例如使用向量数据库如Chroma来存储和检索历史对话。可以搜索社区是否有memory或vector-db相关的技能。技能开发入门如果你想自己写一个技能最好的方式是去GitHub上克隆官方技能模板。一个最简单的技能通常包含一个skill.py文件里面定义了技能的名称、描述、触发指令和核心处理函数。通过研究现有技能如Echo技能你能快速上手。资源监控运行本地大模型时注意监控GPU和内存使用。在Linux上可以使用nvidia-smiN卡或htop命令。如果资源吃紧考虑在Ollama中设置GPU层数OLLAMA_NUM_GPU或使用量化版本更小的模型。7.3 数据备份与迁移你的所有核心数据配置、技能、会话都保存在docker-compose.yml同级的./data目录下如果你按建议挂载了。定期备份这个目录即可。迁移到新服务器时只需要在新服务器上安装好Docker、Ollama。复制整个openclaw-deploy目录包含docker-compose.yml和data、skills文件夹。修改docker-compose.yml中的OLLAMA_BASE_URL如果新服务器IP不同。在新目录下执行docker compose up -d。整个搭建过程从环境准备到技能配置最需要耐心的是网络调试和模型连接。一旦跑通你会发现一个运行在自己环境里的AI智能体其可定制性和隐私安全感是云端服务无法比拟的。它可能反应慢一点但完全受你控制你可以教它学习你的知识库连接你的业务系统真正成为一个专属的数字助手。