跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / BashNode.jsSaaSWeChatAI

用 OpenClaw 和飞书搭一个 7x24 服务器运维机器人

用 OpenClaw 把飞书、模型和服务器 shell 串起来,可以做一个常驻的运维机器人。文章给出从安装 OpenClaw、注册 systemd 服务、配置 OneRouter/DeepSeek 模型,到接入飞书长连接、设置 AGENTS.md 人设、exec 白名单和命令审批的完整流程。核心思路是让机器人只在限定目录和限定命令内工作,既能查日志、看端口、查磁盘,也尽量把风险关在可控范围里。

ByteFlow发布于 2026/6/30更新于 2026/10/763 浏览
用 OpenClaw 和飞书搭一个 7x24 服务器运维机器人

架构概览

飞书 App(WebSocket 长连接)
    ↕
OpenClaw Gateway(服务器上 systemd 常驻)
    ↕
AI 模型(DeepSeek v3.2 / GLM 4.7)
    ↕
服务器 Shell(受白名单限制的命令执行)

这套东西的核心很简单:飞书负责入口,OpenClaw 负责把消息转成 Agent 行为,模型负责理解意图,最后由受控的 shell 执行真正的运维动作。能跑起来不难,难的是别把服务器权限放得太松。

核心组件如下:

  • OpenClaw Gateway:Agent 网关,负责会话管理、工具调用和渠道连接。
  • 飞书插件:通过 WebSocket 长连接收发消息,不需要公网回调地址,配置会省很多事。
  • exec 工具:允许 AI 在服务器上执行 shell 命令,配合白名单策略控制风险。
  • 模型提供商:支持自定义 OpenAI 兼容 API,本文使用 OneRouter 提供的 DeepSeek V3.2。

环境要求

  • Linux 服务器(本文以 Ubuntu 为例)
  • Node.js 22+
  • npm 10+
  • 飞书企业账号(可免费创建)
  • AI 模型 API(OpenAI / Anthropic / OpenRouter / 自定义兼容接口均可)

安装 OpenClaw

如果目标是让机器人直接管服务器服务,我更倾向于裸机装 npm 全局包,而不是先塞进 Docker 里。容器化当然也能做,但这类运维机器人最后还是要落到本机命令和系统服务上,直接装省一层心智负担。

npm install -g openclaw

装完后先确认 openclaw 命令是否可用。如果提示 command not found,把 npm 全局 bin 目录加到 PATH 里:

echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

注册为 systemd 服务

运维机器人想做到 7x24,Gateway 必须开机自启并且长期常驻。

openclaw gateway install
openclaw gateway start

查看状态:

openclaw gateway status

配置模型提供商

编辑 ~/.openclaw/openclaw.json,补上模型配置。下面以 OneRouter + DeepSeek V3.2 为例:

{
  "agents": {
    "defaults": {
      "model": {
        "primary": "onerouter/deepinfra/deepseek-v3.2"
      }
    }
  },
  "models": {
    "mode": "merge",
    "providers": {
      "onerouter": {
        "baseUrl": "https://your-api-endpoint/v1",
        "apiKey": "your-api-key",
        "api": "openai-completions",
        "models": [
          {
            "id": "deepinfra/deepseek-v3.2",
            "name": "DeepSeek V3.2"
          }
        ]
      }
    }
  }
}

只要是兼容 OpenAI API 格式的提供商,这种接法基本都通用。

接入飞书

1. 创建飞书应用

去飞书开放平台创建企业自建应用。在凭证与基础信息页记下 App ID 和 App Secret。权限这块别图省事,至少把下面这些开上:

  • im:message — 发送消息
  • im:message:send_as_bot — 以机器人身份发送
  • im:message.p2p_msg:readonly — 读取私聊消息
  • im:message.group_at_msg:readonly — 读取群聊 @ 消息
  • im:resource — 读取资源
  • contact:contact.base:readonly — 读取联系人基本信息(可选,用于解析发送者名字)

在应用能力里启用机器人,然后安装飞书插件:

openclaw plugins install @openclaw/feishu
2. 配置飞书 App 信息

可以直接走 CLI 向导:

openclaw channels add

选择 Feishu,填入 App ID 和 App Secret。也可以手动写进 openclaw.json:

{
  "channels": {
    "feishu": {
      "enabled": true,
      "accounts": {
        "main": {
          "appId": "cli_xxxxx",
          "appSecret": "your-app-secret"
        }
      }
    }
  }
}
3. 重启并确认连接
openclaw gateway restart
openclaw logs --follow

看到下面两行,基本就说明飞书长连接起来了:

feishu[main]: WebSocket client started
[ws] ws client ready
4. 配置飞书事件订阅

回到飞书开放平台:

  1. 事件与回调里选择'使用长连接接收事件',保存。
  2. 添加事件 im.message.receive_v1。
  3. 到版本管理与发布里创建版本并发布。

这里有个顺序问题,先把 Gateway 拉起来,再去保存长连接订阅方式,不然飞书后台那边经常不会给你过。

配置运维 Agent

1. 设置 Agent 人设

编辑 ~/.openclaw/workspace/AGENTS.md,在原有内容后追加运维规则:

## 服务器运维规则

你同时是一个服务器运维助手,负责维护管理员在这台服务器上部署的服务。

### 工作范围
- 只管理 /home/youruser/projects 目录下的项目和服务
- 不要触碰其他用户的文件和服务

### 允许的操作
- 查看日志、进程、服务状态、端口、磁盘/内存
- 管理用户级服务(systemctl --user)
- 工作目录下的文件操作

### 禁止的操作
- rm -rf(用 trash 代替)
- sudo 操作(除非明确要求)
- 修改系统配置
- 重启其他用户的服务

