---
title: "Clawdbot + Kimi + 飞书：生产环境自动化巡检部署指南"
author: deletexiumu
pubDatetime: 2026-01-29T10:00:00+08:00
featured: false
draft: false
tags:
  - AI Agent
  - 教程
description: "用 Kimi 搭建 7×24 小时自动巡检机器人，巡检 YARN、ES、ClickHouse，结果直接发到飞书群。"
---

> 本文档记录在 OrbStack Linux VM 中部署 Clawdbot 并对接飞书的完整流程，用于实现数据库自动化巡检。
>
> **更新日期**：2026-01-29
> **模型**：月之暗面 Kimi K2.5
> **消息通道**：飞书 Webhook（替代 WebSocket，更稳定）

---

## 〇、质量门禁（必读）

> ⚠️ **本章节必须首先阅读**。由于巡检机器人直接接触生产环境，必须设置严格的行为边界。哪怕现在看不懂，也请先通读一遍，待完成部署后再回过头理解。

### 核心原则

**AI 是数据库巡检专家，不是数据库管理员。**

它的职责是：观察、分析、报告——而不是直接操作生产环境。

### ⛔ 红线规则（绝对禁止）

#### 数据库操作禁止

| 禁止操作 | 说明 |
|----------|------|
| `DELETE` | 任何形式的数据删除 |
| `UPDATE` | 任何形式的数据修改 |
| `INSERT` | 不插入任何数据 |
| `CREATE` | 不创建任何数据库对象 |
| `DROP` | 不删除任何数据库对象 |
| `ALTER` | 不修改任何表结构 |
| `TRUNCATE` | 不清空任何表 |

**唯一允许的 SQL 操作：`SELECT` 查询（只读）**

![禁止删表示例](/blog/auto-inspection-bot/禁止删表示例.png)

#### 系统操作禁止

| 禁止操作 | 说明 |
|----------|------|
| `rm`、`del` | 禁止删除任何文件 |
| `systemctl restart`、`service restart` | 禁止重启任何服务 |
| 编辑远程配置文件 | 禁止修改远程服务器配置 |
| `shutdown`、`reboot` | 禁止关机或重启服务器 |
| `chmod`、`chown` | 禁止修改权限 |
| `apt`、`yum`、`pip install` | 禁止安装或卸载软件 |

![禁止删除文件示例](/blog/auto-inspection-bot/禁止删除文件示例.png)

#### 信息安全禁止

- **禁止发送用户名** - 不在消息中暴露任何用户名
- **禁止发送密码** - 不在消息中暴露任何密码或密钥
- **禁止发送证书文件内容** - 不读取或发送任何证书、密钥文件
- **禁止发送连接字符串** - 不暴露包含凭据的连接信息
- **禁止发送服务器 IP** - 在报告中使用别名而非真实 IP

### ✅ 允许的操作

#### 数据库操作

- `SELECT` 查询（只读查询）
- `SHOW` 命令（查看状态）
- `DESCRIBE` / `DESC`（查看表结构）
- `EXPLAIN`（分析查询计划）

#### 系统操作

- 读取日志文件（`cat`、`less`、`tail`）
- 查看系统状态（`top`、`free`、`df`、`ps`）
- 查看网络状态（`netstat`、`ss`）
- 查看文件列表（`ls`）
- 读取配置文件（仅查看，不修改）

#### 文件操作

- 在指定工作目录创建巡检报告
- 读取现有报告文件

### 敏感信息脱敏规则

当输出包含敏感信息时，必须进行脱敏：

| 原始信息 | 脱敏方式 |
|----------|----------|
| IP 地址 | 使用别名（如 "ES集群主节点"） |
| 用户名 | 使用 `***` 替代 |
| 密码 | 绝不显示，使用 `[已隐藏]` |
| 文件路径中的用户名 | 使用 `~` 替代 |

![无法发送密码示例](/blog/auto-inspection-bot/无法发送密码示例.png)

### 遇到危险操作时的处理

如果用户要求执行禁止的操作，AI 必须：

1. **明确拒绝** - 说明这是禁止操作
2. **解释原因** - 说明为什么不能执行
3. **提供替代** - 建议安全的替代方案
4. **记录请求** - 在日志中记录该请求

示例回复：
> ⚠️ 抱歉，我无法执行 DELETE 操作。这属于禁止的数据修改操作。
> 如果确实需要删除数据，请联系 DBA 手动执行。

### 门禁配置文件

质量门禁通过工作区的 `SOUL.md` 文件实现，Clawdbot 会在每次会话开始时读取：

```
~/.clawdbot/agents/defaults/workspace/SOUL.md
```

---

## 一、架构概览

```
┌─────────────┐     Webhook      ┌─────────────────┐     Gateway API     ┌─────────────┐
│   飞书群聊   │ ──────────────▶ │  clawdbot-bridge │ ─────────────────▶ │  Clawdbot   │
│  @牛马巡检   │                 │   (消息中转)      │                    │  (AI Agent) │
└─────────────┘ ◀────────────── └─────────────────┘ ◀───────────────── └─────────────┘
                   消息回复                               执行结果
                                                              │
                                                              ▼
                                                     ┌─────────────────┐
                                                     │  Kimi K2.5 API  │
                                                     │  (月之暗面)       │
                                                     └─────────────────┘
                                                              │
                                                              ▼
                                                     ┌─────────────────┐
                                                     │   生产环境       │
                                                     │  (YARN/ES/CK)   │
                                                     └─────────────────┘
```

**为什么用 Webhook 而不是 WebSocket？**

| 对比项 | WebSocket | Webhook |
|--------|-----------|---------|
| 连接方式 | 长连接 | 短连接 |
| 断线影响 | 正在执行的任务会中断 | 无影响，每个请求独立 |
| 生产稳定性 | ⚠️ 不稳定 | ✅ 稳定 |
| 网络要求 | 需要保持连接 | 只需 HTTP 可达 |

---

## 二、创建隔离环境

### 为什么需要隔离？

Clawdbot 需要完整的系统访问权限（shell、文件系统等），存在安全风险。建议在隔离的 VM 中运行。

### 使用 OrbStack 创建 VM

```bash
# 创建 Ubuntu VM
orb create ubuntu:noble moltbot-vm

# 进入 VM
orb shell moltbot-vm
```

---

## 三、安装 Clawdbot

### 3.1 安装依赖

```bash
# 以 root 用户安装
orb -m moltbot-vm -u root bash -c "apt-get update && apt-get install -y curl git"

# 安装 Node.js 22
orb -m moltbot-vm -u root bash -c "curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && apt-get install -y nodejs"

# 安装 pnpm
orb -m moltbot-vm -u root bash -c "npm install -g pnpm"
```

### 3.2 安装 Clawdbot

```bash
orb -m moltbot-vm bash -c "curl -fsSL https://molt.bot/install.sh | bash"
```

### ⚠️ 坑：PATH 配置

安装完成后 `clawdbot` 命令可能找不到：

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

---

## 四、配置 AI 模型

### ⚠️ 坑：OpenAI 兼容 API 格式问题

**问题现象**：使用 `openai-completions` API 格式时，模型返回空回复。

**解决方案**：月之暗面 Kimi 支持 Anthropic 格式的 API 端点，更稳定。

### 正确配置

`~/.clawdbot/clawdbot.json`：

```json
{
  "agents": {
    "defaults": {
      "workspace": "/home/cookie/clawd",
      "model": {
        "primary": "moonshot/kimi-k2.5"
      }
    }
  },
  "models": {
    "providers": {
      "moonshot": {
        "baseUrl": "https://api.moonshot.cn/anthropic",
        "apiKey": "your-kimi-api-key",
        "api": "anthropic-messages",
        "models": [
          {
            "id": "kimi-k2.5",
            "name": "Kimi K2.5",
            "reasoning": false,
            "input": ["text", "image"],
            "contextWindow": 262144,
            "maxTokens": 8192
          }
        ]
      }
    }
  },
  "gateway": {
    "mode": "local",
    "port": 18789,
    "bind": "loopback"
  }
}
```

**关键配置项**：

| 配置项 | 错误值 | 正确值 |
|--------|--------|--------|
| `baseUrl` | `https://api.moonshot.cn/v1` | `https://api.moonshot.cn/anthropic` |
| `api` | `openai-completions` | `anthropic-messages` |

---

## 五、对接飞书（Webhook 模式）

### 5.1 飞书应用配置

