ByteNoteByteNote
字

字节笔记本

2026年6月22日 · 约 43 分钟读完

hermes教程-消息网关

API中转
¥120

通过 Telegram、Discord、Slack、WhatsApp、Signal、SMS、Email、Home Assistant、Mattermost、Matrix、钉钉、飞书/Lark、企业微信、微信、BlueBubbles(iMessage)、QQ、元宝、Microsoft Teams、LINE、ntfy 或浏览器与 Hermes 聊天。网关是一个单一的后台进程,连接到所有已配置的平台,处理会话,运行定时任务,并传递语音消息。

有关完整的语音功能集——包括 CLI 麦克风模式、消息中的语音回复以及 Discord 语音频道对话——请参阅语音模式和将语音模式与 Hermes 结合使用。

提示

机器人需要模型提供者和工具提供者(TTS、Web)。Nous Portal 订阅捆绑了所有这些。

平台对比

平台语音图片文件线程反应输入指示流式
Telegram✅✅✅✅—✅✅
Discord✅✅✅✅✅✅✅
Slack✅✅✅✅✅✅✅
Google Chat—✅✅✅—✅—
WhatsApp—✅✅——✅✅
Signal—✅✅——✅✅
SMS———————
Email—✅✅✅———
Home Assistant———————
Mattermost✅✅✅✅—✅✅
Matrix✅✅✅✅✅✅✅
钉钉—✅✅—✅—✅
飞书/Lark✅✅✅✅✅✅✅
企业微信✅✅✅————
企业微信回调———————
微信✅✅✅——✅✅
BlueBubbles—✅✅—✅✅—
QQ✅✅✅——✅—
元宝✅✅✅——✅✅
Microsoft Teams—✅—✅—✅—
LINE—✅✅——✅—
ntfy———————

语音 = TTS 音频回复和/或语音消息转录。图片 = 发送/接收图片。文件 = 发送/接收文件附件。线程 = 线程化对话。反应 = 消息上的表情反应。输入指示 = 处理时显示输入指示。流式 = 通过编辑逐步更新消息。

架构

mermaid
flowchart TB
    subgraph Gateway["Hermes 网关"]
        subgraph Adapters["平台适配器"]
            tg[Telegram]
            dc[Discord]
            wa[WhatsApp]
            sl[Slack]
            gc[Google Chat]
            sig[Signal]
            sms[SMS]
            em[Email]
            ha[Home Assistant]
            mm[Mattermost]
            mx[Matrix]
            dt[钉钉]
    fs[飞书/Lark]
    wc[企业微信]
    wcb[企业微信回调]
    wx[微信]
    bb[BlueBubbles]
    qq[QQ]
    yb[元宝]
    ms[Microsoft Teams]
    api["API 服务器<br/>(兼容 OpenAI)"]
    wh[Webhooks]
        end

        store["会话存储<br/>每个聊天"]
        agent["AIAgent<br/>run_agent.py"]
        cron["Cron 调度器<br/>每 60 秒触发"]
    end

    tg --> store
    dc --> store
    wa --> store
    sl --> store
    gc --> store
    sig --> store
    sms --> store
    em --> store
    ha --> store
    mm --> store
    mx --> store
    dt --> store
    fs --> store
    wc --> store
    wcb --> store
    wx --> store
    bb --> store
    qq --> store
    yb --> store
    ms --> store
    api --> store
    wh --> store
    store --> agent
    cron --> store

每个平台适配器接收消息,通过每个聊天的会话存储路由,并分派给 AIAgent 进行处理。网关还运行 cron 调度器,每 60 秒触发一次以执行任何到期的任务。

静默令牌

对于群聊、钩子和自动化流程,Hermes 支持显式的静默令牌。如果代理的最终响应恰好是一个受支持的令牌,网关将抑制出站传递,不向聊天发送任何内容。

受支持的令牌:

  • [SILENT]
  • SILENT
  • NO_REPLY
  • NO REPLY

空白和大小写会被规范化,但整个最终响应必须是该令牌。像“当没有变化时使用 [SILENT]”这样的句子会正常传递。

静默仅影响传递决策。Hermes 会在会话记录中保留助手的静默轮次,因此对话仍然正常交替:

text
user: 旁路闲聊
assistant: [SILENT]   # 已存储,未传递
user: 下一条消息

失败的轮次仍然会显示为错误;Hermes 不会因为文本类似于静默令牌而隐藏失败。

