惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
W
WeLiveSecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
N
News and Events Feed by Topic
Recent Commits to openclaw:main
Recent Commits to openclaw:main
S
Security Affairs
SecWiki News
SecWiki News
T
Tenable Blog
C
CERT Recently Published Vulnerability Notes
Forbes - Security
Forbes - Security
Google Online Security Blog
Google Online Security Blog
C
Cybersecurity and Infrastructure Security Agency CISA
L
LINUX DO - 热门话题
T
Threat Research - Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
Cisco Talos Blog
Cisco Talos Blog
PCI Perspectives
PCI Perspectives
Engineering at Meta
Engineering at Meta
博客园 - 聂微东
Cyberwarzone
Cyberwarzone
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
V
Vulnerabilities – Threatpost
宝玉的分享
宝玉的分享
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
V
Visual Studio Blog
T
Threatpost
Project Zero
Project Zero
Know Your Adversary
Know Your Adversary
I
InfoQ
G
Google Developers Blog
博客园 - 【当耐特】
Google DeepMind News
Google DeepMind News
T
The Blog of Author Tim Ferriss
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
TaoSecurity Blog
TaoSecurity Blog
O
OpenAI News
博客园_首页
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tor Project blog
Schneier on Security
Schneier on Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 三生石上(FineUI控件)
D
DataBreaches.Net
Security Latest
Security Latest
Attack and Defense Labs
Attack and Defense Labs
aimingoo的专栏
aimingoo的专栏
H
Heimdal Security Blog

翔宇工作流

Hermes Kanban 多 Agent 编排:让多个 Agent 并行协作完成复杂任务 Hermes Agent 成本控制实战:模型路由 + 凭据池轮换 + Token 追踪 Hermes Agent + Home Assistant:用 AI 语音管家控制全屋智能家居 Hermes Agent 本地模型指南:Ollama + LM Studio 性能调优与模型选型 一人公司 AI 消息中枢:Hermes Agent 年省 12000 元实测 Hermes Agent 变现指南:7 种可落地的 AI Agent 商业模式详解 Hermes SOUL.md 人设工程 + 三层记忆深度解析:让 Agent 精确遵循你的人格 Hermes 语音模式完全攻略:CLI + Telegram + Discord 三表面免费搭建 Hermes Skill 自我进化系统:让 AI 助手越用越聪明 循环工程 Loop Engineering 指南:Skill 解决终止条件难题 Ghost 建站最佳实践:一人公司从零到有订阅者的完整手册 Hermes Agent Cron 定时自动化:任务链 + 预运行门控 + 零成本触发 Agent 工作流完全指南 2026:一人公司如何用多 Agent 自动化运营 Claude Code + Hermes MCP 消息桥接实战:任务完成自动通知手机 AI 知识库最佳实践:CLAUDE.md 多级路由 + 纯文件系统完整指南 零基础 AI 编程入门 2026:不会写代码,也能用 AI 做出产品 2026 年 8 大 AI Agent 横评:从 OpenClaw 到 Hermes,谁最适合你? Runway Gen-4.5 提示词怎么写?八层框架从零到电影级 2026 AI 编程工具横评:Cursor vs Claude Code vs Codex vs Windsurf 深度对比 Codex 最佳实践完整指南 Hermes Agent Docker 部署实战:VPS 24/7 运行完整方案 Veo 3.1 视频提示词怎么写?八层框架从零到电影级 Claude Code 完全指南 2026:安装到 Agent 工作流 | 翔宇工作流 AI 配图不用找参考图:GPT Image 2 + 100 种风格方案 | 翔宇工作流 Hermes Agent 完全指南:架构、部署、成本对比与 14 篇实战教程导航 可灵 AI 视频提示词怎么写?八层框架从零到电影级 MCP 最佳实践:8 大场景推荐 + 安装提示词 Vibe Coding 完全指南 2026:氛围编程入门到进阶 | 翔宇工作流 即梦 Seedance 2.0 提示词怎么写?八层框架从零到电影级 Claude Code /loop 实战指南:十个场景让 AI 替你干活 | 翔宇工作流 Claude Code 最佳实践完整指南 CLAUDE.md 最佳实践 | 6 套完整模板直接复制 小红书 AI 运营完全指南(2026):选品到批量发布 Agent 工作流实战指南(2026):从单 Agent 到多 Agent 协作 Agent 编程方法论(2026):从驾驭工程到上下文工程 AI 知识库构建指南(2026):从文档到 Agent 可用的知识资产 自媒体 AI 自动化指南(2026):从手动创作到 Agent 驱动 AI 图片与视频生成指南(2026):提示词、工具、工作流 一人公司 AI 创收指南(2026):从副业到全职的完整路径 Claude Code Skill 开发指南(2026):从零开发到变现 Claude Code 动态工作流(Dynamic Workflows)+ ultracode 实战 | 翔宇工作流 什么是 Harness Engineering(驾驭工程)?概念到实战(2026)| 翔宇工作流 多Agent协作完全指南:SSH+tmux 跨机器 AI 调度 AI 编程工具中文教程到底去哪学?我做了 aiworkflowtutorials.com Claude Code thinking modes 新手指南 | 翔宇工作流 Claude Code Subagents 新手指南 | 翔宇工作流 Claude Code Slash Commands 新手指南 | 翔宇工作流 Claude Code Plugins 新手指南 插件生态 | 翔宇工作流 Claude Code 权限新手指南:6 模式 + 沙箱 Claude Code MCP 怎么装新手指南 | 翔宇工作流 Claude Code Hooks 新手指南 | 翔宇工作流 Claude Code 上下文窗口新手指南 1M context | 翔宇 OpenAI Codex 团队协作指南:单人到小团队 | 翔宇工作流 怎么给 OpenAI Codex 派活不跑偏?7 步任务拆解 | 翔宇工作流 Codex Skills/Subagents/Hooks 新手指南 | 翔宇工作流 OpenAI Codex 沙箱与审批怎么配?双层防线新手指南 | 翔宇工作流 OpenAI Codex 模型怎么选?任务×推理档位速查表 | 翔宇工作流 OpenAI Codex MCP 服务器怎么装?新手指南 | 翔宇工作流 AI 副业实战中文教程站:8 条路怎么选 | 翔宇工作流 AI 自媒体运营中文教程站:6 平台怎么选 | 翔宇工作流 vibe coding 第一个项目手把手 | 翔宇工作流 OpenCode 安装教程:Claude Code、Codex 的第三条后路 Q-Day OpenClaw AI 销售介绍:Agent 销售闭环 | 翔宇工作流 vibe coding 工具怎么选?按身份选 | 翔宇工作流 SEO工具实战指南:用112条命令完成网站SEO诊断、GEO优化与AI搜索优化全流程 GoodTrans 介绍:长文档翻译交付可审校成果 | 翔宇工作流 AI 编程入门:零基础别再先学语法 | 翔宇工作流 学员实践:openbili AI 接入驾驶舱介绍 | 翔宇工作流 学员实践:42织序播客介绍 | 翔宇工作流 AI 编程中文教程哪里找?10 大主流工具公开站完整指南 vibe coding 是什么?能不能用、适合谁 | 翔宇工作流 Animaker Dev 介绍:头像照片+参考视频生成 AI 动画的学员实践 | 翔宇工作流 2026 RSS 订阅源大全:开源 1745 个源 + Claude Code 工作流
用 Hermes Agent 搭建跨平台 AI 消息助手:一个 Agent 同时管 Telegram + Discord + 微信
翔宇 · 2026-06-22 · via 翔宇工作流

