Messaging Gateway: Chat via Telegram, Discord & More

Updated on 4/5/2026

[Translation Pending]\n\n# 第 05 期 | 消息网关:通过 Telegram/Discord 随时对话

副标题: 配置 hermes gateway,将 AI Agent 部署到云服务器,通过 Telegram Bot、Discord Bot、Slack、WhatsApp 等渠道随时随地与你的 Agent 对话。


🎯 学习目标

完成本期课程后,你将能够:

  • 理解 Hermes Agent 消息网关的核心概念及其在远程交互中的重要性。
  • 掌握在云服务器上部署 Hermes Agent 的基本考量和方法。
  • 学会创建并配置 Telegram Bot,使其作为 Hermes Agent 的消息网关。
  • 学会创建并配置 Discord Bot,使其作为 Hermes Agent 的消息网关。
  • 通过实际操作,实现与部署在远程服务器上的 Hermes Agent 进行跨平台、持续对话。

📖 核心概念讲解

在前面的课程中,我们主要在本地终端与 Hermes Agent 交互。然而,AI Agent 的真正价值在于其能够持续运行,并在我们需要的任何时间、任何地点提供服务。这就引出了“消息网关”(Message Gateway)的概念。消息网关是 Hermes Agent 与外部消息平台(如 Telegram、Discord)之间的桥梁,它允许 Agent 在后台运行,并通过这些平台接收指令、发送响应,从而实现远程、异步的交互。

5.1 消息网关:Agent 的“触角”

想象一下,你的 Hermes Agent 是一位勤奋的助手。它不可能总是坐在你的电脑旁等待你输入命令。通过消息网关,它可以在云端服务器上不间断地工作,并通过你常用的聊天应用(如 Telegram 或 Discord)与你保持联系。

核心优势:

  • 随时随地访问: 无论你身在何处,只要有网络,就能通过手机或电脑上的聊天应用与 Agent 交互。
  • 持续运行: Agent 可以部署在云服务器上,即使你关闭本地电脑,它也能持续学习、记忆和执行任务。
  • 多用户/多场景: 可以配置 Agent 在特定群组或频道中提供服务,实现团队协作或特定应用场景。
  • 跨会话记忆: 结合 Hermes Agent 的内置记忆能力,无论你通过哪个设备、何时与 Agent 对话,它都能记住之前的上下文和学习到的技能。

5.2 架构概览:云端部署与网关连接

为了实现远程交互,我们需要将 Hermes Agent 部署到一台云服务器上。这台服务器将承载 Agent 的运行环境、数据存储以及消息网关服务。

下图展示了其基本架构:

+-------------------+       +-------------------+       +-------------------+
|                   |       |                   |       |                   |
|   用户设备 (手机/PC)   | <-----> |   消息平台 (Telegram/Discord)   | <-----> |   Hermes Agent (云服务器)   |
|                   |       |                   |       |                   |
|   - Telegram App  |       |   - Telegram Bot API    |       |   - Hermes Agent Core   |
|   - Discord App   |       |   - Discord Bot API     |       |   - Hermes Gateway      |
|                   |       |                   |       |   - Skill Store         |
|                   |       |                   |       |   - Memory DB           |
+-------------------+       +-------------------+       +-------------------+
        ^                                                       |
        |                                                       |
        +-------------------------------------------------------+
                (用户通过消息平台与Agent交互,Agent在云端持续运行)

工作流程:

  1. 用户在聊天应用中发送消息给 Bot。
  2. 消息平台(例如 Telegram API 或 Discord API)接收到消息。
  3. Hermes Gateway 模块通过长连接或 Webhook 机制从消息平台获取消息。
  4. Hermes Agent Core 处理消息,执行任务,利用其技能和记忆。
  5. Agent 生成响应,通过 Hermes Gateway 发送回消息平台。
  6. 消息平台将响应发送回用户的聊天应用。

5.3 部署到云服务器:环境准备

在开始配置网关之前,你需要在云服务器上安装并运行 Hermes Agent。这里我们假设你已经有一台 Linux 云服务器(例如 Ubuntu 22.04 LTS)。

