欢迎光临
我们一直在努力

OpenClaw 实战部署:用一台旧 Surface Pro 打造 7×24 私人 AI 助手

OpenClaw 实战部署:用一台旧 Surface Pro 打造 7×24 私人 AI 助手

OpenClaw 是 2026 年最火的开源 AI 助手平台之一——它不只是一个聊天机器人框架,而是一个完整的 AI Agent 操作系统:支持飞书 / Web / IM 多渠道接入,内置工具调用(function calling)、技能系统(Skills)、记忆管理、多 Agent 协作,还能接入任意 OpenAI 兼容的大模型。

我手上有一台 2017 年的 Surface Pro 5,Windows 已经卡得没法用。与其吃灰,不如装个 Ubuntu 把它变成一台低功耗的 AI 服务器——7×24 小时运行 OpenClaw,随时随地通过 IM 和网页与我的 AI 助手对话。

本文是一份从零到可用的完整实战记录:从准备硬件环境,到部署 OpenClaw + 阿里云 Qwen3 模型、接入 IM 渠道、开发自定义 Skill,全程约 5 小时。

目录

  • 1. 为什么选 OpenClaw?
  • 2. 硬件与系统准备
  • 3. 安装 OpenClaw
  • 4. 接入阿里云 Qwen3 大模型
  • 5. 接入 IM 渠道:随时随地对话
  • 6. Nginx HTTPS:局域网 Web UI 访问
  • 7. 自定义 Workspace:让 AI 有灵魂
  • 8. 开发自定义 Skill:AI 能力无限扩展
  • 9. 模型选型:Qwen3 4B / 14B / 32B 实测对比
  • 10. 踩坑记录与最佳实践
  • 11. 时间线与未来计划

1. 为什么选 OpenClaw?

2026 年初,AI 助手平台百花齐放。在对比了多个方案后,我选择了 OpenClaw,原因如下:

特性OpenClaw其他方案(Dify / LobeChat 等)
多渠道接入 飞书 / Web UI / IM / API 大多只有 Web UI
工具调用 原生支持 exec(可运行任意 bash 命令) 需要额外开发插件
技能系统 Markdown 定义 Skill,零代码扩展能力 需要写代码或配置 workflow
模型自由 接入任意 OpenAI 兼容 API(DashScope、Ollama 等) 部分锁定特定模型
部署方式 npm install -g 一条命令,轻量无 Docker 依赖 多数需要 Docker Compose
资源占用 仅调用云端 API,本地只跑 Node.js 网关(~50MB 内存) 本地推理需要 GPU
开源 MIT 协议,完全开放 部分功能闭源

核心吸引力:OpenClaw 的 Skill 系统 + exec 工具让 AI 不再只是"会聊天"——它可以读取服务器状态、查温度、看磁盘、甚至执行自定义脚本。它不是玩具,是真正可以干活的 AI 助手。


2. 硬件与系统准备

这一章是为 OpenClaw 准备运行环境。如果你已经有一台 Linux 服务器或 VPS,可以直接跳到 第 3 章:安装 OpenClaw。

2.1 我的硬件:Surface Pro 5

项目规格
CPU Intel Core i5-7300U @ 2.60GHz(双核四线程)
内存 8GB LPDDR3
存储 TOSHIBA NVMe 256GB
GPU Intel HD Graphics 620(核显)
屏幕 12.3 英寸 2736×1824
发布年份 2017 年

这台机器跑 Windows 10 已经非常吃力——开几个 Chrome 标签页内存就飙到 90%,没有风扇的 Surface 直接歇菜。但跑 OpenClaw 只需要 Node.js 网关 + 网络连接,完全没问题。

2.2 安装 Ubuntu 22.04

为什么用 Ubuntu 而不是 Windows? OpenClaw 在 Linux 下的 exec 工具能直接调用 bash 命令读取系统信息,而且 Ubuntu 资源占用远低于 Windows,非常适合当 7×24 小时服务器。

准备工作
  • 8GB+ U 盘
  • Ubuntu 22.04.3 LTS Desktop ISO
  • Rufus 或 Ventoy 制作启动盘
