资讯动态

Hermes + OpenRouter + Telegram 集成指南:用 TaoToken 统一 Key 打通 Bot 消息链路

发布时间:2026/10/18 2:17:16 来源:尧图企业网站定制
1. 为什么要把 Hermes、OpenRouter 和 Telegram 串成一条链路如果你正在找一个能自建、能换模型、还能直接在手机上聊天的机器人方案Hermes OpenRouter Telegram 这套组合值得认真看一下。Hermes 负责把消息接进来再转发出去OpenRouter 提供 100 多个模型的统一调用入口Telegram 则是你随手就能用的聊天窗口。三者拼起来就是一个属于你自己的多模型对话机器人。但真正动手时很多人会卡在同一个地方Key 太多、Base URL 太乱。OpenRouter 一个 KeyTelegram Bot 一个 TokenHermes 自己还要配置模型来源环境变量一多就容易写错。我试过把这几样东西分开管理结果调试时来回切换配置文件光找哪个 Key 对应哪个服务就花了不少时间。这篇要讲的思路是用 TaoToken 统一 Key 作为模型调用的入口把 Base URL 收敛到一处Hermes 只认这一个地址OpenRouter 的模型名照常填。这样 Telegram Bot 收到的消息经 Hermes 转发到统一入口再落到具体模型上回传链路清晰排障也简单。适合谁看想自建多模型对话机器人、已经在用 Hermes 或准备接入 OpenRouter、希望把 Key 管理简化的开发者。下面从环境准备开始一步步给出可复制的配置片段最后用一条 curl 请求验证整条链路是否打通。核心检索词先明确Hermes 接入 OpenRouter、Telegram Bot 消息收发、TaoToken 统一 Key、Base URL 配置。这几个词会贯穿全文你照着做就能跑通。2. TaoToken 前置准备统一 Key 与 Base URL 怎么拿在动 Hermes 之前先把模型调用的入口准备好。TaoToken 的作用是给你一个统一的 API 地址和 KeyHermes 配置里只写这一个 Base URL后面换模型、加模型都不用改地址。第一步打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册并登录。进入控制台后找到 API Keys 页面新建一个 Key。这个 Key 只显示一次复制后先存到安全的地方后面环境变量里要用。第二步确认 Base URL。TaoToken 的 API 地址是 https://taotoken.net/api 注意这个地址不带任何查询参数配置时直接填这一串。Hermes 里凡是要求填 OpenRouter Base URL 的地方都换成这个。第三步想好你要用哪个模型。OpenRouter 的模型名格式通常是厂商/模型比如openrouter/elephant-alpha这类免费模型或者anthropic/claude-3.5-sonnet这类付费模型。模型名在 Hermes 配置和验证请求里都会用到先记下来。这里有个容易踩的坑有人把 TaoToken 的 Key 和 OpenRouter 官方 Key 混着填结果请求发出去返回 401。记住既然走统一入口Hermes 里填的就是 TaoToken 的 Key不是 OpenRouter 官网申请的 Key。两者不要同时出现在一个配置里。环境变量建议单独放一个文件管理比如项目根目录下的.env。模板如下你可以直接复制# TaoToken 统一入口 TAOTOKEN_API_KEYsk-你的TaoTokenKey TAOTOKEN_BASE_URLhttps://taotoken.net/api # Telegram Bot TELEGRAM_BOT_TOKEN123456789:AAHxxxxxxxxxxxxxxxx TELEGRAM_USER_ID123456789 # 模型 OPENROUTER_MODELopenrouter/elephant-alphaTelegram 的 Bot Token 和 user_id 下面会讲怎么拿。先把这份模板存好等 Hermes 配置时直接引用。如果你还没决定用哪个模型可以先到模型对话页面 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 看看可用列表挑一个免费的先跑通链路再换付费模型。长期做编码或 Agent 的话Coding Plan 页面 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 有更划算的方案可以后面再研究。3. 可复制配置Hermes 的 settings 与 Telegram 环境变量这一节是全文的核心配置写对了后面验证基本一次过。分三块Hermes 的模型配置、Telegram Bot 的创建、以及把两者接起来的 Gateway 配置。3.1 Hermes 模型配置片段Hermes 的模型配置一般放在用户目录下的配置文件中具体路径因版本而异常见的是~/.hermes/config.toml或项目内的settings.json。下面给一份 TOML 片段路径和字段名按你本地实际文件为准字段值照抄[model] provider openrouter base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} default_model openrouter/elephant-alpha [model.options] timeout 60 max_retries 2如果你用的是 JSON 格式的 settings等价写法{ model: { provider: openrouter, base_url: https://taotoken.net/api, api_key: ${TAOTOKEN_API_KEY}, default_model: openrouter/elephant-alpha, options: { timeout: 60, max_retries: 2 } } }关键点base_url填 TaoToken 的地址api_key引用环境变量default_model填 OpenRouter 的模型名。三件套齐了Hermes 才知道去哪调、用什么身份调、调哪个模型。3.2 创建 Telegram Bot 并拿 Token打开 Telegram搜索BotFather发送/newbot。按提示输入机器人名称再输入一个以bot结尾的唯一用户名。创建成功后BotFather 会返回一串 Token格式类似123456789:AAHxxxxxxxxxxxxxxxx。这串就是TELEGRAM_BOT_TOKEN填进.env。接着拿你的 user_id。搜索userinfobot给它发任意消息它会返回你的数字 ID比如Id: 123456789。这个填进TELEGRAM_USER_ID。为什么要 user_id因为 Hermes 的 Gateway 通常需要知道允许哪些用户跟 Bot 对话填上你自己的 ID 就能限定只有你能触发。最后给你的 Bot 发送/start。这一步必须做否则 Bot 无法主动给你发消息后面验证时会收不到回复。3.3 Hermes Gateway 接入 Telegram执行hermes setup在菜单里进入Messaging Platforms (Gateway)勾选Telegram。按提示填入 Bot Token 和 user_id保存后 Hermes 会自动重启 Gateway 服务。配置完成后Hermes 的 Gateway 配置里应该能看到类似这样的段落[gateway.telegram] enabled true bot_token ${TELEGRAM_BOT_TOKEN} allowed_users [${TELEGRAM_USER_ID}]到这里三件套就齐了Base URL 是 TaoToken 的Key 是 TaoToken 的Model ID 是 OpenRouter 的模型名。Telegram 的 Token 和 user_id 也各就各位。下一节验证整条链路。4. 验证请求一条 curl 打通 Hermes 到 OpenRouter 再回 Telegram配置写完不代表通了得实际发一条请求看结果。分两步先用 curl 直接验证模型调用再通过 Telegram 验证消息闭环。4.1 curl 验证模型调用这条命令直接打 TaoToken 的统一入口确认 Key 和 Base URL 没问题curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: openrouter/elephant-alpha, messages: [ {role: user, content: 用一句话说明你是什么模型} ] }如果返回里能看到choices数组并且message.content有内容说明模型调用链路是通的。这一步过了Hermes 的模型配置基本没问题。4.2 通过 Hermes 转发验证在命令行执行hermes chat直接输入一句话比如「你好测试一下」。如果 Hermes 能返回模型回复说明 Hermes 到 TaoToken 的转发正常。4.3 Telegram 端到端验证给你的 Bot 发送hello。正常情况下Hermes 的 Gateway 收到消息转发到模型再把回复发回 Telegram。你会在聊天窗口看到机器人的回复。如果 Telegram 没反应但hermes chat正常问题多半在 Gateway 配置或 Bot Token 上。检查.env里的TELEGRAM_BOT_TOKEN是否完整allowed_users里的 user_id 是否和你实际 ID 一致以及是否给 Bot 发过/start。整条链路验证成功的标志Telegram 发消息 → Hermes 接收 → 调 TaoToken 入口 → 落到 OpenRouter 模型 → 回复回传 Telegram。四个环节缺一不可任何一环断了都会表现为「没回复」。5. 常见报错排查401、local proxy failed、reading choices、OAuth配置过程中最容易撞上的几类报错这里逐个对照。401 Unauthorized。最常见的原因是 Key 填错或没生效。检查.env里的TAOTOKEN_API_KEY是否完整复制有没有多余空格。如果 Hermes 配置里直接写了 Key 而不是引用环境变量确认没有把 OpenRouter 官方 Key 填进去。还有一种情况是环境变量没被加载重启终端或重新 source 一下.env。local proxy failed。这个报错通常出现在 Hermes 尝试连接 Base URL 时。先确认base_url填的是https://taotoken.net/api没有多余路径或参数。再检查本机网络是否能正常访问该地址可以用curl -I https://taotoken.net/api看返回状态。如果本机有额外的网络层配置确认没有拦截这个域名。reading choices 相关报错。这类报错一般是返回结构不符合预期常见于模型名写错。比如把openrouter/elephant-alpha写成了elephant-alpha或者模型名里有拼写错误。对照模型列表确认模型名注意大小写和斜杠。另外如果返回里没有choices字段可能是请求体格式不对检查messages数组是否规范。OAuth 相关报错。如果你在配置里看到了 OAuth 字样说明某处启用了 OAuth 流程但当前用的是 API Key 模式。检查 Hermes 配置里是否有auth_type oauth之类的字段改成 API Key 模式。Codex 的auth.json如果存在确认里面的认证方式与当前配置一致不要混用。Telegram 收不到消息。除了前面说的/start和 user_id还要检查 Bot Token 是否被撤销。如果多次泄露 TokenBotFather 那边可能已经失效重新生成一个填回去。另外Gateway 服务是否真的重启了可以看 Hermes 的日志输出。模型返回空内容。有时候请求成功但content为空可能是模型本身的问题换一个模型试试。也可能是max_tokens设得太小回复被截断。检查配置里有没有限制输出长度的字段。排查顺序建议先 curl 直连 TaoToken 确认 Key 和地址再hermes chat确认 Hermes 转发最后 Telegram 确认 Gateway。逐层缩小范围比一上来就改一堆配置高效得多。6. 把链路固定下来后续维护与扩展链路跑通之后日常维护其实很轻。模型想换就改default_modelKey 想轮换就更新.env里的TAOTOKEN_API_KEYBase URL 基本不用动。这就是统一入口的好处变化收敛到一处Hermes 和 Telegram 的配置保持稳定。如果你后面想加更多模型直接在模型列表里挑把模型名填进配置即可不用重新申请 Key 或改地址。想做更复杂的 Agent 或长期编码任务可以看看 Coding Plan 的方案把调用额度规划好。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API Keys 管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。配置过程中遇到报错先回到第 5 节对照排查多数问题都能定位到具体环节。最后留一个实用习惯把.env加入.gitignore别把 Key 提交到仓库。Telegram Bot Token 同理泄露了就去 BotFather 重新生成。链路稳定之后你可以在 Telegram 里随手跟自己的多模型机器人对话换模型只需要改一行配置。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