loading

Loading

首页 📂开发编程🔏工具部署

🚀 OpenClaw (CloudBot) 终极国内部署教程:自定义聚合 API 接入、PM2 保活与飞书协同全指南

字数: (5148)
阅读: (26)
0

OpenClaw(原名 CloudBot)是一款强大的开源本地 AI 助理。由于它需要频繁执行截屏、读取本地文件、控制浏览器等重度依赖系统环境的操作,强烈建议直接在 Mac Mini 或 Linux 宿主机上进行裸机部署,而不是使用 Docker。

本教程将带你完成三大核心进阶模块:无缝接入自定义聚合 API使用 PM2 实现 7x24 小时后台保活,以及接入飞书打造全天候随身助理


一、 核心配置:无缝接入自定义聚合 API 节点

默认向导会连接官方的 OpenAI 接口。为了使用我们自己的 API 聚合平台,我们可以通过环境变量将流量安全、无缝地代理到自定义节点上。推荐使用 .env 文件配合启动脚本的方式,方便后续维护与节点切换。

1. 编写 .env 配置文件

在你的 OpenClaw 运行目录(例如 ~/openclaw-bot)下,新建一个 .env 文件:


# 填入你聚合平台的 API Key
OPENAI_API_KEY=sk-你的聚合平台密钥

# 填入反向代理节点地址,请确保以 /v1 结尾。
# 若主节点波动,可随时切换为备用节点(例如 https://sg.uiuiapi.com/v1)
OPENAI_BASE_URL=https://api1.uiuiapi.com/v1

# 指定默认调用的主力模型
OPENAI_MODEL=gpt-5.2

(注:请确保你的 Nginx 反向代理配置中,针对这类长连接开启了足够的超时时间设置,以免长文本生成时出现断流。)

这是一份专门针对 uiuiAPI AI 聚合平台的 Nginx 反向代理优化配置。

在调用像 Claude-3-Opus 或 GPT-4o 这样的大模型进行长文本生成或写代码时,通常需要花费几十秒甚至几分钟的时间。如果 Nginx 采用默认配置,很容易在等待中途因为超时(Timeout)或缓冲(Buffering)问题断开连接,导致 OpenClaw 端接收到不完整的回复或直接报错 504 Gateway Timeout

为了完美支持流式输出(Streaming / SSE)并防止长连接断流,你可以将以下配置整合到你的 Nginx server 块中:

---

2.进阶网络优化:Nginx 反向代理防断流配置

打开你的 Nginx 配置文件(通常在 /etc/nginx/nginx.conf/etc/nginx/sites-available/ 下的具体域名配置中),找到对应的 location 块并进行如下优化:

server {
    listen 443 ssl http2;
    server_name api1.uiuiapi.com sg.uiuiapi.com; # 你的聚合 API 域名

    # ... 这里是你的 SSL 证书配置 ...

    location / {
        # 假设你的后端服务跑在本地 3000 端口
        proxy_pass http://127.0.0.1:3000; 

        # ==========================================
        # 1. 核心:关闭代理缓冲,确保流式输出 (SSE) 实时打字机效果
        # ==========================================
        proxy_buffering off;
        proxy_cache off;

        # ==========================================
        # 2. 核心:大幅延长超时时间,防止长文本生成时 504 超时
        # ==========================================
        # 与后端建立连接的超时时间
        proxy_connect_timeout 300s; 
        # 向后端发送请求的超时时间
        proxy_send_timeout 300s;    
        # 从后端读取响应的超时时间 (最关键,AI 思考时间长就靠它)
        proxy_read_timeout 300s;    

        # ==========================================
        # 3. HTTP/1.1 与长连接支持 (WebSocket / SSE 必备)
        # ==========================================
        proxy_http_version 1.1;
        proxy_set_header Connection "keep-alive";
        # 保持连接不被网关主动掐断
        proxy_set_header Keep-Alive "timeout=300";

        # ==========================================
        # 4. 传递真实 IP 与标准 Header,防止 Invalid URL Prefix 等路由错误
        # ==========================================
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # 如果你之前遇到过严格的跨域限制,可以加上 CORS 头 (按需开启)
        # add_header 'Access-Control-Allow-Origin' '*';
        # add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
        # add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
    }
}

配置解析与生效指南:

  1. proxy_buffering off;:这是最关键的一行。AI 模型的流式输出(SSE)是一段一段发给浏览器的。如果 Nginx 开启了缓冲,它会等后端把所有字都生成完、攒够了一定大小才发给 OpenClaw,这就破坏了 AI 实时打字的体验,甚至会导致连接卡死。关闭它后,消息就能毫无阻力地透传。
  2. proxy_read_timeout 300s;:将读取超时时间从默认的 60 秒延长到了 300 秒(5 分钟)。对于动辄生成上千行代码的复杂指令,5 分钟能够有效覆盖绝大多数极端生成场景。
  3. proxy_set_header Host $host;:明确传递 Host,可以有效避免后端 API 平台因无法识别请求来源而抛出类似 invalid URL prefix 的路由错误。

生效配置
修改完成后,先执行 nginx -t 测试配置是否有语法错误。如果显示 syntax is oktest is successful,再执行 nginx -s reload 平滑重载配置即可。

把这段 Nginx 配置加上之后,结合前面部署的 OpenClaw 和 PM2 常驻,你的这套本地 AI 助理工作流在稳定性和响应速度上就彻底无懈可击了。接下来,你想探索一下如何在 OpenClaw 中配置其他的效率插件(比如 GitHub 连通)吗?

2. 编写启动脚本

在同级目录下新建启动脚本 start_cloudbot.sh,用于自动加载配置并拉起服务:


#!/bin/bash

echo "正在加载环境变量..."
if [ -f .env ]; then
  # 读取 .env 文件并导出为环境变量
  export $(grep -v '^#' .env | xargs)
  echo "配置加载成功,当前请求节点为: $OPENAI_BASE_URL"
else
  echo "警告:未找到 .env 文件,请检查路径!"
fi

echo "正在启动 OpenClaw..."
cloudbot gateway

赋予脚本可执行权限:


chmod +x start_cloudbot.sh

二、 进阶保活:使用 PM2 实现 7x24 小时常驻后台

为了防止关闭终端窗口导致 AI 助理“失联”,我们需要使用 Node.js 生态中最成熟的进程管理器 PM2 来托管这个启动脚本。

1. 全局安装 PM2

打开终端,执行以下命令安装:

npm install -g pm2

2. 启动并托管服务

在脚本所在的目录下,使用 PM2 启动并为其命名为 openclaw

pm2 start ./start_cloudbot.sh --name "openclaw"

此时服务已进入后台静默运行。你可以使用 pm2 logs openclaw 实时查看运行日志,排查网络连通性。

3. 配置开机自启

如果宿主机意外断电重启,我们需要让服务自动拉起:

# 1. 生成自启脚本(执行后需复制终端输出的 sudo 命令并再次执行)
pm2 startup

# 2. 保存当前运行列表,写入自启项
pm2 save

三、 多端协同:接入飞书打造随身企业助理

将 OpenClaw 接入飞书,你可以随时随地通过手机下发任务,让家里的电脑自动跑代码、查资料并回传结果。

1. 飞书开放平台配置

  1. 登录 [飞书开放平台]https://open.feishu.cn,点击 创建企业应用
  2. 在左侧菜单 添加应用能力 中,选择并添加 机器人 能力。
  3. 凭证与基础信息 中,复制保存 App IDApp Secret
  4. 权限管理 中,搜索并添加系统所需的所有权限(如“接收消息”、“发送消息”、“获取群组信息”等)。
  5. 版本管理与发布 中,创建并发布一个初始版本。

2. OpenClaw 本地飞书配置

在终端中(无需停止 PM2 进程),依次执行以下配置命令:


# 1. 安装飞书官方插件
cloudbot plugin install @openclaw/feishu

# 2. 填入刚才获取的飞书 App ID
cloudbot config set feishu.appId "你的飞书App_ID"

# 3. 填入刚才获取的飞书 App Secret
cloudbot config set feishu.appSecret "你的飞书App_Secret"

# 4. 强制使用 WebSocket 长连接模式(国内免内网穿透最佳方案)
cloudbot config set feishu.connectionType "websocket"

3. 飞书事件订阅 (长连接)

  1. 回到飞书开放平台,进入左侧 事件与回调
  2. 事件订阅方式 切换为 长连接(WebSocket)
  3. 点击 添加事件,搜索并勾选 接收消息 (im.message.receive_v1)。
  4. 再次前往“版本管理与发布”发布一个新版本,使订阅配置生效。

4. 重启与联调测试

执行 pm2 restart openclaw 重启服务。
打开手机飞书 APP,搜索你创建的机器人名字,发送一句“你好”。如果机器人回复,说明全链路已彻底打通!

(首次发送“截屏”指令时,可能需要回到 Mac 终端输入 cloudbot tui 并在交互界面中手动授权一次。)

转载请注明出处: 界智通

本文的链接地址: https://www.jieagi.com/aigongju/107.html

您可能对以下文章感兴趣
评论列表:
empty

暂无评论

技术博客底部