快速设置

配置消息平台最简单的方式是使用交互式向导:

bash
hermes gateway setup        # 所有消息平台的交互式设置

这将引导您通过箭头键选择配置每个平台,显示哪些平台已配置,并在完成后提供启动/重启网关的选项。

网关命令

bash
hermes gateway              # 在前台运行
hermes gateway setup        # 交互式配置消息平台
hermes gateway install      # 安装为用户服务(Linux)/ launchd 服务(macOS)
sudo hermes gateway install --system   # 仅 Linux:安装为开机系统服务
hermes gateway start        # 启动默认服务
hermes gateway stop         # 停止默认服务
hermes gateway status       # 检查默认服务状态
hermes gateway status --system         # 仅 Linux:显式检查系统服务

聊天命令(消息内部)

命令描述
/new 或 /reset开始新的对话
/model [provider:model]显示或更改模型(支持 provider:model 语法)
/personality [name]设置个性
/retry重试最后一条消息
/undo移除最后一次交换
/status显示会话信息
/whoami显示您在此作用域上的斜杠命令访问权限(管理员/用户/无限制)
/stop停止正在运行的代理
/approve批准待处理的危险命令
/deny拒绝待处理的危险命令
/sethome将此聊天设置为家庭频道
/compress手动压缩对话上下文
/title [name]设置或显示会话标题
/resume [name]恢复之前命名的会话
/usage显示此会话的令牌使用情况
/insights [days]显示使用洞察和分析
/reasoning [level|show|hide]更改推理努力或切换推理显示
/voice [on|off|tts|join|leave|status]控制消息语音回复和 Discord 语音频道行为
/rollback [number]列出或恢复文件系统检查点
/background <prompt>在单独的后台会话中运行提示
/reload-mcp从配置重新加载 MCP 服务器
/update将 Hermes Agent 更新到最新版本
/help显示可用命令
/<skill-name>调用任何已安装的技能

会话管理

会话持久性

会话在消息之间持续存在,直到重置。代理会记住您的对话上下文。

重置策略

会话根据可配置的策略重置:

策略默认值描述
每日4:00 AM在每天特定小时重置
空闲1440 分钟在 N 分钟不活动后重置
两者(组合)以先触发的为准

在 ~/.hermes/gateway.json 中配置每个平台的覆盖:

json
{
  "reset_by_platform": {
    "telegram": { "mode": "idle", "idle_minutes": 240 },
    "discord": { "mode": "idle", "idle_minutes": 60 }
  }
}

安全

默认情况下,网关拒绝所有不在允许列表或通过 DM 配对的用户。 这是具有终端访问权限的机器人的安全默认设置。

bash
## 限制为特定用户(推荐):
TELEGRAM_ALLOWED_USERS=123456789,987654321
DISCORD_ALLOWED_USERS=123456789012345678
SIGNAL_ALLOWED_USERS=+155****4567,+155****6543
SMS_ALLOWED_USERS=+155****4567,+155****6543
EMAIL_ALLOWED_USERS=trusted@example.com,colleague@work.com
MATTERMOST_ALLOWED_USERS=3uo8dkh1p7g1mfk49ear5fzs5c
MATRIX_ALLOWED_USERS=@alice:matrix.org
DINGTALK_ALLOWED_USERS=user-id-1
FEISHU_ALLOWED_USERS=ou_xxxxxxxx,ou_yyyyyyyy
WECOM_ALLOWED_USERS=user-id-1,user-id-2
WECOM_CALLBACK_ALLOWED_USERS=user-id-1,user-id-2
TEAMS_ALLOWED_USERS=aad-object-id-1,aad-object-id-2
## 或者允许
GATEWAY_ALLOWED_USERS=123456789,987654321
## 或者显式允许所有用户(不推荐用于具有终端访问权限的机器人):
GATEWAY_ALLOW_ALL_USERS=true

DM 配对(允许列表的替代方案)

无需手动配置用户 ID,未知用户在向机器人发送 DM 时会收到一次性配对码:

bash
## 用户看到:"配对码:XKGH5N7P"
## 您通过以下方式批准他们:
hermes pairing approve telegram XKGH5N7P
## 其他配对命令:
hermes pairing list          # 查看待处理 + 已批准的用户
hermes pairing revoke telegram 123456789  # 移除访问权限