1. 登录 [飞书开放平台](https://open.feishu.cn/)
2. 创建企业自建应用
3. 获取 **App ID** 和 **App Secret**

### 5.2 配置权限

在「权限管理」中开启：
- `im:message` - 获取与发送消息
- `im:message.group_at_msg` - 接收群聊 @ 消息
- `im:message.p2p_msg` - 接收私聊消息

### 5.3 配置事件订阅（Webhook 模式）

在「事件订阅」中：
- **请求地址**：`https://your-domain:port/webhook/event`
- **添加事件**：`im.message.receive_v1`
- **获取 Verification Token** 和 **Encrypt Key**

### 5.4 Bridge 配置

`~/.clawdbot/bridge.json`：

```json
{
  "mode": "webhook",
  "feishu": {
    "app_id": "cli_xxxxxxxxxxxx",
    "app_secret": "your-app-secret"
  },
  "webhook": {
    "port": 8080,
    "path": "/webhook/event",
    "verification_token": "your-verification-token",
    "encrypt_key": "your-encrypt-key",
    "workers": 10,
    "queue_size": 100
  }
}
```

### 5.5 HTTPS 配置（生产环境必需）

飞书 Webhook 要求 HTTPS，可用 Caddy 反向代理：

```bash
# 安装 Caddy
apt install caddy

# 配置（使用高位端口避免权限问题）
cat > /etc/caddy/Caddyfile << 'EOF'
:28443 {
    tls internal
    reverse_proxy localhost:8080
}
EOF

systemctl restart caddy
```

### 5.6 启动服务

```bash
# 启动 Gateway
clawdbot gateway start

# 启动 Bridge
~/clawdbot-bridge start
```

---

## 六、配置工作区（质量门禁实现）

工作区目录结构：

```
~/clawd/
├── SOUL.md        # 质量门禁规则（AI 行为边界）
├── TOOLS.md       # 巡检工具和命令模板
├── IDENTITY.md    # AI 身份定义
├── USER.md        # 用户信息
├── AGENTS.md      # Agent 工作指南
└── .secrets.env   # 敏感凭据（git忽略）
```

### SOUL.md 示例

```markdown
# SOUL.md - 牛马的行为准则

## 核心原则

**我是数据库巡检专家，不是数据库管理员。**

## ⛔ 绝对禁止

- 禁止执行 DELETE/UPDATE/INSERT/CREATE/DROP/ALTER/TRUNCATE
- 禁止删除任何文件
- 禁止重启任何服务
- 禁止发送密码、用户名、真实 IP

## ✅ 允许的操作

- SELECT 只读查询
- 查看系统状态
- 生成巡检报告
```

### TOOLS.md 示例

```markdown
# 巡检命令模板

## 远程执行（通过跳板机）
ssh xunjian@跳板机 'source ~/bigdata_env && kinit && <命令>'

## YARN 巡检
yarn application -list
yarn queue -status root

## Elasticsearch 巡检
curl -s -k --negotiate -u : "https://ES集群:24100/_cluster/health"

## ClickHouse 巡检
curl -s -k -u "user:pass" "https://CK集群:21422/?query=..."
```

---

## 七、常用命令速查

### VM 管理

```bash
orb shell moltbot-vm      # 进入 VM
orb stop moltbot-vm       # 停止 VM
orb start moltbot-vm      # 启动 VM
```

### 服务管理

```bash
clawdbot gateway status   # Gateway 状态
clawdbot gateway restart  # 重启 Gateway
~/clawdbot-bridge status  # Bridge 状态
~/clawdbot-bridge restart # 重启 Bridge
```

### 日志查看

```bash
# Gateway 日志
tail -f /tmp/clawdbot/clawdbot-$(date +%Y-%m-%d).log

# Bridge 日志
tail -f ~/.clawdbot/bridge.log
```

---

## 八、踩坑总结

| 问题 | 现象 | 解决方案 |
|------|------|----------|
| PATH 未配置 | `clawdbot: command not found` | 添加 `~/.npm-global/bin` 到 PATH |
| OpenAI API 格式不兼容 | 返回空回复 | 改用 `anthropic-messages` API 格式 |
| 模型名称错误 | `404 model not found` | 查询 API 获取正确的模型 ID |
| WebSocket 断线 | 任务中断无感知 | 改用 Webhook 模式 |
| 飞书要求 HTTPS | Webhook 验证失败 | 配置 Caddy 反向代理 |
| 会话状态损坏 | 持续报错 | 清理 `~/.clawdbot/agents/*/sessions/*` |

---

## 九、效果展示

### 定时巡检任务配置

配置完成后，AI 会自动按计划执行巡检并将结果发送到群里：

![定时巡检任务](/blog/auto-inspection-bot/定时巡检任务.png)

### 巡检报告示例

执行巡检后，AI 会生成结构化的报告，包含各组件状态、关键变化和结论：

![巡检报告](/blog/auto-inspection-bot/巡检报告.png)

---

## 参考资料

- [Moltbot 官方文档](https://docs.molt.bot/)
- [飞书 Bridge 项目](https://github.com/wy51ai/moltbotCNAPP)
- [飞书开放平台](https://open.feishu.cn/)
- [Kimi API 文档](https://platform.moonshot.cn/docs)
