DISCORD_BOT_TOKEN | 是 | — | 来自 Discord 开发者门户 的机器人 token。 |
DISCORD_ALLOWED_USERS | 是 | — | 允许与机器人交互的 Discord 用户 ID,逗号分隔。没有此项或 DISCORD_ALLOWED_ROLES,网关将拒绝所有用户 。 |
DISCORD_ALLOWED_ROLES | 否 | — | Discord 角色 ID,逗号分隔。拥有其中任一角色的成员即被授权——与 DISCORD_ALLOWED_USERS 为 OR 语义。连接时自动启用 Server Members Intent。适用于管理团队频繁变动的场景:新管理员一旦被授予角色即可获得访问权限,无需推送配置。 |
DISCORD_HOME_CHANNEL | 否 | — | 机器人发送主动消息(cron 输出、提醒、通知)的频道 ID。 |
DISCORD_HOME_CHANNEL_NAME | 否 | "Home" | 主频道在日志和状态输出中的显示名称。 |
DISCORD_COMMAND_SYNC_POLICY | 否 | "safe" | 控制原生斜杠命令启动同步。"safe" 对现有全局命令进行差异比较,仅更新已更改的内容,当 Discord 元数据更改无法通过补丁应用时重新创建命令。"bulk" 保留旧的 tree.sync() 行为。"off" 完全跳过启动同步。 |
DISCORD_REQUIRE_MENTION | 否 | true | 为 true 时,机器人仅在服务器频道中被 @提及 时响应。设置为 false 可响应每个频道中的所有消息。 |
DISCORD_THREAD_REQUIRE_MENTION | 否 | false | 为 true 时,禁用线程内的提及快捷方式——线程与频道的门控方式相同,即使机器人已经参与其中,也需要 @提及。当多个机器人共享一个线程且你希望每个机器人仅在明确 @提及 时触发时使用此设置。 |
DISCORD_FREE_RESPONSE_CHANNELS | 否 | — | 机器人无需 @提及 即可响应的频道 ID,逗号分隔,即使 DISCORD_REQUIRE_MENTION 为 true 也适用。 |
DISCORD_IGNORE_NO_MENTION | 否 | true | 为 true 时,如果消息 @提及 了其他用户但未提及机器人,机器人保持沉默。防止机器人介入针对其他人的对话。仅适用于服务器频道,不适用于私信。 |
DISCORD_AUTO_THREAD | 否 | true | 为 true 时,自动为文本频道中的每次 @提及 创建新线程,使每个对话相互隔离(类似 Slack 行为)。已在线程或私信中的消息不受影响。 |
DISCORD_ALLOW_BOTS | 否 | "none" | 控制机器人如何处理来自其他 Discord 机器人的消息。"none" — 忽略所有其他机器人。"mentions" — 仅接受 @提及 Hermes 的机器人消息。"all" — 接受所有机器人消息。 |
DISCORD_REACTIONS | 否 | true | 为 true 时,机器人在处理过程中为消息添加 emoji 反应(开始时 👀,成功时 ✅,出错时 ❌)。设置为 false 可完全禁用反应。 |
DISCORD_IGNORED_CHANNELS | 否 | — | 机器人永不响应的频道 ID,逗号分隔,即使被 @提及 也不响应。优先于所有其他频道设置。 |
DISCORD_ALLOWED_CHANNELS | 否 | — | 频道 ID,逗号分隔。设置后,机器人仅在这些频道(以及允许的私信)中响应。覆盖 config.yaml 中的 discord.allowed_channels。与 DISCORD_IGNORED_CHANNELS 结合使用可表达允许/拒绝规则。 |
DISCORD_NO_THREAD_CHANNELS | 否 | — | 机器人直接在频道中响应而不创建线程的频道 ID,逗号分隔。仅在 DISCORD_AUTO_THREAD 为 true 时有效。 |
DISCORD_HISTORY_BACKFILL | 否 | true | 为 true 时,当机器人被提及时,将最近的频道滚动历史(自机器人上次响应以来)前置到用户消息中。恢复机器人在 require_mention 模式下会错过的上下文。在私信和自由响应频道中跳过。设置为 false 可禁用。 |
DISCORD_HISTORY_BACKFILL_LIMIT | 否 | 50 | 组装回填块时向后扫描的最大消息数。实际上扫描通常会更早停止——在机器人自己在频道中的最后一条消息处。 |
DISCORD_REPLY_TO_MODE | 否 | "first" | 控制回复引用行为:"off" — 从不回复原始消息,"first" — 仅在第一个消息块上添加回复引用(默认),"all" — 在每个块上都添加回复引用。 |
DISCORD_ALLOW_MENTION_EVERYONE | 否 | false | 为 false(默认)时,即使响应中包含这些 token,机器人也无法 ping @everyone 或 @here。设置为 true 可重新启用。参见下方提及控制。 |
DISCORD_ALLOW_MENTION_ROLES | 否 | false | 为 false(默认)时,机器人无法 ping @role 提及。设置为 true 可允许。 |
DISCORD_ALLOW_MENTION_USERS | 否 | true | 为 true(默认)时,机器人可以通过 ID ping 单个用户。 |
DISCORD_ALLOW_MENTION_REPLIED_USER | 否 | true | 为 true(默认)时,回复消息会 ping 原始作者。 |
DISCORD_PROXY | 否 | — | Discord 连接的代理 URL(HTTP、WebSocket、REST)。覆盖 HTTPS_PROXY/ALL_PROXY。支持 http://、https:// 和 socks5:// 协议。 |
DISCORD_ALLOW_ANY_ATTACHMENT | 否 | false | 为 true 时,机器人接受任何文件类型的附件(不仅限于内置的 PDF/文本/zip/office 允许列表)。未知类型会被缓存到磁盘,并以 application/octet-stream MIME 类型作为本地路径提供给 agent,以便它可以使用 terminal / read_file / ffprobe 等工具检查。 |
DISCORD_MAX_ATTACHMENT_BYTES | 否 | 33554432 | 网关将下载并缓存的每个附件的最大字节数。默认 32 MiB。设置为 0 表示无上限(附件在写入时保存在内存中,因此无限制会带来真实的内存成本)。 |
HERMES_DISCORD_TEXT_BATCH_DELAY_SECONDS | 否 | 0.6 | 适配器在刷新排队文本块之前等待的宽限窗口。用于平滑流式输出。 |
HERMES_DISCORD_TEXT_BATCH_SPLIT_DELAY_SECONDS | 否 | 2.0 | 当单条消息超过 Discord 长度限制时,分割块之间的延迟。 |