配对码在 1 小时后过期,有速率限制,并使用加密随机性。

管理员与普通用户

允许列表回答“此人能否联系到机器人?” 管理员/用户分离回答“既然他们进来了,他们被允许做什么?”

每个允许的用户在每个作用域(DM 与群组/频道)中属于两个层级之一:

  • 管理员 — 完全访问权限。可以运行所有已注册的斜杠命令(内置 + 插件)并使用所有受门控的能力。
  • 普通用户 — 受限访问权限。可以正常与代理聊天,但只能运行您显式启用的斜杠命令。始终允许的最低限度是 /help 和 /whoami。

层级按平台和作用域配置。DM 管理员状态并不意味着群组/频道管理员状态——每个作用域都有自己的管理员列表。

当前层级门控的内容: 斜杠命令。分离通过实时命令注册表运行,因此涵盖内置和插件注册的命令,无需逐个功能接线。普通聊天不受影响——非管理员仍然可以与代理交谈。

未来可能门控的内容: 更多能力表面(工具访问、模型切换、昂贵操作)将挂载在相同的管理员/用户区分上,随着我们添加它们。现在配置分离意味着这些未来的限制将干净地落地,而无需您重新建模谁是管理员。

配置

yaml
gateway:
  platforms:
    discord:
      extra:
        allow_from: ["111", "222", "333"]
        allow_admin_from: ["111"]                    # 管理员 → 所有斜杠命令
        user_allowed_commands: [status, model]       # 非管理员可以运行的内容
## 可选:单独的群组/频道作用域
        group_allow_admin_from: ["111"]
        group_user_allowed_commands: [status]

向后兼容: 如果某个作用域未设置 allow_admin_from,则该作用域的层级分离被禁用,所有允许的用户拥有完全访问权限。现有安装无需更改即可继续工作——当您想要区分时选择加入。

检查您的访问权限

在任何平台上使用 /whoami 查看活动作用域、您的层级(管理员/用户/无限制)以及您可以运行哪些斜杠命令。请参阅 Telegram 和 Discord 页面以获取特定平台的示例。

中断代理

在代理工作时发送任何消息即可中断它。关键行为:

  • 正在进行的终端命令会立即被杀死(SIGTERM,1 秒后 SIGKILL)
  • 工具调用被取消——只有当前正在执行的工具会运行,其余被跳过
  • 多条消息被合并——中断期间发送的消息被合并为一个提示
  • /stop 命令——中断而不排队后续消息

队列 vs 中断 vs 引导(忙碌输入模式)

默认情况下,向忙碌的代理发送消息会中断它。还有两种其他模式可用:

  • queue — 后续消息等待并在当前任务完成后作为下一轮运行。
  • steer — 后续消息通过 /steer 注入到当前运行中,在下一个工具调用后到达代理。不中断,不产生新轮次。如果代理尚未开始,则回退到 queue 行为。
yaml
display:
  busy_input_mode: steer   # 或 queue,或 interrupt(默认)
  busy_ack_enabled: true   # 设置为 false 以完全抑制 ⚡/⏳/⏩ 聊天回复

当您第一次在任何平台上向忙碌的代理发送消息时,Hermes 会在忙碌确认后附加一行一次性提醒("💡 首次提示 — …")。该提醒在每个安装中触发一次——onboarding.seen.busy_input_prompt 下的标志会锁定它。删除该键可再次看到提示。

如果您觉得忙碌确认过于嘈杂——尤其是在语音输入或快速连续消息时——请设置 display.busy_ack_enabled: false。您的输入仍然会正常排队/引导/中断,只有聊天回复被静音。

工具进度通知

在 ~/.hermes/config.yaml 中控制显示多少工具活动:

yaml
display:
  tool_progress: all    # off | new | all | verbose
  tool_progress_command: false  # 设置为 true 以在消息中启用 /verbose
## 在支持消息编辑的平台上如何分组进度:
## accumulate(默认)— 在工具运行时原地编辑一个气泡
## separate             — 每个工具发送一条消息(v0.9 之前的风格;更嘈杂)
## 仅在已启用 tool_progress 时适用。
  tool_progress_grouping: accumulate   # accumulate | separate

模型上下文中的消息时间戳

