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

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

本文基于 OpenClaw(一款近期流行的本地 AI Agent 网关),记录从零搭建通过飞书对话管理服务器运维机器人的全过程。该机器人支持随时随地通过飞书查看服务器状态、检索日志、管理进程。其核心机制为:OpenClaw 将聊天平台(如飞书)的消息路由至大模型,模型调用本地工具(如 Shell、文件系统、浏览器)执行任务,并将结果自动返回至飞书会话,实现自动化运维交互。
飞书 App (WebSocket 长连接)
↕
OpenClaw Gateway (服务器上 systemd 常驻)
↕
AI 模型 (DeepSeek v3.2/GLM 4.7)
↕
服务器 Shell (受白名单限制的命令执行)
核心组件:
由于需要让机器人直接管理服务器上的服务,选择 npm 全局安装(裸机安装),而不是 Docker:
npm install -g openclaw
安装后确认 openclaw 命令可用。如果提示 command not found,需要把 npm 全局 bin 目录加入 PATH:
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
让 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 格式的模型提供商都可以用这种方式接入。
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
使用 CLI 向导:
openclaw channels add
选择 Feishu,输入 App ID 和 App Secret。也可以手动在 openclaw.json 中添加:
{
"channels": {
"feishu": {
"enabled": true,
"accounts": {
"main": {
"appId": "cli_xxxxx",
"appSecret": "your-app-secret"
}
}
}
}
}
openclaw gateway restart
openclaw logs --follow
看到以下日志说明飞书长连接成功:
feishu[main]: WebSocket client started
[ws] ws client ready
回到飞书开放平台:
im.message.receive_v1注意:必须先启动 Gateway 建立长连接,飞书后台才能保存'长连接'订阅方式。
编辑 ~/.openclaw/workspace/AGENTS.md,在原有内容基础上追加运维规则:
## 服务器运维规则
你同时是一个服务器运维助手,负责维护管理员在这台服务器上部署的服务。
### 工作范围
- 只管理 /home/youruser/projects 目录下的项目和服务
- 不要触碰其他用户的文件和服务
### 允许的操作
- 查看日志、进程、服务状态、端口、磁盘/内存
- 管理用户级服务(systemctl --user)
- 工作目录下的文件操作
### 禁止的操作
- rm -rf(用 trash 代替)
- sudo 操作(除非明确要求)
- 修改系统配置
- 重启其他用户的服务
### 语言
- 用中文回复
在 openclaw.json 中添加工具配置,让 Agent 可以在服务器上执行命令:
{
"tools": {
"exec": {
"host": "gateway",
"security": "allowlist",
"ask": "off"
}
}
}
host: "gateway":命令直接在服务器本机执行security: "allowlist":只允许白名单命令,安全可控ask: "off":不弹审批提示(7x24 自动化需要)编辑 ~/.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 等命令,收集信息后返回一份结构化的服务器状态报告。
更多使用场景:
| 层级 | 措施 | 说明 |
|---|---|---|
| 命令执行 | allowlist 白名单 | 只允许指定的二进制文件 |
| 工作范围 | AGENTS.md 规则 | Agent 被指示只操作特定目录 |
| 飞书接入 | pairing 配对 | 新用户需要管理员批准才能使用 |
| 系统权限 | 非 root 运行 | Gateway 以普通用户身份运行 |
{
"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" }
}

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online