步骤概述:

  1. 连接到服务器: 使用 SSH 客户端连接到你的云服务器。

    ssh username@your_server_ip
    
  2. 安装依赖: 确保服务器上安装了 curlgit 等基本工具。

    sudo apt update
    sudo apt install -y curl git
    
  3. 安装 Hermes Agent: 执行官方提供的一键安装脚本。

    curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
    

    安装过程可能需要一些时间,它会安装 Python 环境、依赖项并将 hermes 命令添加到你的 PATH 中。

  4. 初始化 Hermes Agent: 首次运行需要进行配置,主要是设置 LLM。

    hermes setup
    

    按照提示选择你偏好的 LLM 提供商(推荐 OpenRouter 以便灵活选择模型),并输入 API Key。

    重要提示: 为了让 Agent 持续运行,你可能需要使用 nohupscreentmux 等工具在后台启动 Hermes Agent,或者将其配置为 Systemd 服务。

    例如,使用 nohup 在后台启动并输出日志:

    nohup hermes agent > hermes_agent.log 2>&1 &
    

    这会将 Agent 启动在后台,并将所有输出重定向到 hermes_agent.log 文件。你可以在需要时通过 tail -f hermes_agent.log 查看日志。

5.4 配置 Telegram 消息网关

Telegram 是一个流行的消息应用,它提供了强大的 Bot API,非常适合集成 AI Agent。

5.4.1 创建 Telegram Bot

  1. 打开 BotFather: 在 Telegram 中搜索并打开 @BotFather。这是 Telegram 官方用来创建和管理 Bot 的工具。
  2. 创建新 Bot:@BotFather 发送 /newbot 命令。
  3. 命名 Bot: 按照提示为你的 Bot 输入一个显示名称(例如:“My Hermes Assistant”)。
  4. 选择用户名: 为你的 Bot 选择一个唯一的用户名,必须以 bot 结尾(例如:“myhermes_assistant_bot”)。
  5. 获取 Token: 成功创建后,@BotFather 会给你一个 HTTP API Token。这个 Token 是你 Bot 的身份凭证,非常重要,请妥善保管,不要泄露。它看起来像 123456789:ABCDE-FGHIJ-KLMNO-PQRST-UVWXYZ

5.4.2 启动 Hermes Telegram 网关

在你的云服务器上,使用 hermes gateway telegram 命令启动网关。

# 在云服务器上执行
hermes gateway telegram --token <YOUR_TELEGRAM_BOT_TOKEN>

请将 <YOUR_TELEGRAM_BOT_TOKEN> 替换为你从 @BotFather 获取的实际 Token。

后台运行 Telegram 网关:

同样,为了让网关持续运行,你可能需要将其放在后台。

nohup hermes gateway telegram --token <YOUR_TELEGRAM_BOT_TOKEN> > hermes_telegram_gateway.log 2>&1 &

现在,你的 Telegram Bot 已经连接到 Hermes Agent。你可以在 Telegram 中找到你的 Bot 并开始对话。

5.5 配置 Discord 消息网关

Discord 也是一个非常流行的社区和聊天平台,同样支持 Bot 集成。

5.5.1 创建 Discord Bot

  1. 访问 Discord 开发者门户: 打开浏览器,访问 Discord Developer Portal
  2. 创建新应用: 点击右上角的 "New Application" 按钮。
    • 输入应用名称(例如:“Hermes Discord Agent”),然后点击 "Create"。
  3. 创建 Bot: 在左侧导航栏中,选择 "Bot"。
    • 点击 "Add Bot",然后确认 "Yes, Do it!"。
    • 你的 Bot 就会被创建。
    • 重要: 在 "Token" 部分,点击 "Reset Token" 获取你的 Bot Token。这个 Token 也是敏感信息,请妥善保管。
    • 启用 Intents: 在 "Privileged Gateway Intents" 部分,务必勾选并保存 MESSAGE CONTENT INTENT。这是 Bot 读取消息内容所必需的。为了更全面的功能,你可能还需要启用 PRESENCE INTENTSERVER MEMBERS INTENT
  4. 获取 Client ID: 回到左侧导航栏,选择 "General Information"。复制 "APPLICATION ID",这就是你的 Bot 的 CLIENT_ID

5.5.2 邀请 Discord Bot 到服务器

  1. 生成邀请链接: 在左侧导航栏中,选择 "OAuth2" -> "URL Generator"。
    • 在 "SCOPES" 下,勾选 bot
    • 在 "BOT PERMISSIONS" 下,至少勾选 Send MessagesRead Message History。为了让 Agent 能够响应各种命令,建议勾选 Administrator(仅限测试环境,生产环境请根据最小权限原则配置)。
    • 复制生成的 URL。
  2. 邀请 Bot: 在浏览器中打开复制的 URL。
    • 选择你想要将 Bot 添加到的 Discord 服务器。
    • 授权 Bot 加入。