Surface Pro BIOS 设置

Surface 的 BIOS 叫 UEFI,进入方式比较特殊:

  • 完全关机
  • 按住音量+键不放,同时按一下电源键
  • 看到 Surface 标志后松开音量+键
  • 修改 Boot Configuration → 拖动 USB Storage 到第一位
  • Secure Boot → 设为 Disabled
  • Surface Pro 的触摸屏在 UEFI 里可以用,直接拖拽排序。

    安装分区方案
    分区大小挂载点类型
    EFI 300MB /boot/efi FAT32
    系统 剩余全部 / ext4
    Swap 等于内存 (8GB) swap swap
    Surface 专用内核(推荐)

    Ubuntu 默认内核对 Surface 的触摸屏、WiFi 支持不完美,安装 linux-surface 内核可以显著改善:

    # 添加 linux-surface 仓库
    wget -qO – https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc \\
    | gpg –dearmor | sudo tee /etc/apt/trusted.gpg.d/linux-surface.gpg > /dev/null

    echo "deb [arch=amd64] https://pkg.surfacelinux.com/debian release main" \\
    | sudo tee /etc/apt/sources.list.d/linux-surface.list

    sudo apt update
    sudo apt install linux-image-surface linux-headers-surface libwacom-surface
    sudo update-grub && sudo reboot

    基础优化

    sudo apt update && sudo apt upgrade -y
    sudo apt install -y curl wget git vim htop lm-sensors net-tools
    sudo sensors-detect # 初始化温度传感器
    sudo timedatectl set-timezone Asia/Shanghai

    2.3 配置 SSH 远程管理

    配好 SSH 之后,Surface Pro 就可以合上盖子放在角落,用其他电脑远程操作了——这才是跑 OpenClaw 的正确姿势。

    # 安装 SSH
    sudo apt install -y openssh-server
    sudo systemctl enable ssh && sudo systemctl start ssh

    # 主力电脑上配置密钥登录
    ssh-keygen -t ed25519 -C "your_email@example.com"
    ssh-copy-id chenwei@192.168.31.49

    建议在路由器上给 Surface Pro 绑定固定 IP(如 192.168.31.49),方便后续 Nginx 和 IM 渠道配置。

    2.4 安装 Node.js 22

    OpenClaw 强制要求 Node.js v22+:

    curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash
    sudo apt-get install -y nodejs
    node -v # 确认 v22.x


    3. 安装 OpenClaw

    这是最激动人心的部分——三条命令就能把 AI 助手跑起来。

    3.1 克隆安装工具

    git clone https://github.com/miaoxworld/OpenClawInstaller.git
    cd OpenClawInstaller
    chmod +x install.sh config-menu.sh

    3.2 运行安装脚本

    ./install.sh

    安装脚本会自动完成:

  • 检测系统环境并安装依赖
  • 通过 npm 安装 OpenClaw(npm install -g openclaw)
  • 引导核心配置(AI 模型、身份信息)
  • 测试 API 连接
  • 启动 OpenClaw Gateway 服务
  • 3.3 核心目录结构

    安装完成后,所有配置位于 ~/.openclaw/:

    ~/.openclaw/
    ├── openclaw.json # 🔑 核心配置(模型、渠道、网关)
    ├── env # 🔑 环境变量(API Key、代理)
    ├── workspace/ # 🧠 AI 人设与能力定义
    │ ├── SOUL.md # 人格定义
    │ ├── IDENTITY.md # 身份信息
    │ ├── TOOLS.md # 工具能力备忘(关键!)
    │ ├── AGENTS.md # Agent 行为准则
    │ └── USER.md # 用户信息
    └── skills/ # ⚡ 自定义技能目录
    └── system_info/ # 示例 Skill

    OpenClaw 的设计哲学:一切皆文件。修改 Markdown 就能改变 AI 的人格、能力和行为,不需要写一行代码。


    4. 接入阿里云 Qwen3 大模型

    OpenClaw 支持任何 OpenAI 兼容的 API。阿里云 DashScope 的 Qwen3 系列是国内最好的选择之一——免费额度充足,延迟低,模型能力强。

    4.1 获取 API Key

  • 访问 阿里云 DashScope 控制台
  • 开通 DashScope 服务(有免费额度)
  • 在「API-KEY 管理」中创建 API Key
  • 4.2 配置环境变量

    编辑 ~/.openclaw/env:

    # 阿里云 DashScope (Qwen) — 兼容 OpenAI 格式
    export OPENAI_API_KEY=sk-your-api-key-here
    export OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1

    关键点:DashScope 提供 compatible-mode/v1 端点,OpenClaw 直接把它当 OpenAI Provider 用。如果你的 IM 渠道需要网络代理,也可以在 env 文件中配置 HTTP_PROXY 等环境变量。

    4.3 在 openclaw.json 中注册模型

    在 ~/.openclaw/openclaw.json 的 models.providers 中添加自定义 Provider:

    {
    "models": {
    "providers": {
    "openai-custom": {
    "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
    "apiKey": "sk-your-api-key-here",
    "models": [
    {
    "id": "qwen3-14b",
    "name": "Qwen3-14B Dense",
    "api": "openai-completions",
    "reasoning": false,
    "input": ["text"],
    "cost": {"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0},
    "contextWindow": 131072,
    "maxTokens": 8192
    },
    {
    "id": "qwen3-32b",
    "name": "Qwen3-32B Dense",
    "api": "openai-completions",
    "reasoning": false,
    "input": ["text"],
    "cost": {"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0},
    "contextWindow": 131072,
    "maxTokens": 8192
    },
    {
    "id": "qwen3-4b",
    "name": "Qwen3-4B (轻量)",
    "api": "openai-completions",
    "reasoning": false,
    "input": ["text"],
    "cost": {"input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0},
    "contextWindow": 131072,
    "maxTokens": 8192
    }
    ]
    }
    }
    }
    }

    可选模型:Qwen3 系列还有 qwen3-235b-a22b(MoE)、qwen3-vl-flash(视觉)、qwen3-omni-flash(全模态语音)等。

    4.4 设置默认模型

    {
    "agents": {
    "defaults": {
    "model": {
    "primary": "openai-custom/qwen3-14b"
    },
    "models": {
    "openai-custom/qwen3-4b": {},
    "openai-custom/qwen3-14b": {},
    "openai-custom/qwen3-32b": {}
    }
    }
    }
    }

    命令行切换:

    source ~/.openclaw/env
    openclaw models set "openai-custom/qwen3-14b"
    openclaw models list # 确认当前模型

    4.5 验证连接

    source ~/.openclaw/env
    openclaw agent –agent main –message "你好,你是什么模型?"

    如果返回正常回复,说明 OpenClaw + Qwen3 已经跑通了!


    5. 接入 IM 渠道:随时随地对话

    这是 OpenClaw 最实用的功能之一——通过 IM(即时通讯)渠道,随时随地和你的 AI 助手对话,不受局域网限制。

    OpenClaw 支持多种 IM 渠道接入,包括飞书、企业微信等。以飞书为例:

    5.1 创建飞书机器人

  • 在 飞书开放平台 创建应用
  • 获取 App ID 和 App Secret
  • 配置消息接收地址
  • 5.2 配置 OpenClaw

    在 ~/.openclaw/openclaw.json 中启用对应的 IM 渠道:

    {
    "channels": {
    "your-im-channel": {
    "enabled": true,
    "dmPolicy": "pairing",
    "botToken": "你的 Bot Token",
    "streamMode": "partial"
    }
    },
    "plugins": {
    "entries": {
    "your-im-channel": {"enabled": true}
    }
    }
    }

    dmPolicy 说明:"pairing" = 首次对话需配对确认(更安全);"open" = 任何人可直接对话。

    5.3 启动并配对

    source ~/.openclaw/env
    openclaw gateway –force

    向你的 Bot 发送任意消息,按提示完成配对。配对成功后就可以正常对话了——无论你在家、在公司、还是在路上,AI 助手都在线。


    6. Nginx HTTPS:局域网 Web UI 访问

    OpenClaw 自带一个功能丰富的 Control UI(Web 聊天界面),默认监听 127.0.0.1:18789。通过 Nginx 反向代理,可以让局域网内的手机、平板、其他电脑都能访问。

    6.1 生成自签名 SSL 证书

    sudo mkdir -p /etc/nginx/ssl
    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \\
    -keyout /etc/nginx/ssl/openclaw.key \\
    -out /etc/nginx/ssl/openclaw.crt \\
    -subj "/CN=192.168.31.49"

    6.2 配置 Nginx

    创建 /etc/nginx/sites-available/openclaw:

    server {
    listen 7860 ssl;
    server_name 192.168.31.49;

    ssl_certificate /etc/nginx/ssl/openclaw.crt;
    ssl_certificate_key /etc/nginx/ssl/openclaw.key;

    # HTTP 请求代理
    location / {
    proxy_pass http://127.0.0.1:18789;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    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;
    proxy_read_timeout 86400;
    }

    # ⚠️ WebSocket 连接自动注入 token(关键!)
    location /ws {
    proxy_pass http://127.0.0.1:18789/ws?token=你的token;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    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;
    proxy_read_timeout 86400;
    }
    }

    启用并重启:

    sudo ln -s /etc/nginx/sites-available/openclaw /etc/nginx/sites-enabled/
    sudo nginx -t && sudo systemctl reload nginx

    6.3 配置 OpenClaw 允许外部来源

    在 openclaw.json 中:

    {
    "gateway": {
    "mode": "local",
    "controlUi": {
    "allowedOrigins": ["https://192.168.31.49:7860"]
    },
    "auth": {
    "token": "你的token"
    },
    "trustedProxies": ["127.0.0.1"]
    }
    }

    现在打开 https://192.168.31.49:7860,就能在局域网内任何设备上使用 OpenClaw Web UI 了。


    7. 自定义 Workspace:让 AI 有灵魂

    OpenClaw 最独特的设计之一就是 Workspace 文件系统——通过几个 Markdown 文件,你可以完全定义 AI 的人格、知识和能力边界。这不是简单的 system prompt,而是一套结构化的 AI 行为框架。

    7.1 SOUL.md — 定义人格

    这是 AI 的"灵魂",决定了它怎么说话、怎么思考:

    # 我是谁

    我是 cw 的私人AI助手,基于阿里云 Qwen3 系列模型运行,默认使用 qwen3-14b。
    通过 OpenClaw 平台运行,支持 IM 和网页端聊天。

    ## 性格
    – 友好、简洁、实用
    – 用中文回复
    – 不啰嗦,直接给出答案

    ## 能力
    – 可以用 `exec` 工具执行 bash 命令,读取本机硬件/软件信息
    – 当用户问电脑配置、品牌、温度、磁盘等问题时,直接执行命令获取真实数据
    – 参考 TOOLS.md 中的命令速查表

    ## 规则
    – 诚实回答,不确定的事情就说不确定
    – 涉及隐私信息时要谨慎
    – 能用工具获取真实数据时,不要给"请自行查询"的回答

    7.2 IDENTITY.md — 身份卡片

    名字:AI 助手
    主人:cw
    语言:中文
    当前模型:qwen3-14b
    时区:Asia/Shanghai

    7.3 TOOLS.md — 工具能力备忘(关键文件!)

    这是让 AI 知道"自己能做什么"的核心文件。OpenClaw 在每次会话开始时会读取 TOOLS.md,如果里面没有提及某种能力,AI 就不知道自己可以做。

    # TOOLS.md – 本地工具备忘

    ## 系统信息采集 (system_info skill)

    我可以直接读取这台电脑的硬件和软件信息。

    ### 一键完整报告
    bash ~/.openclaw/skills/system_info/gather_info.sh

    ### 常用单项命令
    – 电脑品牌/型号: cat /sys/devices/virtual/dmi/id/board_vendor
    – CPU 型号: grep -m1 'model name' /proc/cpuinfo
    – 内存: free -h
    – 磁盘: df -h
    – 实时温度: sensors
    – 网络 IP: hostname -I

    ## 本机信息速查
    – 设备: Microsoft Surface Pro
    – CPU: Intel Core i5-7300U @ 2.60GHz
    – 内存: 8GB
    – 系统: Ubuntu 22.04.3 LTS

    设计巧思:TOOLS.md 底部的"本机信息速查"是一个双保险——即使模型不主动调用 exec 工具,它也能直接从这里读取基本信息回答用户。这对小模型尤其有用。


    8. 开发自定义 Skill:AI 能力无限扩展

    Skill 系统是 OpenClaw 的杀手级特性。 你可以用一个 Markdown 文件 + 一个 Shell 脚本,就给 AI 增加一种全新的能力——不需要改一行 OpenClaw 源码。

    8.1 Skill 的工作原理

    #mermaid-svg-bJVEYpuKHWV3Ff0M{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-bJVEYpuKHWV3Ff0M .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-bJVEYpuKHWV3Ff0M .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-bJVEYpuKHWV3Ff0M .error-icon{fill:#552222;}#mermaid-svg-bJVEYpuKHWV3Ff0M .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-bJVEYpuKHWV3Ff0M .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-bJVEYpuKHWV3Ff0M .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-bJVEYpuKHWV3Ff0M .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-bJVEYpuKHWV3Ff0M .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-bJVEYpuKHWV3Ff0M .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-bJVEYpuKHWV3Ff0M .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-bJVEYpuKHWV3Ff0M .marker{fill:#333333;stroke:#333333;}#mermaid-svg-bJVEYpuKHWV3Ff0M .marker.cross{stroke:#333333;}#mermaid-svg-bJVEYpuKHWV3Ff0M svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-bJVEYpuKHWV3Ff0M p{margin:0;}#mermaid-svg-bJVEYpuKHWV3Ff0M .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-bJVEYpuKHWV3Ff0M .cluster-label text{fill:#333;}#mermaid-svg-bJVEYpuKHWV3Ff0M .cluster-label span{color:#333;}#mermaid-svg-bJVEYpuKHWV3Ff0M .cluster-label span p{background-color:transparent;}#mermaid-svg-bJVEYpuKHWV3Ff0M .label text,#mermaid-svg-bJVEYpuKHWV3Ff0M span{fill:#333;color:#333;}#mermaid-svg-bJVEYpuKHWV3Ff0M .node rect,#mermaid-svg-bJVEYpuKHWV3Ff0M .node circle,#mermaid-svg-bJVEYpuKHWV3Ff0M .node ellipse,#mermaid-svg-bJVEYpuKHWV3Ff0M .node polygon,#mermaid-svg-bJVEYpuKHWV3Ff0M .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-bJVEYpuKHWV3Ff0M .rough-node .label text,#mermaid-svg-bJVEYpuKHWV3Ff0M .node .label text,#mermaid-svg-bJVEYpuKHWV3Ff0M .image-shape .label,#mermaid-svg-bJVEYpuKHWV3Ff0M .icon-shape .label{text-anchor:middle;}#mermaid-svg-bJVEYpuKHWV3Ff0M .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-bJVEYpuKHWV3Ff0M .rough-node .label,#mermaid-svg-bJVEYpuKHWV3Ff0M .node .label,#mermaid-svg-bJVEYpuKHWV3Ff0M .image-shape .label,#mermaid-svg-bJVEYpuKHWV3Ff0M .icon-shape .label{text-align:center;}#mermaid-svg-bJVEYpuKHWV3Ff0M .node.clickable{cursor:pointer;}#mermaid-svg-bJVEYpuKHWV3Ff0M .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-bJVEYpuKHWV3Ff0M .arrowheadPath{fill:#333333;}#mermaid-svg-bJVEYpuKHWV3Ff0M .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-bJVEYpuKHWV3Ff0M .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-bJVEYpuKHWV3Ff0M .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-bJVEYpuKHWV3Ff0M .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-bJVEYpuKHWV3Ff0M .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-bJVEYpuKHWV3Ff0M .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-bJVEYpuKHWV3Ff0M .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-bJVEYpuKHWV3Ff0M .cluster text{fill:#333;}#mermaid-svg-bJVEYpuKHWV3Ff0M .cluster span{color:#333;}#mermaid-svg-bJVEYpuKHWV3Ff0M div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-bJVEYpuKHWV3Ff0M .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-bJVEYpuKHWV3Ff0M rect.text{fill:none;stroke-width:0;}#mermaid-svg-bJVEYpuKHWV3Ff0M .icon-shape,#mermaid-svg-bJVEYpuKHWV3Ff0M .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-bJVEYpuKHWV3Ff0M .icon-shape p,#mermaid-svg-bJVEYpuKHWV3Ff0M .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-bJVEYpuKHWV3Ff0M .icon-shape rect,#mermaid-svg-bJVEYpuKHWV3Ff0M .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-bJVEYpuKHWV3Ff0M .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-bJVEYpuKHWV3Ff0M .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-bJVEYpuKHWV3Ff0M :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    🧑 用户提问电脑什么牌子?

    🔍 OpenClaw匹配 Skill 描述

    📖 AI 读取SKILL.md

    ⚡ AI 调用 exec执行 bash 命令

    📊 返回真实数据Microsoft Surface Pro

    当用户的问题匹配到 Skill 的 description 字段时,OpenClaw 会自动把对应的 SKILL.md 注入到 AI 的上下文中,AI 就知道该执行什么命令了。

    8.2 实战:创建 system_info Skill

    这个 Skill 让 AI 能读取本机的硬件、软件、温度、网络等信息。

    创建目录

    mkdir -p ~/.openclaw/skills/system_info

    编写采集脚本 gather_info.sh

    #!/bin/bash
    # 系统信息采集脚本 – OpenClaw system_info Skill

    section() { echo -e "\\n━━━━━━━━━━━━━━━━━━\\n $1\\n━━━━━━━━━━━━━━━━━━"; }

    # 操作系统
    section "🖥️ 操作系统"
    . /etc/os-release && echo " 发行版: $PRETTY_NAME"
    echo " 内核: $(uname -r)"
    echo " 运行时长: $(uptime -p)"

    # CPU
    section "⚡ CPU"
    grep -m1 'model name' /proc/cpuinfo | cut -d: -f2 | xargs
    echo " 核心: $(nproc) 负载: $(cat /proc/loadavg | awk '{print $1,$2,$3}')"

    # 内存
    section "🧠 内存"
    free -h | grep '^Mem:'

    # GPU
    section "🎮 GPU"
    lspci | grep -i 'vga\\|3d' | head -1

    # 磁盘
    section "💾 磁盘"
    df -h | grep '^/dev/'

    # 温度(联动 temp_monitor 服务)
    section "🌡️ 温度历史"
    tail -5 ~/Desktop/1_monitor/temp_monitor/temp_data.csv

    # … 更多模块:网络、主板、软件环境、服务状态、监听端口等

    编写 SKILL.md


    name: system_info
    description: 获取本机硬件和软件信息,包括 CPU、内存、GPU、磁盘、网络、温度历史、已安装软件和运行中的服务。当用户询问电脑配置、系统状态、硬件信息、温度趋势等问题时使用此技能。
    metadata: { "openclaw": { "emoji": "🖥️", "requires": { "bins": ["bash"] } } }

    # 系统信息采集

    ## 完整报告
    运行:`bash ~/.openclaw/skills/system_info/gather_info.sh`

    ## 按需查询
    – CPU: `grep 'model name' /proc/cpuinfo | head -1`
    – 内存: `free -h`
    – 磁盘: `df -h`
    – 温度: `sensors`
    – 温度历史: `tail -10 ~/Desktop/1_monitor/temp_monitor/temp_data.csv`

    ## temp_monitor 集成
    历史数据: `~/Desktop/1_monitor/temp_monitor/temp_data.csv`
    格式: `时间戳,CPU封装温度,Core0,Core1,PCH,NVMe,电池电压,CPU使用率,内存使用率`

    8.3 验证 Skill

    source ~/.openclaw/env
    openclaw skills list

    输出中应能看到:

    ✓ ready │ 🖥️ system_info │ 获取本机硬件和软件信息… │ openclaw-managed

    8.4 效果展示

    在 IM 中问 AI “电脑是什么牌子的?硬件配置是什么?电池状态是什么样的?”,AI 通过 exec 工具执行命令,返回了完整的真实数据:

    您的电脑品牌是 Microsoft Corporation(微软公司),
    具体型号为 Microsoft Surface Pro。

    以下是部分关键配置:
    – 处理器:Intel Core i5-7300U @ 2.60GHz(4核4线程)
    – 内存:8GB
    – 存储:TOSHIBA NVMe 256GB
    – 系统:Ubuntu 22.04.3 LTS
    – 电池健康度:96.51%(充放电 6 次)
    – CPU 温度:30°C(正常范围)

    可以看到,AI 不是在"编答案"——它是真的执行了系统命令,读取了品牌型号、CPU、内存、磁盘、GPU、电池健康度、温度等真实数据。连电池充放电次数(6 次)和健康度(96.51%)都能精确报告。这就是 OpenClaw Skill 系统 + exec 工具的威力。

    8.5 Skill 开发的无限可能

    system_info 只是一个起点。基于同样的模式,你可以开发:

    Skill功能实现思路
    weather 天气查询 调用天气 API
    data_monitor 数据监控 读取外部 API 或本地监控数据
    file_search 文件搜索 执行 find / grep 命令
    docker_manager Docker 管理 执行 docker ps / docker logs
    smart_home 智能家居控制 调用 Home Assistant API

    Skill 的精髓:Markdown 定义触发条件 + Shell 脚本实现逻辑,AI 作为中间调度层。


    9. 模型选型:Qwen3 4B / 14B / 32B 实测对比

    同一个问题"电脑是什么牌子的",测试 OpenClaw 搭配三个 Qwen3 模型的表现:

    维度qwen3-4bqwen3-14bqwen3-32b
    回答质量 ❌ “我无法获取,请自行查询” ✅ 直接给出品牌和配置 ✅ 直接给出品牌和配置
    工具调用 不会调用 exec 正确读取 TOOLS.md 并执行命令 正确读取 TOOLS.md 并执行命令
    Skill 匹配 不会触发 正确匹配 system_info 正确匹配 system_info
    响应时间 ~12 秒 ~18 秒 ~25 秒
    适用场景 简单闲聊 日常使用(推荐) 复杂推理

    结论:qwen3-14b 是 OpenClaw 的最佳搭档——具备完整的工具调用和 Skill 匹配能力,响应速度可接受。4B 太小,无法理解 OpenClaw 的 function calling 协议。32B 能力更强但延迟明显增加,适合需要深度推理的场景。


    10. 踩坑记录与最佳实践

    坑 1:4B 模型完全不会用工具

    现象:Qwen3-4B 面对任何需要 exec 的问题,只会给出"通用指导"(“您可以通过 lshw 命令查看…”)。

    原因:4B 参数量太小,无法理解 OpenClaw 的工具调用协议(function calling)。

    解决:换 14B 或更大的模型。同时在 TOOLS.md 中写"本机信息速查"作为兜底。

    坑 2:网络代理配置要排除阿里云

    现象:API 请求超时或被拒绝。

    原因:如果服务器配置了网络代理,NO_PROXY 没有排除 dashscope.aliyuncs.com,导致阿里云 API 请求也走了代理。

    解决:在环境变量中排除阿里云域名:

    export NO_PROXY=localhost,127.0.0.1,dashscope.aliyuncs.com

    坑 3:TOOLS.md 必须写明能力

    现象:已经配好了 system_info Skill,但 AI 仍然不会主动调用。

    原因:OpenClaw 每次会话开始时读取 TOOLS.md,如果里面没有提及系统信息能力,AI 就不知道自己可以执行命令。

    解决:在 TOOLS.md 中显式写出命令列表和本机基本信息。

    坑 4:Nginx WebSocket 要注入 token

    现象:Web UI 能打开但无法连接到 AI 后端。

    原因:OpenClaw Control UI 通过 WebSocket 连接网关,需要 auth token。浏览器端不会自动带上 token。

    解决:在 Nginx 的 /ws location 中将 token 拼接到 proxy_pass URL:

    proxy_pass http://127.0.0.1:18789/ws?token=你的token;

    坑 5:新 Skill 需要重启 Gateway

    现象:创建了 Skill 目录但 openclaw skills list 看不到。

    解决:

    source ~/.openclaw/env
    openclaw gateway –force # 注意不是 openclaw restart

    最佳实践总结

    实践说明
    TOOLS.md 写速查表 即使模型不调用工具也能从文本中读取信息
    SOUL.md 写明能力边界 显式告诉 AI “你可以执行命令”,防止它客气地说"请自行查询"
    14B 起步 4B 无法 function calling,14B 是最低可用线
    NO_PROXY 排除国内 API 如配置了代理,阿里云域名需排除
    固定局域网 IP Nginx / SSH / IM 配置都依赖稳定 IP

    11. 时间线与未来计划

    部署时间线

    时间里程碑
    2026-02-08 17:00 安装 OpenClaw,配置阿里云 DashScope API
    2026-02-08 17:30 接入 IM 渠道,实现手机端远程对话
    2026-02-08 18:00 配置 Nginx HTTPS 反向代理,局域网 Web UI 可访问
    2026-02-08 18:30 自定义 Workspace(SOUL.md / IDENTITY.md / TOOLS.md)
    2026-02-08 19:00 测试 Qwen3 模型(4B / 14B / 32B),确定 14B 为默认
    2026-02-08 20:00 开发数据监控脚本 + 飞书推送(联动 OpenClaw 生态)
    2026-02-08 21:00 开发 system_info Skill,AI 可读取本机硬件/软件信息
    2026-02-08 21:30 模型对比实测:验证 14B 的工具调用能力
    2026-02-08 22:00 整理项目结构,初始化 Git 仓库,撰写本文

    从零到功能完备的 OpenClaw 私人 AI 助手,总计约 5 小时。

    未来计划

    近期(1-2 周)
    • 更多 Skill:天气查询、日程管理、文件搜索
    • 记忆系统:配置 MEMORY.md,让 AI 记住偏好和历史上下文
    • Heartbeat 定时任务:AI 主动推送天气预报、日历提醒
    • 数据监控 Skill:通过 IM 直接问 AI 获取实时监控数据
    中期(1-2 月)
    • 飞书双向联动:让 AI 同时在多个 IM 渠道响应消息
    • MCP Server 集成:通过 Model Context Protocol 接入更多外部工具
    • 多 Agent 协作:Coding Agent、Research Agent 等专业子 Agent
    • 语音交互:接入 Qwen3-Omni 实现语音输入/输出
    长期愿景
    • Home Assistant 联动:AI 控制智能家居
    • 知识库 RAG:私有文档库问答
    • 自动化工作流:AI 监控邮件 / 代码仓库 / 服务器,异常自动处理并通知
    • 迁移到专用服务器:从 Surface Pro 迁移到 NAS 或云服务器

    参考链接

    • OpenClaw 官方仓库
    • OpenClaw 一键部署工具
    • 阿里云 DashScope
    • DashScope OpenAI 兼容模式文档
    • linux-surface 内核

    环境信息:Ubuntu 22.04.3 LTS / Surface Pro (i5-7300U, 8GB) / OpenClaw 2026.2.6 / Qwen3-14B

    撰写日期:2026 年 2 月 8 日

    如有问题欢迎评论交流!

    赞(0)
    未经允许不得转载:171主机测评 » OpenClaw 实战部署:用一台旧 Surface Pro 打造 7×24 私人 AI 助手
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址