### 语言
- 用中文回复
2. 配置 exec 工具

在 openclaw.json 里加上工具配置,让 Agent 能在服务器上执行命令:

{
  "tools": {
    "exec": {
      "host": "gateway",
      "security": "allowlist",
      "ask": "off"
    }
  }
}
  • host: gateway,命令直接在服务器本机执行
  • security: allowlist,只允许白名单命令
  • ask: off,不弹审批提示,适合 7x24 场景
3. 配置命令白名单

编辑 ~/.openclaw/exec-approvals.json,把允许执行的命令列出来:

{
  "version": 1,
  "defaults": {
    "security": "allowlist",
    "ask": "off",
    "askFallback": "allowlist"
  },
  "agents": {
    "main": {
      "security": "allowlist",
      "ask": "off",
      "askFallback": "allowlist",
      "allowlist": [
        { "pattern": "/usr/bin/bash" },
        { "pattern": "/usr/bin/sh" },
        { "pattern": "/usr/bin/ls" },
        { "pattern": "/usr/bin/cat" },
        { "pattern": "/usr/bin/tail" },
        { "pattern": "/usr/bin/head" },
        { "pattern": "/usr/bin/find" },
        { "pattern": "/usr/bin/du" },
        { "pattern": "/usr/bin/df" },
        { "pattern": "/usr/bin/free" },
        { "pattern": "/usr/bin/ps" },
        { "pattern": "/usr/bin/top" },
        { "pattern": "/usr/bin/ss" },
        { "pattern": "/usr/bin/netstat" },
        { "pattern": "/usr/bin/journalctl" },
        { "pattern": "/usr/bin/systemctl" },
        { "pattern": "/usr/bin/git" },
        { "pattern": "/usr/bin/docker" },
        { "pattern": "/usr/bin/node" },
        { "pattern": "/usr/bin/python3" }
      ]
    }
  }
}

/usr/bin/bash 和 /usr/bin/sh 记得一定要加,不然带管道的命令会卡住。不同机器路径可能不一样,最好先用 which <command> 确认。

测试与使用

重启 Gateway 后,直接在飞书里对机器人说:

帮我看看服务器上哪些服务在运行

机器人会自己调用 systemctl、ps、ss 之类的命令,整理出一份结构化的服务器状态报告。

常见的问法也可以直接丢给它:

  • '查看 xxx 服务的最近日志'
  • '服务器磁盘还剩多少空间'
  • '帮我重启一下 xxx 服务'
  • '看看哪些端口在监听'

安全策略总结

层级措施说明
命令执行allowlist 白名单只允许指定的二进制文件
工作范围AGENTS.md 规则Agent 被指示只操作特定目录
飞书接入pairing 配对新用户需要管理员批准才能使用
系统权限非 root 运行Gateway 以普通用户身份运行

最终的 openclaw.json 结构

{
  "plugins": { "entries": { "feishu": { "enabled": true } } },
  "agents": {
    "defaults": {
      "model": { "primary": "your-provider/your-model" }
    }
  },
  "models": {
    "mode": "merge",
    "providers": { "...": "..." }
  },
  "tools": {
    "exec": {
      "host": "gateway",
      "security": "allowlist",
      "ask": "off"
    }
  },
  "channels": {
    "feishu": {
      "enabled": true,
      "accounts": {
        "main": {
          "appId": "cli_xxxxx",
          "appSecret": "your-secret"
        }
      }
    }
  },
  "gateway": { "mode": "local" }
}

参考材料

  • OpenClaw GitHub

目录

  1. 架构概览
  2. 环境要求
  3. 安装 OpenClaw
  4. 注册为 systemd 服务
  5. 配置模型提供商
  6. 接入飞书
  7. 1. 创建飞书应用
  8. 2. 配置飞书 App 信息
  9. 3. 重启并确认连接
  10. 4. 配置飞书事件订阅
  11. 配置运维 Agent
  12. 1. 设置 Agent 人设
  13. 服务器运维规则
  14. 工作范围
  15. 允许的操作
  16. 禁止的操作
  17. 语言
  18. 2. 配置 exec 工具
  19. 3. 配置命令白名单
  20. 测试与使用
  21. 安全策略总结
  22. 最终的 openclaw.json 结构
  23. 参考材料

更多推荐文章

查看全部
  • Transformer 入门教程:原理、架构与实战详解
  • Capacitor 跨平台打包实战:Web 应用转原生 App
  • Vim Session 配置:保存与恢复工作区状态
  • 数据结构:快速排序非递归实现、优化及内省排序详解
  • C++ 哈希表底层实现:unordered_map/set、位图与布隆过滤器
  • Windows 系统安装与配置 RabbitMQ 教程
  • MySQL 基本查询
  • Java 位运算算法题目练习
  • 具身智能机器人运控通讯架构与实现系列
  • 零基础搭建 FPGA 下载环境:USB-Blaster 驱动安装指南
  • VS Code Python 扩展提示无环境安装 uv 后的终端输出解读与配置
  • LangChain 核心概念与工作原理详解
  • Java 架构师面试核心考点与能力标准梳理
  • 网络基础核心:MAC、交换机、IP 与路由器详解
  • 学生与教育工作者免费获取 GitHub Copilot 教育认证指南
  • 医疗 AI 算法编程深度解析:败血症预测全流程总结
  • Linux 信号基础:产生方式与闹钟机制
  • 解决打包报错 Failed to load module script MIME type text/html
  • 轻量级 WebDAV 服务器部署与实战指南
  • Windows 11 本地部署 OpenClaw 实操:集成 Telegram 机器人与网页搜索能力

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online