Hermes Agent 的 Gateway(消息网关)支持 22 个消息平台同时接入,一个后台进程管所有平台。你不需要为 Telegram 写一个 Bot、再为 Discord 写一个、再为微信写一个——Hermes 把这三件事变成了一组 .env 配置。

本文从零开始,手把手完成 Telegram + Discord + 微信三平台接入,然后展开跨平台上下文共享机制、品牌分区频道设计和竞品对比。如果你还没安装 Hermes,建议先读 Hermes Agent 完全指南


22 个平台能力一览

Hermes Agent 22 个消息平台能力矩阵可视化

先看全局。Hermes Gateway v0.16.0(截至 2026 年 6 月的最新版本)支持的完整平台矩阵:

平台 语音 图片 文件 线程 表情 流式更新 成熟度
Telegram 稳定
Discord 稳定
Slack 稳定
WhatsApp 稳定
Signal 稳定
微信(Weixin) 稳定
企业微信(WeCom) 稳定
飞书(Feishu/Lark) 稳定
钉钉(DingTalk) 稳定
QQ 稳定
Google Chat 稳定
Microsoft Teams 稳定
Matrix 稳定
Mattermost 稳定
LINE 稳定
Email 稳定
SMS 基础
BlueBubbles(iMessage) 实验性
腾讯元宝(Yuanbao) 实验性
Home Assistant 实验性
ntfy 通知
WeCom Callback 基础

💡 通俗讲:表里的"语音"是指 TTS(文本转语音)音频回复和语音消息转录;"流式更新"是通过消息编辑实现的渐进式内容更新——你能看到 AI 一边思考一边往消息里追加文字。所有平台都支持完整的工具调用(Tool Use),工具能力不因平台而削减。

几个值得注意的细节:

  • 国内平台覆盖全面:微信、企业微信、飞书、钉钉、QQ 五大国内主流平台全部原生支持,不需要第三方桥接。这在国际开源项目中极为少见。
  • 飞书是能力最完整的平台之一:语音、图片、文件、线程、表情、流式更新全部支持,和 Discord 处于同一能力等级。如果你的团队用飞书办公,Hermes 的飞书适配器开箱即用。
  • SMS 和 ntfy 是极简通道:SMS 通过 Twilio 实现,只能收发纯文本;ntfy 是单向推送通知,不能对话。它们的定位是"最后手段"——当所有 IM 都用不了时,至少还能收到通知。
  • 实验性平台慎用于生产:BlueBubbles(iMessage 桥接)和 Home Assistant 标记为实验性,意味着 API 可能变动、稳定性未经大规模验证。