5.5.3 启动 Hermes Discord 网关

在你的云服务器上,使用 hermes gateway discord 命令启动网关。

# 在云服务器上执行
hermes gateway discord --token <YOUR_DISCORD_BOT_TOKEN> --client-id <YOUR_DISCORD_CLIENT_ID>

请将 <YOUR_DISCORD_BOT_TOKEN><YOUR_DISCORD_CLIENT_ID> 替换为你从 Discord 开发者门户获取的实际值。

后台运行 Discord 网关:

nohup hermes gateway discord --token <YOUR_DISCORD_BOT_TOKEN> --client-id <YOUR_DISCORD_CLIENT_ID> > hermes_discord_gateway.log 2>&1 &

现在,你的 Discord Bot 已经连接到 Hermes Agent。你可以在 Discord 服务器中找到你的 Bot,并在它所在的频道或私聊中与它对话。

5.6 其他消息平台(简介)

Hermes Agent 的设计考虑了扩展性,理论上可以支持更多消息平台。虽然官方文档和命令行主要聚焦于 Telegram 和 Discord,但其架构允许通过插件或社区贡献来支持其他平台。

  • Slack: 通常通过 Slack App 和 Webhook/Socket Mode API 集成。
  • WhatsApp: 通常需要通过第三方商业服务(如 Twilio、MessageBird)提供的 WhatsApp Business API 进行集成,因为 WhatsApp 官方不直接提供公开的 Bot API。

对于这些平台,如果 Hermes 官方未来直接支持,其配置流程会与 Telegram/Discord 类似,主要涉及创建应用、获取 API 凭证,然后使用相应的 hermes gateway <platform> 命令。

5.7 最佳实践与注意事项

  • 安全性: 你的 Bot Token 是非常敏感的凭证。务必妥善保管,不要将其硬编码到公开的代码库中,也不要分享给不可信的第三方。在云服务器上,确保只有授权用户可以访问存储这些 Token 的文件或环境变量。
  • 持久化运行: 使用 nohupscreentmux 是在服务器上后台运行程序的常见方法。更健壮的生产部署会使用 systemd 服务来管理 Agent 和网关进程,确保它们在服务器重启后自动启动,并在崩溃时自动恢复。
  • 资源管理: 监控你的云服务器资源(CPU、内存、网络)。Hermes Agent 及其依赖的 LLM 调用可能会消耗一定的资源。
  • 防火墙: 确保你的云服务器防火墙允许出站连接到 Telegram/Discord API 服务器,以及允许入站 SSH 连接(如果你需要远程管理)。
  • 日志监控: 定期检查 hermes_agent.loghermes_gateway.log 文件,以便及时发现和解决问题。

💻 实战演示

我们将通过一个实际的场景来演示如何在云服务器上部署 Hermes Agent,并分别配置 Telegram 和 Discord 网关。

场景设定: 你已拥有一台 Ubuntu 22.04 LTS 云服务器,并已通过 SSH 连接。你希望将 Hermes Agent 部署到这台服务器,并通过 Telegram Bot 和 Discord Bot 随时随地与它交互。

实战演示 1:云服务器上的 Hermes Agent 初始化与后台运行

首先,确保你的云服务器已经安装了 Hermes Agent 并进行了基本配置。

# 1. 登录到你的云服务器 (假设你已经登录)
# ssh your_username@your_server_ip

# 2. 检查 Hermes Agent 是否已安装
# 如果未安装,请执行安装命令:
# curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

# 3. 首次运行 Hermes Agent 进行配置 (如果之前未配置)
# 这一步会引导你设置 LLM 提供商和 API Key。
# 这里我们假设你已经配置了 OpenRouter 并提供了 API Key。
hermes setup

预期输出示例 (部分):

Welcome to Hermes Agent setup!
This will guide you through the initial configuration.

Do you want to enable telemetry data collection? (y/N): N
Please select your preferred LLM provider:
1. OpenRouter
2. OpenAI
3. Anthropic
4. Google
5. Together AI
6. Perplexity AI
Enter your choice (1-6): 1

Please enter your OpenRouter API Key: sk-or-... # 这里输入你的 OpenRouter API Key

Configuration saved successfully!

接下来,我们将 Hermes Agent 核心进程放在后台运行,以便网关能够连接。

# 4. 在后台启动 Hermes Agent 核心进程
# 使用 nohup 确保即使 SSH 会话断开,Agent 也能持续运行
nohup hermes agent > hermes_agent.log 2>&1 &

