腾讯云服务器部署OpenClaw并接入自定义大模型实战指南

腾讯云服务器部署OpenClaw并接入自定义大模型实战指南 1. 项目背景与核心诉求最近在帮几个做电商和内容运营的朋友折腾AI客服和自动化流程他们不约而同地提到了一个开源项目OpenClaw。这玩意儿本质上是一个开源的AI智能体框架你可以把它理解成一个“AI大脑”的调度中心。它本身不生产“智力”但能指挥和协调各种“智力”也就是大模型去完成复杂的任务链比如自动回复客户咨询、处理订单、生成营销文案等等。朋友们的需求很明确他们不想被某个特定厂商的AI服务绑定希望能在自己的腾讯云服务器上把私有的、或者某些特定领域微调过的大模型接进去打造一个完全自主可控的AI工作流。这其实就是标题里说的“接入自定义大模型”。但实际操作起来你会发现官方文档更多是面向通用场景当你想把OpenClaw部署在腾讯云CVM或者轻量应用服务器上并接入一个非官方推荐列表里的模型时会遇到一堆环境配置、网络连通性和配置文件的坑。我自己在腾讯云上海区一台4核8G的轻量应用服务器上完整走通了一遍从零部署OpenClaw到成功让它调用我本地Ollama服务的私有模型。这个过程里关键不在于“安装”这个动作而在于理解OpenClaw的架构、它如何寻找和调用模型以及在腾讯云网络环境下如何打通这些环节。接下来我就把这套实操经验拆开揉碎了讲给你听。2. 理解OpenClaw的模型调用机制它不是聊天机器人在动手之前最大的误区是把OpenClaw当成一个类似ChatGPT的Web应用。它不是。OpenClaw的核心是一个智能体Agent执行引擎。它的工作流程是接收一个任务指令比如“分析上周的销售数据并写一份报告”然后将其分解成多个子任务调用不同的工具Tools和模型Models来逐步完成。在这个流程中大模型扮演的是“规划者”和“执行者”的角色。例如一个任务可能先由GPT-4这样的通用模型进行任务拆解和规划然后某个子任务如数据查询交给Code Llama这样的代码模型另一个子任务如文本总结交给Claude模型。因此OpenClaw支持同时配置多个模型并在不同的技能Skill或步骤中指定使用哪个模型。它的模型配置核心是通过一个config.yaml或环境变量来定义所谓的“模型提供商”Model Provider。OpenClaw内置支持OpenAI、Anthropic、Azure OpenAI等主流厂商的API格式。对于我们想接入的“自定义大模型”通常指的是两类兼容OpenAI API格式的自托管模型服务这是最主流、最方便的方式。很多开源模型部署工具如Ollama、vLLM、LocalAI、FastChat在启动后都会提供一个几乎完全兼容OpenAI API的端点Endpoint。OpenClaw可以直接把它们当作一个“自定义的OpenAI提供商”来配置。通过自定义Provider接入如果模型服务不兼容OpenAI API就需要为OpenClaw编写一个自定义的Provider类实现特定的接口。这需要一定的开发能力。我们的目标就是在腾讯云的服务器上搭建起这样一个兼容OpenAI API的模型服务并让OpenClaw正确识别和调用它。3. 腾讯云服务器环境准备与基础部署我选择腾讯云轻量应用服务器主要是图它开箱即用自带Docker省去很多初始化配置的麻烦。如果你用CVM步骤也几乎一样。3.1 服务器选型与初始配置对于测试和学习最低配置建议CPU 内存2核4GB是底线4核8GB会更顺畅。因为你需要同时运行OpenClaw和模型服务。系统镜像选择Ubuntu 22.04 LTS。社区支持最好遇到问题容易搜到解决方案。硬盘至少50GB SSD。模型文件动辄几个GB空间大点没坏处。安全组防火墙这是后续调试的关键。在腾讯云控制台找到你的服务器实例的安全组规则需要放行以下端口22SSH用于远程连接。3000OpenClaw的默认Web管理界面端口。11434Ollama服务的默认端口如果你用Ollama。8000/8080其他模型服务如vLLM常用的端口。实操心得建议在安全组里先配置一条“放通全部端口”的规则仅用于调试等所有服务都调通后再删除改为精确放行。很多连接问题都是端口没开导致的先排除这个因素。通过SSH登录服务器后第一件事是更新系统并安装必要的工具sudo apt update sudo apt upgrade -y sudo apt install -y curl wget git vim net-tools3.2 部署OpenClaw推荐使用Docker ComposeOpenClaw官方提供了Docker镜像用Docker Compose部署是最干净、最不容易破坏系统环境的方式。安装Docker和Docker Compose# 安装Docker curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER newgrp docker # 或退出SSH重新登录使组权限生效 # 安装Docker Compose插件 sudo apt install -y docker-compose-plugin创建项目目录并下载配置mkdir openclaw-deploy cd openclaw-deploy # 从官方仓库获取docker-compose示例文件这里假设有若无则手动创建 # 通常需要自己编写docker-compose.yml下面会给出一个基础版本编写docker-compose.yml文件 在openclaw-deploy目录下创建docker-compose.yml内容如下。这个配置先不包含自定义模型只把OpenClaw本身跑起来。version: 3.8 services: openclaw: image: openclaw/openclaw:latest # 使用官方镜像请检查最新标签 container_name: openclaw restart: unless-stopped ports: - 3000:3000 # 将容器内3000端口映射到主机 environment: - NODE_ENVproduction # 数据库配置这里使用容器内的SQLite生产环境建议外接数据库 - DATABASE_URLsqlite:///data/openclaw.db # 加密密钥务必修改为随机字符串 - SECRET_KEYyour_very_strong_secret_key_here_change_me volumes: - ./data:/data # 持久化数据 - ./config:/app/config # 挂载自定义配置目录 command: [npm, start] # 启动命令启动OpenClawdocker-compose up -d使用docker-compose logs -f openclaw查看日志等待出现服务启动成功的提示。验证部署 在浏览器访问http://你的服务器公网IP:3000。你应该能看到OpenClaw的登录或初始化页面。至此一个“空壳”OpenClaw已经就绪它还没有任何可用的模型。4. 部署并接入自定义大模型服务以Ollama为例为了让OpenClaw有“大脑”我们需要在同一个服务器上或者另一个可网络访问的服务器上部署一个模型服务。我以Ollama为例因为它部署极其简单且完美兼容OpenAI API。4.1 在腾讯云服务器上部署OllamaOllama的安装非常简单它会把模型拉取到本地运行。安装Ollamacurl -fsSL https://ollama.com/install.sh | sh安装完成后Ollama服务会自动启动。拉取并运行一个模型 我们先拉取一个较小的模型进行测试比如llama3.2:1b10亿参数版本。ollama pull llama3.2:1b ollama run llama3.2:1b在交互式命令行里可以测试一下模型是否正常工作。按CtrlD退出交互模式。模型会以后台服务形式运行。验证Ollama的OpenAI API兼容端点 Ollama默认在http://localhost:11434提供服务。其OpenAI兼容的API端点位于http://localhost:11434/v1。 我们可以用curl测试一下curl http://localhost:11434/v1/models如果返回一个包含模型列表的JSON说明API服务正常。4.2 关键一步配置OpenClaw连接Ollama现在Ollama在服务器本地运行OpenClaw在Docker容器里运行。容器内的localhost指的是容器自己而不是宿主服务器。因此OpenClaw无法直接通过http://localhost:11434访问Ollama。我们需要让OpenClaw能通过宿主机的网络访问Ollama。有两种常见方法方法一使用宿主机的特殊DNS名称推荐在Docker容器内可以使用host.docker.internal这个主机名来指向宿主机。但请注意这个特性在Linux版的Docker中默认不启用。我们需要修改docker-compose.yml为OpenClaw服务添加额外的网络配置。更新你的docker-compose.yml在openclaw服务下添加extra_hosts和network_modeservices: openclaw: image: openclaw/openclaw:latest container_name: openclaw restart: unless-stopped ports: - 3000:3000 environment: - NODE_ENVproduction - DATABASE_URLsqlite:///data/openclaw.db - SECRET_KEYyour_very_strong_secret_key_here_change_me # 新增通过环境变量告诉OpenClaw模型端点这里使用了host.docker.internal - OPENAI_API_BASEhttp://host.docker.internal:11434/v1 - OPENAI_API_KEYollama # Ollama不需要真正的key但有些框架要求非空任意字符串即可 volumes: - ./data:/data - ./config:/app/config extra_hosts: - host.docker.internal:host-gateway # 关键配置让容器能解析到宿主机 command: [npm, start]方法二使用宿主机的实际IP地址首先在服务器上执行ip addr show或hostname -I找到宿主机在内网中的IP地址通常是172.x.x.x或192.168.x.x。 然后在OpenClaw的环境变量中使用这个IPenvironment: - OPENAI_API_BASEhttp://172.17.0.1:11434/v1 # 假设宿主机的Docker网桥IP是172.17.0.1 - OPENAI_API_KEYollama踩坑记录宿主机IP可能因网络配置而变化。172.17.0.1是Docker默认网桥的网关地址在大多数情况下是稳定的。但如果你自定义了网络这个地址可能会变。host.docker.internal是更通用的解决方案。修改完配置后重启OpenClaw服务docker-compose down docker-compose up -d4.3 在OpenClaw管理界面添加自定义模型再次访问http://你的服务器公网IP:3000登录OpenClaw管理界面。找到模型配置或提供商配置的页面不同版本位置可能不同通常在Settings-Model Providers或Workspace-Models。点击添加新的模型提供商选择“OpenAI”或“Custom OpenAI”类型。在配置表单中填写Name: 给你的模型起个名如 “My-Ollama-Llama”。API Key: 填写ollama或其他任意非空字符串。Base URL: 填写http://host.docker.internal:11434/v1如果你用了方法一。Model Name: 这里填写你在Ollama中拉取的模型名称如llama3.2:1b。这一点非常重要这个名称必须和Ollama中的模型名完全一致。保存配置。现在你应该能在OpenClaw的技能配置或聊天界面中选择你刚刚添加的My-Ollama-Llama模型了。创建一个简单的对话技能测试一下如果模型能正常回复说明接入成功。5. 进阶配置与深度调优成功接入只是第一步要让自定义模型稳定、高效地工作还需要处理以下几个实际问题。5.1 处理模型加载与上下文长度Ollama默认的模型参数可能不适合所有任务。例如上下文长度可能太小。你可以在拉取模型时或运行时指定参数。创建自定义Modelfile 在服务器上创建一个文件比如ModelfailFROM llama3.2:1b PARAMETER num_ctx 4096 # 将上下文长度设置为4096然后根据这个文件创建自定义模型ollama create my-llama -f ./Modelfile ollama run my-llama在OpenClaw中模型名就填my-llama。调整Ollama运行参数 你可以通过环境变量或启动参数控制Ollama的资源使用。例如限制GPU层数或CPU线程数。对于腾讯云通常无GPU的轻量服务器优化CPU和内存使用更重要。# 启动ollama服务时指定参数需修改systemd服务文件 # 或者在运行模型时指定 ollama run llama3.2:1b --num-predict 512 --temperature 0.7但这些运行时参数无法直接通过OpenClaw的API传递。更常见的做法是在Ollama服务端创建好具有特定参数的模型如上文的Modelfile方式。5.2 配置多个自定义模型如果你在Ollama中部署了多个模型例如一个通用模型llama3.2:1b一个代码模型codellama:7b如何在OpenClaw中管理OpenClaw的OpenAI提供商配置中Model Name字段是固定的。要支持多个模型你有两种选择为每个模型创建一个独立的Provider配置。这是最清晰的方式。在OpenClaw中添加两个“OpenAI”提供商Base URL都指向http://host.docker.internal:11434/v1但Name和Model Name分别设置为My-Llama-General/llama3.2:1b和My-CodeLlama/codellama:7b。使用模型别名如果OpenClaw支持。有些版本的OpenClaw或某些配置方式允许你在调用API时动态指定模型名。这需要查阅OpenClaw更详细的API文档通常在其技能或工作流的配置中可以直接填写模型名称字符串。5.3 性能监控与问题排查在腾讯云服务器上运行模型资源是宝贵的。你需要知道服务是否健康。查看Ollama日志sudo journalctl -u ollama -f查看OpenClaw容器日志docker-compose logs -f openclaw测试API连通性从OpenClaw容器内部# 进入openclaw容器 docker exec -it openclaw /bin/sh # 在容器内测试连接Ollama curl http://host.docker.internal:11434/v1/models如果这里失败说明网络配置extra_hosts有问题。服务器资源监控 使用htop、nvidia-smi如有GPU或腾讯云自带的监控面板观察CPU、内存和Swap的使用情况。如果内存吃满模型响应会变慢甚至崩溃需要考虑升级服务器配置或换用更小的模型。5.4 安全性与生产化建议目前的配置仅适用于开发和测试。要用于生产至少要考虑为OpenClaw和Ollama设置反向代理如Nginx不要将3000和11434端口直接暴露到公网。应该通过Nginx配置域名、SSL证书HTTPS和访问控制。使用数据库密码和强密钥替换docker-compose.yml中简单的SECRET_KEY使用更复杂的密码管理方式。配置Ollama的访问控制Ollama默认没有身份验证。在生产环境可以通过Nginx基础认证、绑定本地网络接口或者使用其实验性的用户系统来增加安全层。数据持久化备份确保./data和./config卷定期备份。如果使用Ollama其模型文件通常位于~/.ollama也需要考虑备份。6. 对接其他自定义模型服务vLLM/本地API除了Ollama你可能还想接入其他高性能推理服务比如vLLM。它的部署稍微复杂但推理速度通常更快。使用Docker部署vLLM# 拉取镜像并运行这里以Llama3.2 1B为例 docker run --runtime nvidia --gpus all \ # 如果无GPU去掉此参数性能会下降 -p 8000:8000 \ --name vllm \ -v ~/.cache/huggingface:/root/.cache/huggingface \ vllm/vllm-openai:latest \ --model meta-llama/Llama-3.2-1B-Instruct \ --served-model-name llama3.2-1b \ --api-key token-abc123 # 设置一个API密钥这个命令会启动一个兼容OpenAI API的服务在http://localhost:8000/v1并且要求请求头中携带Authorization: Bearer token-abc123。在OpenClaw中配置Base URL:http://host.docker.internal:8000/v1(同样需要配置extra_hosts)API Key:token-abc123Model Name:llama3.2-1b(与--served-model-name参数一致)核心逻辑完全一样在腾讯云服务器上部署一个提供兼容OpenAI API的服务然后通过宿主机网络让OpenClaw的Docker容器能够访问到它最后在OpenClaw界面中添加一个对应的模型提供商配置。整个过程的关键是对Docker网络和OpenClaw配置项的理解。一旦这个模式跑通你可以接入任何符合该标准的模型服务无论是本地推理还是内网其他服务器的模型甚至是经过反向代理的公有云API都可以用同样的思路进行整合。这正是在腾讯云环境下构建自主AI工作流的强大与灵活之处。