社区非官方文档记录已超过 25 个适配器,新增了 SimpleX Chat、IRC 等小众协议。Rust 重写版(hermes-agent-rs)也已实现 17 个平台适配器,单二进制文件部署,适合资源受限的 VPS 环境。上表以官方 Python 版主仓库为准。


架构速览:一个进程怎么管 22 个平台

Hermes Gateway 单进程多适配器汇聚架构示意图

理解架构有助于后面排障。Hermes Gateway 是一个单一长驻进程(Single Long-running Process),启动后同时维持与所有已配置平台的持久连接:

┌─────────────────────────────────────────┐
│              GatewayRunner              │
│                                         │
│  ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│  │ Telegram │ │ Discord  │ │ Weixin  │ │
│  │ Adapter  │ │ Adapter  │ │ Adapter │ │
│  └────┬─────┘ └────┬─────┘ └────┬────┘ │
│       │            │            │       │
│       ▼            ▼            ▼       │
│  ┌──────────────────────────────────┐   │
│  │     Per-Chat Session Store      │   │
│  └──────────────┬───────────────────┘   │
│                 │                       │
│                 ▼                       │
│  ┌──────────────────────────────────┐   │
│  │          AIAgent Core           │   │
│  │   (Tools + Memory + Skills)     │   │
│  └──────────────────────────────────┘   │
└─────────────────────────────────────────┘

每个平台适配器接收消息后,经过按聊天维度的会话存储(Per-Chat Session Store)路由,分派到 AIAgent 核心处理,响应通过同一适配器返回原平台。适配器的源码全部在 gateway/platforms/ 目录下,每个平台一个 Python 文件。

这意味着:你只需要配置 .envconfig.yaml,不需要写任何代码


第一站:Telegram 接入

Telegram Bot 创建与 Hermes 接入流程可视化

Telegram 是最简单的起点——五分钟内可以跑通。

Telegram 官方博客页面展示 7 亿月活用户与 Premium 功能,Bot 生态是其中最活跃的开发者平台