# 5. 验证 Agent 是否在后台运行
# 查看进程列表,你应该能看到一个 Python 进程包含 'hermes agent'
ps aux | grep "hermes agent"

# 查看日志,确保 Agent 启动正常
tail -f hermes_agent.log

预期输出示例 (ps aux):

your_username  12345  0.5  1.0 123456 78900 pts/0    Sl   10:00   0:05 python -m hermes.agent

预期输出示例 (tail -f hermes_agent.log):

...
INFO:     Started server process [12345]
INFO:     Waiting for changes to reload. Press CTRL+C to exit.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

这表明 Hermes Agent 核心已在后台成功启动。

实战演示 2:配置并启动 Telegram 消息网关

我们将使用一个假设的 Telegram Bot Token 来演示。

前置步骤: 确保你已通过 @BotFather 创建了一个 Telegram Bot 并获取了其 Token。假设 Token 为 1234567890:AAH_random_token_string_example

# 1. 设置 Telegram Bot Token 环境变量 (推荐方式,避免直接在命令行中暴露敏感信息)
export TELEGRAM_BOT_TOKEN="1234567890:AAH_random_token_string_example"

# 2. 启动 Hermes Telegram 网关,并在后台运行
nohup hermes gateway telegram --token "$TELEGRAM_BOT_TOKEN" > hermes_telegram_gateway.log 2>&1 &

# 3. 验证 Telegram 网关是否在后台运行
ps aux | grep "hermes gateway telegram"

# 4. 查看 Telegram 网关的日志
tail -f hermes_telegram_gateway.log

预期输出示例 (ps aux):

your_username  12346  0.3  0.8 100000 60000 pts/0    Sl   10:01   0:03 python -m hermes.gateway telegram ...

预期输出示例 (tail -f hermes_telegram_gateway.log):

...
INFO:     Starting Telegram gateway...
INFO:     Bot started successfully!
INFO:     Listening for messages...

交互测试:

  1. 在你的 Telegram 应用中,找到你创建的 Bot。
  2. 向 Bot 发送消息,例如:“你好,你是谁?”
  3. Hermes Agent 应该会通过 Telegram 回复你。

Telegram 交互示例:

用户: 你好,你是谁? Hermes Agent: 我是 Hermes Agent,一个由 NousResearch 开发的自进化 AI 助手。我能够学习新技能、记住上下文,并帮助你完成各种任务。有什么我可以帮你的吗?

用户: 请告诉我一个关于 Python 的趣闻。 Hermes Agent: 当然!你知道 Python 的名字并不是来源于蛇,而是来自英国喜剧团体 Monty Python 吗?吉多·范罗苏姆(Guido van Rossum)在设计这门语言时,正好在读他们的剧本,觉得这个名字既独特又有趣!

实战演示 3:配置并启动 Discord 消息网关

我们将使用假设的 Discord Bot Token 和 Client ID 来演示。

前置步骤: 确保你已通过 Discord 开发者门户创建了一个 Discord Bot,获取了其 Token 和 Client ID,并已将其邀请到你的 Discord 服务器。假设 Token 为 MTEyMjMzNDQ1NTY2Nz...,Client ID 为 112233445566778899

# 1. 设置 Discord Bot Token 和 Client ID 环境变量
export DISCORD_BOT_TOKEN="MTEyMjMzNDQ1NTY2Nz..."
export DISCORD_CLIENT_ID="112233445566778899"

# 2. 启动 Hermes Discord 网关,并在后台运行
nohup hermes gateway discord --token "$DISCORD_BOT_TOKEN" --client-id "$DISCORD_CLIENT_ID" > hermes_discord_gateway.log 2>&1 &

# 3. 验证 Discord 网关是否在后台运行
ps aux | grep "hermes gateway discord"

# 4. 查看 Discord 网关的日志
tail -f hermes_discord_gateway.log

预期输出示例 (ps aux):

your_username  12347  0.4  0.9 110000 70000 pts/0    Sl   10:02   0:04 python -m hermes.gateway discord ...

预期输出示例 (tail -f hermes_discord_gateway.log):

...
INFO:     Starting Discord gateway...
INFO:     Discord bot is ready! Logged in as Hermes Discord Agent#1234
INFO:     Listening for messages...

交互测试:

  1. 在你的 Discord 应用中,进入你邀请 Bot 所在的服务器和频道。
  2. 在频道中 @ 你的 Bot 并发送消息,例如:“@Hermes Discord Agent 帮我总结一下今天的课程。”
  3. Hermes Agent 应该会通过 Discord 回复你。

