Hermes 飞书 Bot 团:总指挥管调度,yunwei 管运维,notes 管笔记

上一篇讲了怎么让 Hermes 跟 Obsidian 搭起来,建一个自动跑的资料库。有读者问:一个机器人又要管服务器又要管笔记又要回消息,会不会忙不过来?

会。而且会乱。

所以这篇说说怎么拆分,把一件事拆成三个机器人干,各管一摊。

## 一个机器人管所有,哪不对?

想象一个团队里只有一个人,又要修服务器、又要写文档、又要接待客户。不是干不来,是干不精。

Hermes 其实支持创建多个「分身」,每个分身有独立的配置、独立的飞书入口、独立的定时任务。装在一个系统上,跑各自的进程,互不干扰。

这个方案分三层:

– **总指挥** — 调度层。管飞书群聊天、分配任务、安排备份
– **yunwei** — 运维层。管服务器巡检、补丁安全、数据库备份
– **notes** — 资料层。管笔记归档、文章采集、知识库维护

三个人,三个群,各回各家。

## 怎么搭起来

从技术上说,每个 bot 就是一个 Hermes profile。配置顺序如下。

### 第一步:在飞书开放平台建三个应用

打开 `open.feishu.cn/app`,创建三个企业自建应用,分别叫「总指挥」「yunwei」「notes」。

每个应用都要做这几件事:

1. 开启机器人功能
2. 加权限:消息收发、群组信息、通讯录读取
3. 订阅事件:`im.message.receive_v1`(私聊和群聊都勾上)
4. 发布上线

完成后拿到各自的 App ID 和 App Secret,分开存放。

### 第二步:创建三个 Hermes profile

“`bash
hermes profile create yunwei
hermes profile create notes
“`

每个 profile 在 `~/.hermes/profiles/` 下有独立的目录,放自己的配置和脚本。

### 第三步:配置飞书通道

在 `config.yaml` 里写上对应的飞书凭证:

“`yaml
channels:
feishu:
app_id: cli_xxx
app_secret_env: FEISHU_APP_SECRET
group_policy: open
require_mention: true
“`

总指挥设 `require_mention: false`,这样在群里直接说话就能响应。yunwei 和 notes 设 `true`,只回应 @ 它的消息,不插嘴。

`.env` 文件里加一行:

“`
FEISHU_APP_SECRET=从开放平台复制的 Secret
FEISHU_ALLOW_ALL_USERS=true
“`

### 第四步:启动 gateway

每个 profile 的 gateway 是一个独立的进程,跟飞书保持长连接。最稳的方式是用 systemd 保活:

“`bash
# 总指挥(默认 profile)
hermes gateway install

# yunwei
python -m hermes_cli.main –profile yunwei gateway service install –replace

# notes
python -m hermes_cli.main –profile notes gateway service install –replace
“`

三个 systemd 服务跑起来后,在飞书群里就可以分别 @ 三个 bot,各回各的。

验证方法:

“`bash
systemctl –user list-units –type=service –state=running | grep hermes
“`

应该看到三个 active 的服务。

## 各自干什么活

分工不是硬分的,是按场景慢慢长出来的。

**总指挥**管的是跟人打交道的事:在群里回消息、调度任务、每天早上跑一次备份、查一下 DeepSeek 余额。这些事需要有上下文理解能力,适合用 AI agent 模式。

**yunwei** 管的是机器的事:每小时的服务器巡检、凌晨的系统补丁、数据库备份检查、安全日志分析。这些事大部分人都不想看结果——跑得好别刷屏,跑崩了再说话。所以任务配 `deliver: local`,结果存本地,不往群里发。

**notes** 管的是内容的事:定期扫描关注的公众号,有更新就自动下载转成 Markdown 归档到 Obsidian。跑完之后也不需要主动通知,只管默默干活。

分工的价值在于:总指挥挂了不影响 yunwei 跑巡检,yunwei 在打补丁不影响 notes 采集文章。三个进程各自独立,一个崩了另外两个照常工作。

## 几个实际注意的点

**定时任务的归宿要注意。** 脚本要拷贝到目标 profile 的 `scripts/` 目录下,然后在那边注册 cron。光拷贝文件不够,还要 `hermes cron create` 注册一下。

**飞书多 bot 同群有个限制:** 只有被 @ 的 bot 才能收到群消息。这是飞书平台的问题,不是配错了。所以 yunwei 和 notes 如果要独立跟用户对话,需要单聊,或者在群聊里 @ 它。

**Watchdog 保活。** 写一个脚本每 5 分钟检查三个 systemd 服务是不是都活着,挂了的自动拉起来。这部分总指挥来管,因为它的 gateway 挂了就没人调度了,需要外部兜底。

## 小记

这套架构跑了一段时间了。最直观的感受是:不用再担心一个 bot 被运维任务卡住的时候不回消息。各干各的,各崩各的,互不牵连。

下一篇准备写 Hermes Skill 机制——怎么手写一个自己的 Skill,让机器人学会新技能。跟装 App 一样简单,但很多人不知道它存在。

Leave a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top