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

基于 OpenClaw 与飞书搭建 7x24 小时服务器运维机器人

前言 基于 OpenClaw(一款近期流行的本地 AI Agent 网关),记录从零搭建通过飞书对话管理服务器运维机器人的全过程。该机器人支持随时随地通过飞书查看服务器状态、检索日志、管理进程。其核心机制为:OpenClaw 将聊天平台(如飞书)的消息路由至大模型,模型调用本地工具(如 Shell、文件系统、浏览器)执行任务,并将结果自动返回至飞书会话,实现自动化运维交互。 架构概览 核心组件…

Tesfly发布于 2026/3/30更新于 2026/9/1130K 浏览
基于 OpenClaw 与飞书搭建 7x24 小时服务器运维机器人

前言

本文基于 OpenClaw(一款近期流行的本地 AI Agent 网关),记录从零搭建通过飞书对话管理服务器运维机器人的全过程。该机器人支持随时随地通过飞书查看服务器状态、检索日志、管理进程。其核心机制为:OpenClaw 将聊天平台(如飞书)的消息路由至大模型,模型调用本地工具(如 Shell、文件系统、浏览器)执行任务,并将结果自动返回至飞书会话,实现自动化运维交互。

架构概览

飞书 App (WebSocket 长连接)
      ↕
OpenClaw Gateway (服务器上 systemd 常驻)
      ↕
AI 模型 (DeepSeek v3.2/GLM 4.7)
      ↕
服务器 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 服务

让 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 格式的模型提供商都可以用这种方式接入。

第四步:接入飞书

4.1 创建飞书应用
  1. 访问飞书开放平台,创建企业自建应用。
  2. 在凭证与基础信息页面,记下 App ID 和 App Secret。
  3. 在权限管理中添加以下权限:
    • im:message — 发送消息
    • im:message:send_as_bot — 以机器人身份发送
    • im:message.p2p_msg:readonly — 读取私聊消息
    • im:message.group_at_msg:readonly — 读取群聊 @消息
    • im:resource — 读取资源
    • contact:contact.base:readonly — 读取联系人基本信息(可选,用于解析发送者名字)
  4. 在应用能力中启用机器人。
  5. 安装飞书插件:
    openclaw plugins install @openclaw/feishu
    
4.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"
        }
      }
    }
  }
}
4.3 重启并确认连接
openclaw gateway restart
openclaw logs --follow

看到以下日志说明飞书长连接成功:

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

回到飞书开放平台:

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

注意:必须先启动 Gateway 建立长连接,飞书后台才能保存'长连接'订阅方式。

第五步:配置运维 Agent

5.1 设置 Agent 人设

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

## 服务器运维规则

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

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

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

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

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

在 openclaw.json 中添加工具配置,让 Agent 可以在服务器上执行命令:

{
  "tools": {
    "exec": {
      "host": "gateway",
      "security": "allowlist",
      "ask": "off"
    }
  }
}
  • host: "gateway":命令直接在服务器本机执行
  • security: "allowlist":只允许白名单命令,安全可控
  • ask: "off":不弹审批提示(7x24 自动化需要)
5.3 配置命令白名单

编辑 ~/.openclaw/exec-approvals.json,为 Agent 配置允许执行的命令:

{
  "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. 环境要求
  4. 第一步:安装 OpenClaw
  5. 第二步:注册为 systemd 服务
  6. 第三步:配置模型提供商
  7. 第四步:接入飞书
  8. 4.1 创建飞书应用
  9. 4.2 配置飞书 App 信息
  10. 4.3 重启并确认连接
  11. 4.4 配置飞书事件订阅
  12. 第五步:配置运维 Agent
  13. 5.1 设置 Agent 人设
  14. 服务器运维规则
  15. 工作范围
  16. 允许的操作
  17. 禁止的操作
  18. 语言
  19. 5.2 配置 exec 工具
  20. 5.3 配置命令白名单
  21. 第六步:测试
  22. 安全策略总结
  23. 最终的 openclaw.json 结构
  24. 参考资料

更多推荐文章

查看全部
  • 嵌入式 Linux 实战:基于泰山派的 AI 网络摄像头
  • 大模型落地观察:金融、医疗、制造、物流和农业的真实进展
  • Flutter 三方库 flutter_cors 应对鸿蒙 Web 与混合开发中的跨域挑战
  • KWDB 实战:SQL 构建物流车队轨迹监控与实时报警系统
  • 告别 Electron:纯 C# 自研轻量 UI 引擎 XchyUI,内核<200KB
  • RabbitMQ C++ 消息队列组件与 AMQP-CPP 使用
  • async_simple:轻量级 C++ 异步协程框架
  • Open WebUI 下载模型文件的默认存储位置
  • 上下文协议(MCP)Java SDK 指南
  • Qwen2.5-7B-Instruct LoRA 微调实战:基于 LLaMA-Factory 单机单卡 V100
  • Visual C++ Redistributable 安装问题排查与修复指南
  • “喝完咖啡代码就写好?”微软Copilot营销翻车:开发者质疑与工程现实脱节
  • C++ 标准库容器适配器:stack、queue 与 priority_queue
  • 大模型 Agent 应用的 6 种架构设计模式
  • Python 程序员应摒弃的 18 个常见坏习惯
  • OpenClaw Secure DM Pairing:为 AI 机器人构建安全私信访问机制
  • OpenClaw 汉化版部署指南:npm、Docker 与一键脚本安装方案
  • PID 循迹机器人控制算法实战:24 电赛 H 题解析
  • OpenClaw 部署指南:安装、Coding Plan 配置与飞书机器人接入
  • 神经网络原理、优势及应用场景详解

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

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

  • Base64 文件转换器

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

  • Markdown转HTML

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

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online