默认关闭。启用后,Hermes 会在模型上下文中的每条用户消息前添加一个人类可读的时间戳(例如 [Tue 2026-04-28 13:40:53 CEST]),以便代理知道消息何时发送——对于时间推理(“您今天早上问过……”,注意到长时间间隔)很有用。它不会添加到助手消息或系统提示中。

yaml
gateway:
  message_timestamps:
    enabled: false   # 设置为 true 以向模型显示发送时间

持久化的记录始终保持干净——无论此开关如何,时间戳都作为消息元数据存储,因此稍后启用它也会显示过去消息的发送时间,并且重播永远不会累积重复的前缀。

启用后,机器人会在工作时发送状态消息:

text
💻 `ls -la`...
🔍 web_search...
📄 web_extract...
🐍 execute_code...

后台会话

在单独的后台会话中运行提示,以便代理独立处理它,同时您的主聊天保持响应:

/background 检查集群中的所有服务器并报告任何宕机的服务器

Hermes 立即确认:

text
🔄 后台任务已启动:"检查集群中的所有服务器..."
   任务 ID: bg_143022_a1b2c3

工作原理

每个 /background 提示会生成一个独立的代理实例,异步运行:

  • 隔离的会话 — 后台代理拥有自己的会话和自己的对话历史。它不知道您当前的聊天上下文,只接收您提供的提示。
  • 相同的配置 — 继承您当前的模型、提供者、工具集、推理设置和提供者路由。
  • 非阻塞 — 您的主聊天保持完全交互。在工作时发送消息、运行其他命令或启动更多后台任务。
  • 结果传递 — 任务完成时,结果会发送回您发出命令的同一聊天或频道,前缀为“✅ 后台任务完成”。如果失败,您会看到“❌ 后台任务失败”以及错误。

后台进程通知

当运行后台会话的代理使用 terminal(background=true) 启动长时间运行的进程(服务器、构建等)时,网关可以将状态更新推送到您的聊天。通过 ~/.hermes/config.yaml 中的 display.background_process_notifications 控制:

yaml
display:
  background_process_notifications: all    # all | result | error | off
模式您收到的内容
all运行输出更新和最终完成消息(默认)
result仅最终完成消息(无论退出代码如何)
error仅当退出代码非零时的最终消息
off完全没有进程监视器消息

您也可以通过环境变量设置:

bash
HERMES_BACKGROUND_NOTIFICATIONS=result

使用场景

  • 服务器监控 — "/background 检查所有服务的健康状况,如果有任何宕机请提醒我"
  • 长时间构建 — "/background 构建并部署暂存环境",同时您继续聊天
  • 研究任务 — "/background 研究竞争对手定价并总结成表格"
  • 文件操作 — "/background 将 ~/Downloads 中的照片按日期整理到文件夹中"

提示

消息平台上的后台任务是即发即忘的——您无需等待或检查它们。任务完成时,结果会自动到达同一聊天。

服务管理

Linux(systemd)

bash
hermes gateway install               # 安装为用户服务
hermes gateway start                 # 启动服务
hermes gateway stop                  # 停止服务
hermes gateway status                # 检查状态
journalctl --user -u hermes-gateway -f  # 查看日志
## 启用驻留(注销后继续运行)
sudo loginctl enable-linger $USER
## 或者安装一个开机系统服务,但仍以您的用户身份运行
sudo hermes gateway install --system
sudo hermes gateway start --system
sudo hermes gateway status --system
journalctl -u hermes-gateway -f

在笔记本电脑和开发机上使用用户服务。在 VPS 或无头主机上使用系统服务,这些主机应在启动时恢复,而不依赖 systemd 驻留。

提示 — 无头虚拟机:用户服务 + 驻留避免 root 提示

系统服务每次重启都需要 root 权限——包括 hermes update 结束时自动重启网关。当 hermes update 以非 root 用户身份运行时,它会尝试无密码的 sudo systemctl;如果不可用,它会跳过重启并打印手动 sudo systemctl restart hermes-gateway 命令(它永远不会阻塞在交互式密码提示上)。

对于您从不登录的无头虚拟机,启用驻留的用户服务可以为您提供相同的开机启动行为,且无需 root 参与:

bash
hermes gateway install          # 用户服务
sudo loginctl enable-linger $USER   # 一次性:开机启动,注销后存活

之后,hermes update 可以在没有任何权限的情况下重启网关。如果您更喜欢保留系统服务,请使用 sudo hermes update 运行更新,或者为服务账户授予 systemctl 的无密码 sudo 权限,例如在 sudo visudo -f /etc/sudoers.d/hermes-gateway 中:

hermes ALL=(root) NOPASSWD: /usr/bin/systemctl --no-ask-password reset-failed hermes-gateway*, /usr/bin/systemctl --no-ask-password start hermes-gateway*, /usr/bin/systemctl --no-ask-password restart hermes-gateway*

除非您确实需要,否则避免同时安装用户和系统网关单元。如果 Hermes 检测到两者都存在,它会发出警告,因为启动/停止/状态行为会变得模糊。

信息 — 多个安装

如果您在同一台机器上运行多个 Hermes 安装(使用不同的 HERMES_HOME 目录),每个安装都有自己的 systemd 服务名称。默认的 ~/.hermes 使用 hermes-gateway;其他安装使用 hermes-gateway-<hash>。hermes gateway 命令会自动针对您当前 HERMES_HOME 的正确服务。

macOS(launchd)

bash
hermes gateway install               # 安装为 launchd 代理
hermes gateway start                 # 启动服务
hermes gateway stop                  # 停止服务
hermes gateway status                # 检查状态
tail -f ~/.hermes/logs/gateway.log   # 查看日志

生成的 plist 文件位于 ~/Library/LaunchAgents/ai.hermes.gateway.plist。它包含三个环境变量:

  • PATH — 安装时的完整 shell PATH,并在前面添加了 venv bin/ 和 node_modules/.bin。这确保用户安装的工具(Node.js、ffmpeg 等)可用于网关子进程,如 WhatsApp 桥接器。
  • VIRTUAL_ENV — 指向 Python 虚拟环境,以便工具正确解析包。
  • HERMES_HOME — 将网关限定到您的 Hermes 安装。

提示 — 安装后 PATH 更改

launchd plist 是静态的——如果您在设置网关后安装了新工具(例如通过 nvm 安装新 Node.js 版本,或通过 Homebrew 安装 ffmpeg),请再次运行 hermes gateway install 以捕获更新后的 PATH。网关将检测到过时的 plist 并自动重新加载。

信息 — 多个安装

与 Linux systemd 服务类似,每个 HERMES_HOME 目录都有自己的 launchd 标签。默认的 ~/.hermes 使用 ai.hermes.gateway;其他安装使用 ai.hermes.gateway-<suffix>。

平台特定工具集

每个平台都有自己的工具集:

平台工具集能力
CLIhermes-cli完全访问
Telegramhermes-telegram包括终端在内的完整工具
Discordhermes-discord包括终端在内的完整工具
WhatsApphermes-whatsapp包括终端在内的完整工具
WhatsApp Cloud APIhermes-whatsapp包括终端在内的完整工具(与 Baileys 桥接器共享工具集)
Slackhermes-slack包括终端在内的完整工具
Google Chathermes-google_chat包括终端在内的完整工具
Signalhermes-signal包括终端在内的完整工具
SMShermes-sms包括终端在内的完整工具
Emailhermes-email包括终端在内的完整工具
Home Assistanthermes-homeassistant完整工具 + HA 设备控制(ha_list_entities、ha_get_state、ha_call_service、ha_list_services)
Mattermosthermes-mattermost包括终端在内的完整工具
Matrixhermes-matrix包括终端在内的完整工具
钉钉hermes-dingtalk包括终端在内的完整工具
飞书/Larkhermes-feishu包括终端在内的完整工具
企业微信hermes-wecom包括终端在内的完整工具
企业微信回调hermes-wecom-callback包括终端在内的完整工具
微信hermes-weixin包括终端在内的完整工具
BlueBubbleshermes-bluebubbles包括终端在内的完整工具
QQBothermes-qqbot包括终端在内的完整工具
元宝hermes-yuanbao包括终端在内的完整工具
Microsoft Teamshermes-teams包括终端在内的完整工具
API 服务器hermes-api-server完整工具(移除 clarify、send_message、text_to_speech——程序化访问没有交互式用户)
Webhookshermes-webhook包括终端在内的完整工具

运行多平台网关

一个网关通常同时运行多个适配器(Telegram + Discord + Slack 等)。以下部分涵盖跨所有平台的第二天操作。

/platform 命令

一旦网关运行,您可以从任何连接的 CLI 会话或聊天中使用 /platform 斜杠命令来检查和引导单个适配器,而无需重启整个网关:

text
/platform list                  # 显示所有适配器及其状态
/platform pause <name>          # 停止向一个适配器分派新消息
/platform resume <name>         # 重新启用暂停的适配器

/platform list 显示每个适配器是 running、paused(手动)还是 paused-by-breaker(见下文)。暂停会保持适配器加载及其后台循环存活——传入消息被丢弃,但连接本身保持打开,因此恢复是即时的。

另请参阅更广泛的状态摘要命令 /platforms。

自动断路器

每个适配器都包裹在一个断路器中。重复的可重试失败(网络波动、速率限制回复、5xx 上游响应、WebSocket 断开)会导致断路器跳闸——适配器自动暂停,当配置了另一个实时平台的家庭频道时,会向该频道发送操作员通知,并发出结构化日志行。

断路器不会自动恢复——它保持打开状态,直到您手动运行 /platform resume <name>。这是有意为之:如果某个平台处于持续中断状态,您不希望网关反复重连。

平台暂停时该检查什么

当适配器暂停时,请检查:

  1. 网关日志(~/.hermes/logs/gateway.log 或 systemd / launchd 单元日志)。搜索平台名称和 circuit breaker、paused 或 disabled。跳闸事件包括失败计数和最后一个错误。
  2. /platform list 输出——显示当前状态和最后原因。
  3. 提供者的状态页面(Telegram 机器人 API 状态、Discord 状态等)。断路器跳闸是因为平台不健康;在它恢复之前不要尝试恢复。

一旦上游恢复健康,/platform resume <name> 会清除断路器并重新启用适配器。

重启通知

当网关重启(或关闭时存在进行中的会话)时,它可以向每个平台的家庭频道发送一次性的“代理已返回”/“代理被中断”消息。这由 gateway-config.yaml 中的 gateway_restart_notification 标志按平台控制,默认为 true:

yaml
gateway:
  platforms:
    telegram:
      home_chat_id: "123456789"
      gateway_restart_notification: false   # 为此平台选择退出
    discord:
      home_chat_id: "987654321"
## gateway_restart_notification 省略 → 默认为 true

在嘈杂或低优先级的平台上禁用它,同时为主聊天保留它。每次重启发送一次通知,无论有多少会话在进行中。

跨网关重启的会话恢复

当网关关闭时存在进行中的工具调用或生成,受影响的会话被标记为 restart_interrupted。在下次启动时,网关为每个会话安排自动恢复——用户会在聊天中收到简短提示(“重启后发送任何消息,我会尝试从您离开的地方继续。”),当他们回复时,会话从最后提交的轮次继续。

此行为默认开启,并在网关启动时记录:

已为 N 个重启中断的会话安排自动恢复

无需配置。如果您不想要提示,请在平台上设置 gateway_restart_notification: false。

移动端友好的进度默认值

Telegram 通常是移动收件箱,因此默认值针对该表面进行了调整:

  • tool_progress 默认为 off — 没有每个工具的面包屑流填满聊天。
  • busy_ack_detail 默认为 off — 忙碌状态确认和长时间运行的心跳保持简洁(没有 iteration 21/60 调试细节)。
  • interim_assistant_messages 保持 on — 真正的轮次中助手评论(模型告诉您它将要做什么)是信号,不是噪音。
  • long_running_notifications 保持 on — 一个原地编辑的“⏳ 工作中 — N 分钟”气泡每隔几分钟更新一次,因此您有一个心跳,而不是盯着 typing… 半小时。

选择退出任何一个保持开启的默认值,或按平台选择重新启用详细进度:

yaml
display:
  platforms:
    telegram:
## 重新启用工具进度流
      tool_progress: new
## 在心跳和忙碌确认中显示 "iteration N/M, running: tool"
      busy_ack_detail: true
## 或者完全静音它们
      interim_assistant_messages: false
      long_running_notifications: false

进度气泡清理(选择加入)

工具进度消息、“仍在工作…”心跳和状态回调气泡也可以在最终响应落地后自动删除。通过 display.platforms.<platform>.cleanup_progress 按平台启用:

yaml
display:
  platforms:
    telegram:
      cleanup_progress: true
    discord:
      cleanup_progress: true

默认为 false。只有其适配器实现了 delete_message 的平台才支持此设置(目前是 Telegram 和 Discord)。失败的运行跳过清理,因此气泡保留为面包屑。

下一步


相关文章

分享: