本文记录一套 本地运维 AI Agent 架构的部署过程

· LLM 推理层:Windows + Ollama

· Agent 执行层:CentOS8 + OpenClaw

· 模型:Qwen2.5-Coder 7B

整体目标是实现:

运维任务 → OpenClaw Agent → skill → 调用本地 LLM → 生成指令 → 执行自动化

一、整体架构

先空白后面做架构图

二、为什么 Ollama 部署在 Windows

本次测试环境:

· Linux 使用 VMware 虚拟机

· 未开启 VT-d / GPU 直通

因此 Linux 虚拟机无法调用 GPU。

而本地机器为了让模型可以使用 GPU 推理,因此:

Ollama 部署在 Windows 本机

运行模型: (有能力购买GPU服务器请选择更好的模型,本地机器显卡有限只能选择小模型测试)

qwen2.5-coder:7b

CentOS 只负责:

· Agent

· 执行命令

· 自动化流程

三、Windows 安装 Ollama与模型

懒得写了,网上找个文章看就行,记得配置环境变量,ollama默认地址是127.0.0.1不能与其他机器连通

https://cloud.tencent.com/developer/news/2149855

安装完成后拉取模型:

ollama pull qwen2.5-coder:7b
ollama run qwen2.5-coder:7b

ollama 要配置一下

四、CentOS8 安装 OpenClaw

OpenClaw 依赖:

· Node.js

· C++

· CMake

· 构建工具链

1 安装 Node.js

使用 NodeSource 源安装 Node.js 22

curl -fsSL https://rpm.nodesource.com/setup_22.x | sudo bash -

sudo dnf install -y nodejs

#验证:

node -v

npm -v

2 安装编译环境

yum groupinstall "Development Tools" -y

yum install -y \
gcc \
gcc-c++ \
make \
git \
wget \
unzip \
xz \
zlib-devel \
bzip2 \
bzip2-devel \
xz-devel \
libarchive-devel

这些依赖用于:

· 编译 llama.cpp

· 构建 OpenClaw runtime

3 安装 CMake

CentOS8 自带 CMake 版本过低,因此需要手动安装。

#下载:
wget https://github.com/Kitware/CMake/releases/download/v3.27.7/cmake-3.27.7-linux-x86_64.sh

#添加执行权限:
chmod +x cmake-3.27.7-linux-x86_64.sh

#安装到 /opt/cmake
sudo ./cmake-3.27.7-linux-x86_64.sh --prefix=/opt/cmake --skip-license

#配置环境变量:
echo 'export PATH=/opt/cmake/bin:$PATH' >> ~/.bashrc

#生效:
source ~/.bashrc

#验证:
cmake --version

五、安装 OpenClaw

#由于 OpenClaw 在安装时需要调用 CMake,因此需要指定 CMake 路径。
export CMAKE_COMMAND=/opt/cmake/bin/cmake

#安装 OpenClaw
sudo env "PATH=$PATH" npm install -g openclaw --llama-cpu

#说明:
--llama-cpu  表示编译 CPU 版本的 llama.cpp runtime,由于linux没GPU才添加,如果机器有GPU请移除该参数

六、验证 OpenClaw

#检查版本:
openclaw --version
#出现OpenClaw 2026.3.8 (3caab92) 有返回才是对的

#查看帮助:
openclaw --help

七、openclaw 初始化配置

openclaw onboard

会出现一系列全家桶操作,网上有教程,我直接上图片了,仅适用与本地ollama还有飞书配置,要连接token需要网上找

其中飞书平台需要去开放平台创建企业自建应用获取app id还有Secret

配置完成后需要去飞书开放平台找到对应机器人开启事件与回调选择第一种SDK长连接即可方便后续群里@机器人

八、openclaw 配置nginx代理与openclaw 启动



#本机直接yum安装一个nginx,配置信息: 端口根据自己喜欢修改或者添加证书走SSL也可以
[root@MiWiFi-RD03-srv tmp]# cat /etc/nginx/conf.d/openclaw.conf 
server {
    listen 8789;

    location / {
        proxy_pass http://127.0.0.1:18789; # 假设 OpenClaw 运行在本地 3000 端口
        
        # 关键:传递真实 IP
        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;

        # 关键:WebSocket 支持
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # 延长超时时间,防止长任务中断
        proxy_read_timeout 300s;
    }
}

转发做好首次访问会出现下方图片错误,因为openclaw本身不支持跨域写死127.0.0.1访问

#需要在openclaw 机器新增配置  
#配置路径找到 gateway的配置项
vim ~/.openclaw/openclaw.json
# 添加下方配置
    "controlUi": {
      "allowedOrigins": [
        "*"
      ],
      "allowInsecureAuth": true,
      "dangerouslyDisableDeviceAuth": true
    },


# 修改配置后需要运行命令,让openclaw修复一下
openclaw doctor --fix

# 最后重启一下
openclaw gateway restart 

# 问题说明,由于系统比较乱调整了其他东西,我的系统不能使用上方的启动方式可以直接使用下方命令,但是需要借助nohup挂后台
openclaw gateway

# 获取token
openclaw dashboard
#下方是返回信息

� OpenClaw 2026.3.8 (3caab92) — Your .zshrc wishes it could do what I do.

Dashboard URL: http://127.0.0.1:18789/#token=789dd89165d199603665660b502a2e9695dadc1f5cb1cf1a
Copy to clipboard unavailable.
No GUI detected. Open from your computer:
ssh -N -L 18789:127.0.0.1:18789 root@192.168.31.70
Then open:
http://localhost:18789/
http://localhost:18789/#token=789dd89165d199603665660b502a2e9695dadc1f5cb1cf1a
Docs:
https://docs.openclaw.ai/gateway/remote
https://docs.openclaw.ai/web/control-ui

#可以看到keton后续拼接一下
# 我本地访问地址是http://192.168.31.70:8789/chat?session=main在后面拼接
http://192.168.31.70:8789/chat?session=main&token=789dd89165d199603665660b502a2e9695dadc1f5cb1cf1a

九、配置ollama与openclaw连接模型调用

# 在openclaw 服务器命令进入配置管理
openclaw config

十、ClawHub CLI 与 Skill 安装指南

ClawHub CLI 可以用来安装、管理各种 agent skill。为了避免 npx 下载 CLI 时触发限流,推荐先全局安装 CLI,再安装需要的 skill。

1.全局安装 ClawHub CLI(推荐)

# 安装全局 CLI,避免 npx 重复下载导致限流
npm install -g clawhub

安装完成后,可以直接使用 clawhub 命令,无需每次使用 npx。

2.安装 Skill(不使用代理)

# 安装各个 Skill
clawhub install vater                 # 安全守门员
clawhub install memory-set-up         # 记忆模式
clawhub install self-improving-agent  # 自我进化
clawhub install nano-banana-pro       # 本地画图改图
clawhub install proactive-agent       # 主动提醒

安装速度快,无额外代理配置

CLI 已全局安装,不会重复下载,避免限流

3.临时使用代理安装 Skill(仅当前 shell 生效)可选

如果当前网络需要代理,可以临时设置环境变量:

注意是使用虚拟机过度,本地用的魔法

# 1️⃣ 临时代理(仅当前 shell 生效)
export HTTP_PROXY=http://192.168.3.111:7897
export HTTPS_PROXY=http://192.168.3.111:7897
export ALL_PROXY=socks5://192.168.3.111:7897

# 2️⃣ 安装 Skill
clawhub install vater                 # 安全守门员
clawhub install memory-set-up         # 记忆模式
clawhub install self-improving-agent  # 自我进化
clawhub install nano-banana-pro       # 本地画图改图
clawhub install proactive-agent       # 主动提醒

注意:

临时代理只在当前 shell 会话有效,关闭 shell 就失效。

如果报错找不到某个 skill,可以先用:

clawhub search <关键字>

确认正确的 slug 后再安装。

4.示例 临时代理示例(只安装一个 skill)

export HTTP_PROXY=http://192.168.3.111:7897
export HTTPS_PROXY=http://192.168.3.111:7897
export ALL_PROXY=socks5://192.168.3.111:7897

clawhub install sonoscli

执行完后就不需要再设置代理,环境变量只在当前 shell 会话生效。

5. 推荐skill,可以自己寻找

# 安装各个 Skill

clawhub install skill-vater                # 安全守门员:监控系统安全与权限,防护异常行为
clawhub install memory-set-up              # 记忆模式:提供记忆能力,可存储与调用上下文信息
clawhub install self-improving-agent       # 自我进化:具备自我优化与迭代能力,提升决策智能
clawhub install nano-banana-pro            # 本地画图改图:本地生成和修改图像,支持改图操作
clawhub install proactive-agent            # 主动提醒:主动推送提醒和通知,支持任务提醒功能