Discord 交互示例:

用户 (在频道中): @Hermes Discord Agent 帮我总结一下今天的课程。 Hermes Agent: 好的,今天的课程主要围绕 Hermes Agent 的消息网关展开,包括:

  1. 核心概念: 理解网关的重要性,实现远程、持续交互。
  2. 架构概览: Agent 部署在云服务器,通过网关连接消息平台。
  3. Telegram 网关: 创建 Bot,获取 Token,启动 hermes gateway telegram
  4. Discord 网关: 创建 Bot,获取 Token 和 Client ID,邀请 Bot,启动 hermes gateway discord
  5. 实战演示: 在云服务器上后台运行 Agent 核心和各个网关,并通过实际对话验证功能。

有什么不清楚的地方吗?

通过以上实战,你已经成功地将 Hermes Agent 部署到云服务器,并配置了 Telegram 和 Discord 消息网关。现在,你的 AI 助手已经能够随时随地为你服务了!


🔧 涉及的命令与工具

命令/工具 描述 用途
ssh Secure Shell 协议,用于远程登录和管理 Linux 服务器。 连接到云服务器,执行 Hermes Agent 的安装、配置和网关启动。
curl 命令行工具,用于传输数据,支持多种协议。 下载 Hermes Agent 的安装脚本。
bash Unix Shell 和命令语言。 执行 Hermes Agent 的安装脚本。
hermes setup Hermes Agent 的初始化配置命令。 首次设置 Agent 的 LLM 提供商和 API Key。
hermes agent 启动 Hermes Agent 核心进程的命令。 运行 Agent 的推理、学习和记忆模块。
hermes gateway telegram 启动 Hermes Agent Telegram 消息网关的命令。 连接 Agent 到 Telegram Bot API,实现通过 Telegram 的交互。
hermes gateway discord 启动 Hermes Agent Discord 消息网关的命令。 连接 Agent 到 Discord Bot API,实现通过 Discord 的交互。
nohup 运行命令时,忽略挂断信号,使程序在用户退出终端后继续运行。 在后台持久化运行 Hermes Agent 核心进程和消息网关。
ps aux 显示当前系统所有进程的状态。 检查 Hermes Agent 及其网关进程是否正在运行。
grep 文本搜索工具。 结合 ps aux 过滤出特定进程信息。
tail -f 实时跟踪文件末尾新增内容。 监控 Hermes Agent 和网关的日志输出,便于调试和查看运行状态。
@BotFather Telegram 官方 Bot,用于创建和管理 Telegram Bot。 获取 Telegram Bot 的 API Token。
Discord Developer Portal Discord 官方开发者平台,用于创建和管理 Discord 应用和 Bot。 创建 Discord Bot,获取 Bot Token 和 Client ID,设置权限,生成邀请链接。
export Bash 命令,用于设置环境变量。 临时设置 API Token 等敏感信息,避免直接在命令行中暴露。

📝 本期要点回顾

  • 消息网关是关键: Hermes Agent 的消息网关是实现远程、持续交互的核心,允许 Agent 在云端运行并通过常用聊天应用(如 Telegram、Discord)与用户互动。
  • 云服务器是基础: 为了实现消息网关的持久化运行,将 Hermes Agent 部署在稳定的云服务器上是必不可少的步骤。
  • Telegram Bot 配置: 通过 @BotFather 创建 Bot,获取 API Token,然后使用 hermes gateway telegram --token <TOKEN> 启动网关。
  • Discord Bot 配置: 通过 Discord 开发者门户创建应用和 Bot,获取 Bot Token 和 Client ID,启用 MESSAGE CONTENT INTENT,邀请 Bot 到服务器,然后使用 hermes gateway discord --token <TOKEN> --client-id <CLIENT_ID> 启动网关。
  • 后台持久化运行: 使用 nohup 或其他进程管理工具(如 screen/tmux/systemd)确保 Hermes Agent 核心进程和消息网关在 SSH 会话断开后仍能持续运行。
  • 安全性与监控: 妥善保管 API Token,定期检查 Agent 和网关的日志,并监控服务器资源,是保障 Agent 稳定运行的重要实践。

🔗 参考资料

  1. Hermes Agent GitHub 项目: https://github.com/NousResearch/hermes-agent
  2. Hermes Agent 官方文档: https://hermes-agent.nousresearch.com/docs/
  3. Telegram Bot API 文档: https://core.telegram.org/bots/api
  4. Discord Developer Portal: https://discord.com/developers/applications