第一步:在 BotFather 创建 Bot

  1. 打开 Telegram,搜索 @BotFather(选带蓝色认证勾号的,不是冒牌货)
  2. 点击"Start"开始对话
  3. 发送 /newbot
  4. BotFather 询问名称——输入显示名称(如 翔宇助手),可包含空格
  5. BotFather 询问用户名——输入全 Telegram 唯一的用户名,必须以 bot 结尾(如 XiangyuAssistantBot
  6. 创建成功,BotFather 返回 API Token(形如 123456789:ABCdefGHIjklMNO...

立即保存 Token。Token 等同于 Bot 的密码,任何持有 Token 的人都能控制该 Bot。不要硬编码在公开仓库。

可选但推荐的配置命令:

/setdescription    # Bot 的说明
/setabouttext      # 简短一行介绍
/setuserpic        # 上传头像
/setcommands       # 设置命令菜单

第二步:配置 Hermes

提示词:生成 Telegram 平台的 .env 配置

请帮我生成 Hermes Agent 接入 Telegram 的 .env 配置。要求:

  • 必填项:TELEGRAM_TOKEN(BotFather 返回的 API Token,格式 数字:字母数字串
  • 可选项:TELEGRAM_ALLOWED_USERS(逗号分隔的 Telegram 用户 ID,限制谁能访问 Bot)
  • 可选项:TELEGRAM_HOME_CHANNEL(Bot 默认活跃频道的 Chat ID)

或者用交互式向导:

hermes gateway setup
# 选择 Telegram → 粘贴 Token → 完成

第三步:启动并验证

hermes gateway start        # 启动网关
hermes gateway status       # 确认 Telegram 适配器正在运行

在 Telegram 中打开 t.me/YourBotUsername,点击 Start,发送任意消息。Bot 应在数秒内回复。

如果没有回复,按以下顺序排查:

  1. Token 是否正确:检查 .env 中的 TELEGRAM_TOKEN 是否包含完整的 123456789:ABCdef... 格式,冒号前是数字 Bot ID,冒号后是字母数字混合串
  2. 网络是否畅通:确认你的服务器能访问 api.telegram.org(部分地区需要代理)
  3. 适配器状态hermes gateway status 应显示 Telegram 适配器为 running
  4. Bot 是否已被其他进程占用:Telegram 的 getUpdates 长轮询是排他的,同一个 Token 只能有一个客户端在轮询

Telegram 接入的最大优势是零成本、零审核、零延迟。Bot 创建后立即可用,没有等待审核的过程,消息延迟在毫秒级别。


第二站:Discord 接入

Discord Bot 权限配置与频道结构可视化

Discord 比 Telegram 多了一个权限配置步骤,但也不复杂。

第一步:创建 Application 和 Bot

  1. 登录 Discord Developer Portal
  2. 点击 "New Application",输入名称(如"小宇公司"),点击 "Create"
  3. 左侧菜单点击 "Bot"
  4. 点击 "Add Bot" → 确认
  5. 点击 "Reset Token" 获取 Bot Token
  6. 立即复制并保存——离开页面后无法再看到

第二步:开启 Privileged Intents

这一步是最常见的坑。不开启 Message Content Intent,Bot 收得到消息事件但读不到消息内容

Discord Developer Portal Applications 页面,创建和管理 Bot 的入口
  1. 在 Developer Portal 中,进入你的 Application → Bot 页面
  2. 向下滚动到 "Privileged Gateway Intents" 区域
  3. 将三个开关全部打开:
    • Presence Intent:获取成员在线状态
    • Server Members Intent:访问服务器成员列表
    • Message Content Intent:读取消息正文内容
  4. 点击 "Save Changes"

🔥 翔宇判断:Message Content Intent 是三个里最关键的。Hermes 的 Discord 适配器依赖它来读取用户发送的文字。如果你的 Bot 能看到有人发了消息但回复"我无法理解你说什么",十有八九是这个开关没打开。

第三步:生成邀请链接并添加到服务器

  1. 左侧菜单点击 "OAuth2" → "URL Generator"
  2. Scopes 勾选 bot
  3. Bot Permissions 勾选 Administrator(或按需选择:Send Messages、Read Message History、Attach Files、Add Reactions)
  4. 复制生成的 URL,在浏览器中打开
  5. 选择要添加 Bot 的服务器 → 授权

第四步:配置 Hermes

提示词:生成 Discord 平台的 .env 配置

请帮我生成 Hermes Agent 接入 Discord 的 .env 配置。要求:

  • 必填项:DISCORD_BOT_TOKEN(Developer Portal 获取的 Bot Token)
  • 必填项:DISCORD_ALLOWED_USERS(Discord 用户 ID,注意是纯数字 ID 而非用户名)
  • 可选项:DISCORD_HOME_CHANNEL(Bot 默认活跃频道的 Channel ID)和 DISCORD_HOME_CHANNEL_NAME(频道显示名)
  • 行为控制三项:DISCORD_REQUIRE_MENTION(是否需要 @提及才响应,false 为全部消息响应)、DISCORD_AUTO_THREAD(是否自动创建线程)、DISCORD_REACTIONS(是否显示处理中的 emoji 反应)

获取 Channel ID 的方法:Discord 设置 → 高级 → 打开"开发者模式" → 右键点击频道 → "复制频道 ID"。

config.yaml 中也需要添加 Discord 专属配置段:

提示词:生成 config.yaml 的 Discord 配置段

请帮我生成 Hermes config.yaml 中的 discord: 配置段。要求:

  • 行为开关:require_mention(是否需要 @提及)、auto_thread(是否自动建线程)、reactions(是否显示处理中 emoji)
  • ignored_channels 列表:填入需要忽略的频道 ID(如语音频道)
  • channel_prompts 字典:按 Channel ID 为每个频道写一段系统提示词,告诉 Agent 该频道的职责域

第五步:启动并验证

启动网关的方式和 Telegram 相同——hermes gateway start 然后 hermes gateway status 确认 Discord 适配器为 running。在 Discord 服务器的任意文本频道发送消息,Bot 应回复。如果 require_mention 设为 true,需要 @提及 Bot 才会响应。


微信是三个平台里最值得讲清楚的,因为微信生态的自动化方案鱼龙混杂,封号风险是实打实的。

iLink Bot 是腾讯微信官方为"微信个人号一对一助手"场景提供的 HTTP/JSON 协议。它不是公众号 API,不是企业微信,更不是 wxhook / itchat 这类逆向工程的破解协议。

核心技术特征:

  • 基座地址:https://ilinkai.weixin.qq.com
  • 媒体 CDN 基座地址:https://novac2c.cdn.weixin.qq.com/c2c
  • 登录方式:二维码扫码确认
  • 消息接收:getupdates 长轮询(35 秒超时)
  • 会话关联:每条消息绑定 context_token,回复时必须回传

五个核心端点:

端点 用途
GET /ilink/bot/get_bot_qrcode 获取登录二维码
GET /ilink/bot/get_qrcode_status 轮询扫码状态
POST /ilink/bot/getupdates 长轮询获取新消息
POST /ilink/bot/sendmessage 发送文字/媒体回复
POST /ilink/bot/getconfig 获取 Bot 配置
维度 iLink Bot(Hermes 采用) wxhook / itchat Wechaty 公众号 API
封号风险 看 Puppet 实现
外部依赖 很多 很重 少量
个人消息 支持 支持 支持 不支持
群聊 不支持 支持 支持 不支持
需要 PC 客户端 不需要 需要 看实现 不需要
搭建时间 2 分钟 30+ 分钟 10 分钟 几天(审核)
稳定性 官方 API 经常挂 不一定 稳定

💡 通俗讲:Wechaty 是老牌微信 Bot 框架,采用 Puppet(傀儡)架构——通过不同的 Puppet Provider 支持不同的微信接入协议。但 2023-2024 年腾讯大规模封杀 Web 协议后,Wechaty 生态中所有能用的 Puppet 都基于逆向工程,实质上已经衰落。iLink Bot 虽然不支持群聊,但作为唯一零封号风险的微信自动化方案,在生产环境是唯一合规选择。

扫码绑定流程

最简单的方式是用交互式向导:

hermes gateway setup
# 选择 Weixin / WeChat → 终端显示二维码 → 用微信扫码 → 确认绑定

底层流程:

  1. Hermes 调用 GET /ilink/bot/get_bot_qrcode 获取二维码
  2. 终端显示二维码,用户用微信扫码
  3. Hermes 轮询 GET /ilink/bot/get_qrcode_status
  4. 状态依次经过:waitscanedconfirmed
  5. 确认后返回 bot_tokenilink_bot_idhome_user_id
  6. Hermes 自动写入 .env 配置

微信 .env 完整配置

提示词:生成微信 iLink Bot 的 .env 配置

请帮我生成 Hermes Agent 接入微信 iLink Bot 的 .env 配置。要求:

  • 身份信息:WEIXIN_ACCOUNT_ID(格式 [email protected])、WEIXIN_TOKEN(格式 [email protected]:token),均由扫码绑定后自动生成
  • 基座地址:WEIXIN_BASE_URL 固定 https://ilinkai.weixin.qq.comWEIXIN_CDN_BASE_URL 固定 https://novac2c.cdn.weixin.qq.com/c2c
  • 私聊策略:WEIXIN_DM_POLICY 设为 pairing(陌生人需配对批准)或 open(所有人可直接私聊)
  • 访问控制:WEIXIN_ALLOW_ALL_USERS(是否允许所有用户)、WEIXIN_ALLOWED_USERS(白名单)
  • 群聊策略:WEIXIN_GROUP_POLICY 设为 disabled(iLink Bot 不支持群聊,此项无实际效果)
  • Home Channel:WEIXIN_HOME_CHANNEL(格式 [email protected]

DM 策略:pairing 与 open

策略 含义 适用场景
pairing(默认) 陌生人发消息需配对批准 个人使用,安全优先
open 所有人可直接私聊 公开服务场景

配对管理命令:

hermes pairing list                      # 查看待批准列表
hermes pairing approve weixin <配对码>   # 批准
hermes pairing revoke weixin <用户ID>    # 撤销访问

微信支持的消息类型

  • 文字:超 4000 字符自动分段发送
  • 图片:收发均支持(通过 AES-128-ECB CDN 加密传输)
  • 视频:收发均支持
  • 文件:收发均支持
  • 语音:收发均支持(接收时自动转写)
  • "正在输入"状态提示:发送时显示

关键限制

iLink Bot 不支持群聊。Bot 身份(@im.bot)无法加入普通微信群,WEIXIN_GROUP_POLICY=disabled 对 Bot 账号无效。这是 iLink Bot 协议的硬限制,非 Hermes 的限制。如果你的场景必须用微信群聊,目前没有零风险的方案。

还有一个容易忽略的点:iLink Bot 的对话上下文在 Hermes 重启后会持久化保留,不像某些逆向方案重启后丢失历史。这得益于 Hermes 的 SQLite 会话数据库(SessionDB),所有平台的对话记录都写入本地数据库。

另外,如果你想在不用 Hermes Gateway 的情况下自己写微信适配器,社区有一个独立的 TypeScript 客户端 wechat-ilink-client,从 OpenClaw 逆向提取的 iLink 协议实现,纯无状态库,零运行时依赖。这是最干净的起点。


三平台同时运行的完整配置

把三个平台各自的 .env 配置项合到同一个文件即可(~/.hermes/.env),再加上模型配置(推荐 OPENROUTER_API_KEY,一个 Key 访问 200+ 模型)。Hermes 启动时自动检测并连接所有已配置的平台。

搭配 config.yaml 中的会话重置策略:

提示词:生成按平台差异化的会话重置策略

请帮我在 ~/.hermes/config.yaml 中生成 reset_by_platform 配置段。要求:

  • 每个平台独立设置 mode: idleidle_minutes(无活动超时后自动重置会话上下文)
  • Telegram 建议 240 分钟(4 小时),适合碎片化对话
  • Discord 建议 60 分钟(1 小时),频道对话节奏更快
  • 微信建议 1440 分钟(24 小时),私聊场景上下文需要保持更久

启动和管理命令与前面各平台相同:hermes gateway setup(交互式配置)、hermes gateway start(启动所有已配置平台)、hermes gateway status(查看运行状态)。


跨平台上下文共享机制

跨平台记忆共享三层机制:SOUL、MEMORY、USER 桥接示意图

默认情况下,每个平台的每个聊天窗口独立维护会话上下文。Telegram 对话和 Discord 对话是两个独立会话,上下文不自动共享。

但 Hermes 提供了多层机制来实现跨平台知识共享:

层级 机制 共享范围
SOUL.md 全局身份和行为准则 所有平台、所有会话
MEMORY.md 持久记忆(事实、偏好) 所有平台、所有会话
USER.md 用户画像 所有平台、所有会话
会话记忆搜索 SQLite FTS5 全文检索 跨会话搜索历史
外部记忆提供者 8 种插件(语义搜索、知识图谱等) 可自定义
会话上下文 当前对话窗口的聊天历史 单个聊天窗口

💡 通俗讲:SOUL.md 是 Agent 的"性格说明书",所有平台的所有对话都能读到。MEMORY.md 是"你告诉过我的事情",跨平台共享。但每个聊天窗口的对话记录是隔离的——你在 Telegram 聊的内容,Discord 那边的对话不会自动知道。要让 Agent 跨平台"记住"某个事实,需要它写进 MEMORY.md。

指针架构:知识库作为唯一真值源

我的做法是让 SOUL / MEMORY / USER / channel_prompts 只存两类内容:

  1. 不可能从知识库读到的行为约束
  2. 怎么找到知识库内容的路径和方法

所有事实性内容让 Hermes 在对话中通过 read_file 现场读取:

静态层(系统提示词,每次都在)
├── SOUL.md      → 身份 + 语言规则 + "KB 路径在这"
├── MEMORY.md    → KB 根路径 + 导航方法
└── USER.md      → 极简画像 + "详情读 KB 品牌/身份目录"

动态层(对话中按需 read_file)
├── ~/Downloads/code/kb/CLAUDE.md          → 总路由表
├── ~/Downloads/code/kb/品牌/*/身份/*.md    → 品牌详情
├── ~/Downloads/code/kb/规范/*/             → 写作规范
└── ... KB 里的一切

🔥 翔宇判断:这个设计的好处是零维护成本。我在 Claude Code 里改了任何知识库文件,Hermes 下次对话自动感知。如果把品牌信息、工具列表、工作流触发词硬编码在 Hermes 的配置里,每次更新知识库都要同步更新 Hermes 配置,很快就会过时。指针架构彻底解决了这个问题。


竞品对比:Hermes vs CowAgent vs LobsterAI

市面上做 AI 消息助手的开源项目不少,这里对比两个最具代表性的。

CowAgent(原 chatgpt-on-wechat)

CowAgent(GitHub 45K+ Stars)是微信生态里最知名的 AI 助手项目,前身是 chatgpt-on-wechat。

支持 7 个平台:微信(个人号)、飞书、钉钉、企业微信、QQ、微信公众号、Web 控制台。注意,CowAgent 不支持 Telegram、Discord、Slack、WhatsApp 等国际平台

LobsterAI(网易有道)

LobsterAI(GitHub 5K+ Stars)是网易有道出品的全场景桌面 AI 助理,Electron 桌面应用,支持 10 个 IM 平台。

三者对比矩阵

维度 Hermes Agent CowAgent LobsterAI
开发者 Nous Research zhayujie(个人) 网易有道
Stars 191K+(截至 2026 年 6 月) 45K+ 5K+
定位 自主 AI Agent + 消息网关 微信生态 AI 助理 全场景桌面 AI 助理
跨平台总数 22 7 10
Telegram 原生 不支持 原生
Discord 原生(含语音频道) 不支持 原生
微信协议 iLink Bot(官方) wechatferry(逆向) OpenClaw 网关
Slack 原生 不支持 不支持
WhatsApp 原生 不支持 不支持
部署形态 CLI + 后台服务 源码部署 Electron 桌面
MCP 支持 原生 + MCP 反向服务 v2.0.9 新增 不支持
记忆系统 三层(内置 + 搜索 + 外部提供者) 长期记忆 + 梦境汇总 OpenClaw 原生
部署要求 pipx / 服务器 / VPS 源码 / Docker 必须有桌面环境
开源协议 Apache 2.0 MIT MIT

🔥 翔宇判断:选型关键看两个维度——你需要哪些平台、你对微信封号风险的容忍度。

第一个维度很明确:如果你的用户分布在 Telegram、Discord、WhatsApp 等国际平台,CowAgent 直接出局,它只覆盖国内平台。LobsterAI 虽然支持 Telegram 和 Discord,但它是 Electron 桌面应用,必须有图形界面环境,不能跑在无头服务器上——这对 7 天 24 小时运行的消息助手来说是硬伤。

第二个维度是微信。CowAgent 的 wechatferry 是逆向协议,功能更强(支持群聊),但封号风险真实存在。在个人玩耍场景可以接受,在商业场景不可以。Hermes 的 iLink Bot 是目前唯一合规选择,代价是不支持群聊。

还有一个容易忽略的区别:Hermes 支持 MCP 反向服务(hermes mcp serve),让 Claude Code 和 Codex 能主动调用 Hermes 推消息。CowAgent 和 LobsterAI 都没有这个能力。如果你的工作流是"AI 编程工具完成任务后自动通知",这个差异很关键。


品牌分区频道设计(Discord 实战)

这是我在实际运营中摸索出来的模式——进频道即确定品牌,不用每次手动指定。这不是 Hermes 官方功能,而是通过 channel_prompts 配置实现的。

设计动机

我同时运营翔宇工作流和 SYL 两个品牌,它们的内容风格、工作流、发布渠道完全不同。如果在同一个频道里每次说"用 SYL 的风格",容易忘了切品牌导致串用。

四分区 12 频道架构

分区 频道 品牌绑定
行政区(共用) 总部、私人助理、运维部 无固定品牌
翔宇运营区 公众号、油管、官网、推特、课程 翔宇工作流
SYL 运营区 推特、官网 SYL(希薇)
共用区 研发部、情报部 跨品牌

关键设计决策

每个频道的 channel_prompts 不写死内容,只指向知识库目录入口:

提示词:生成品牌分区的 channel_prompts 配置

请帮我在 config.yamlchannel_prompts 中按品牌分区生成频道提示词。要求:

  • 键为 Discord Channel ID(字符串),值为多行系统提示词
  • 行政区频道(如「总部」):不绑定固定品牌,提示词指向知识库总路由表,让 Agent 按问题内容自行定位
  • 品牌运营区频道(如「翔宇-公众号」「翔宇-官网」「SYL-推特」):提示词锁定品牌名,指向该品牌的工作流路由入口和表达风格文件路径
  • 共用区频道(如「研发部」):提示词指向工具体系路由表,不限品牌
  • 核心原则:提示词只写路径指针和路由方法,不写死任何业务内容,Agent 在对话中通过 read_file 动态读取

💡 通俗讲:这样做的好处是 Bot 收到消息后按频道职责域提取触发词,到知识库路由表匹配对应工作流。我在 Claude Code 里新增或修改工作流后,Hermes 下次对话自动感知。新增品牌时只需加一个分区和对应频道。

这个设计的核心思路是关注点分离——Discord 频道负责"我在和哪个品牌对话",知识库负责"这个品牌的具体信息",Hermes 负责"怎么把两者连起来"。三者各管各的,任何一层更新都不影响其他两层。

举个实际例子:我在翔宇-官网频道说"写一篇关于 AI 编程的文章",Bot 会先读知识库的工作流路由表,找到对应的 Ghost 文章写作工作流,自动加载翔宇品牌的表达风格。如果我在 SYL-推特频道说同样的话,Bot 会自动切换到 SYL 品牌的风格和发布渠道。频道即上下文,无需每次手动指定。


踩坑清单

实际运营中踩过的坑,帮你跳过:

1. 双 Bot 冲突

问题:如果你的 Discord 服务器上同时运行了 Hermes 和另一个 AI Bot(比如 OpenClaw 网关),每条消息两个 Bot 都抢着回复。

解法:停掉不需要的 Bot;如果需要共存,设置 require_mention: true 让 Bot 只在被 @提及时响应,或者将不同 Bot 限制在不同频道。

2. Telegram Token 被"抢走"

问题:Telegram 的 getUpdates 长轮询是排他的——同一个 Token 只能有一个客户端在轮询。如果你升级 Hermes 后旧的 hermes.service 没被清理,两个服务抢同一个 Token,消息时有时无。

解法:Hermes 的 installer 会自动检测并移除旧版服务单元。如果你手动安装过,确保只有一个进程在用这个 Token。

3. Discord 表格渲染问题

问题:Discord 不支持 Markdown 表格语法渲染,AI 回复里的表格显示为纯文本。

解法:在 Discord 适配器中添加表格 PNG 渲染——检测回复中的 Markdown 表格 → 渲染为白底 PNG → 作为附件发送。具体实现方式见 Hermes Agent 完全指南 中的高级配置章节。

4. 微信登录态过期

问题:微信 iLink Bot 的登录态不是永久的,长时间运行后可能过期。过期后 Hermes 不会自动报错,只是微信消息不再到达。

解法:重新执行 hermes gateway setup 扫码绑定。Hermes 会自动更新 .env 中的 Token。建议定期检查 hermes gateway status,确认微信适配器的状态和最后消息时间。如果适配器显示 running 但已经很久没有消息活动,大概率是登录态过期了。

5. 压缩风暴导致上下文丢失

问题:辅助压缩任务默认跟主模型走,主模型限流(如 GLM 返回 429)时压缩也挂,Agent 丢失整个对话上下文。

解法:在 config.yaml 中为 auxiliary.compression 显式配置独立 provider,不跟主模型走。

6. 72 个工具的 Token 开销

问题:Hermes 有 72 个内置工具,所有工具的 Schema 定义占约 19,210 token,每次对话都加载。

解法:开启 tool_search 模式,只加载常用工具的完整 Schema,其余按需查找,token 降到约 2,200(减少 89%):

提示词:生成 tool_search 按需加载配置

请帮我在 config.yaml 中生成 tool_search 配置段,用于按需加载工具以降低 token 开销。要求:

  • mode: auto(自动模式)
  • threshold:工具 Schema 占上下文窗口的比例阈值(建议 0.1,即 10% 时触发按需查找)
  • pinned_tools 列表:始终完整加载的高频工具(建议 terminalread_filewrite_filelist_directorysend_messagememoryskills
  • evict_after_turns:工具被调用后连续多少轮未再使用则卸载(建议 3

MCP 反向服务:从 Claude Code 推消息到 Discord

Hermes Agent 官方文档站首页,完整的 API 参考和集成指南

Hermes v0.16.0 支持 hermes mcp serve,暴露 10 个工具,让 Claude Code 和 Codex 通过 MCP 协议调用 Hermes 的消息能力。

典型场景:Claude Code 跑完一个长任务后,自动往 Discord 推送完成通知,你不在电脑前也能在手机上看到结果。

配置方式(~/.claude.jsonmcpServers):

提示词:生成 Hermes MCP 的 stdio-over-SSH 配置

请帮我在 ~/.claude.jsonmcpServers 中生成 Hermes MCP 服务配置。要求:

  • 键名 "hermes",类型 "stdio"
  • command"ssh",通过 SSH 连接到运行 Hermes 的服务器
  • args 数组包含:SSH 选项 -o StrictHostKeyChecking=no、目标用户和 IP(如 [email protected])、Hermes 二进制路径(如 /Users/user/.local/bin/hermes)、子命令 mcp serve
  • 前提:本机到目标服务器的 SSH 密钥认证已配置好,无需密码

暴露的 10 个工具包括 conversations_listmessages_sendevents_poll 等。更多细节见 Claude Code Hermes MCP 消息推送教程


相关 Hermes Skill 推荐

安装 Hermes 后自带 155+ Skill(技能),以下几个与跨平台消息场景高度相关:

Skill 分类 适用场景
hermes-agent 核心 部署和排障的第一参考
google-workspace 生产力 Gmail + Calendar + Drive,跨平台调度核心
apple-notes 生产力 微信发指令 → Agent 记到 Apple Notes
apple-reminders 生产力 微信发"提醒我明天开会" → 自动创建提醒
ocr-and-documents 生产力 微信收到扫描件 → 自动 OCR → 文字回复
github-pr-workflow 开发 Discord 研发频道触发代码审查
blogwatcher 研究 情报频道自动推送竞品动态

Skill 采用渐进式披露(Progressive Disclosure)模式加载:skills_list() 只返回精简列表(约 3K token),skill_view(name) 才加载完整内容。155+ Skill 不会一次性占用上下文窗口。

更多 Skill 体系详见 Hermes Agent Skill 进化系统


没有服务器?Railway 一键部署

如果你没有本地 Mac/Linux 服务器,可以用社区维护的 Railway 一键部署模板

  1. 点击 "Deploy on Railway" 按钮
  2. 在 Web 管理面板配置 LLM Provider(推荐 OpenRouter)
  3. 勾选 Telegram → 粘贴 Bot Token
  4. 点击 "Save & Start"
  5. 在 Telegram 给 Bot 发消息 → 管理面板出现配对请求 → 点击 "Approve"

管理面板提供暗色主题 UI、实时网关状态、运行时间、实时日志流和用户配对管理。

Railway 方案的优点是零运维——平台自动处理进程管理、日志收集和重启。缺点是成本比自己的 VPS 高,且微信 iLink Bot 的扫码绑定需要能在浏览器中显示二维码(Railway 的 Web Terminal 支持,但体验不如本地终端)。

如果你更倾向 Docker 部署到自己的 VPS,详见 Hermes Agent Docker 部署教程。Docker 方案对微信扫码的支持更好,也更容易做数据持久化。


下一步


常见问题

Hermes Agent 支持多少个消息平台?

截至 v0.16.0 官方支持 22 个,社区记录超过 25 个。完整矩阵见本文开头的平台能力一览表。

Hermes 的微信接入用的是什么协议?会被封号吗?

使用腾讯官方 iLink Bot 协议,零封号风险。唯一限制是 Bot 身份(@im.bot)无法加入普通微信群,仅支持一对一私聊。

Discord Bot 收不到消息内容怎么办?

最常见原因是没有开启 Message Content Intent。在 Developer Portal 的 Bot 页面打开 Privileged Gateway Intents 中的 Message Content Intent 即可。

不同平台的对话上下文是否共享?

默认不共享,每个聊天窗口独立维护上下文。但 SOUL/MEMORY/USER 三层文件跨平台共享,配合 SQLite FTS5 会话搜索可实现事实级别的一致性。

Hermes Agent 和 CowAgent 有什么区别?

三个关键维度:平台覆盖(22 vs 7)、微信协议安全性(官方 iLink Bot vs 逆向 wechatferry)、国际平台支持(CowAgent 不覆盖 Telegram/Discord/Slack)。

同一个 Discord 服务器能运行多个 Bot 吗?

可以,但多个 Bot 同时 require_mention: false 会抢着回复。解法:只留一个主动响应的 Bot,或全部设 require_mention: true,或分频道隔离。

微信 iLink Bot 支持群聊吗?

不支持。@im.bot 身份无法加入普通微信群,这是 iLink Bot 协议的硬限制。

没有服务器怎么部署 Hermes 的消息网关?

Railway 一键部署模板(含 Web 管理面板)或 Docker 部署到任意 VPS。详见 Docker 部署教程


  • AI 编程实操课:Claude Code + Codex + Agent 工作流,覆盖一人公司、自媒体自动化、AI 副业全场景。237 篇实战教程 + 最佳实践 + 源码包,跟着做就出成果。国内版-FlowUS | 国际版-BMC
  • YouTube 频道翔宇工作流
  • 微信公众号:搜索「翔宇工作流」