)
1. 国内办公场景下 Hermes Agent 双平台接入的真实痛点Hermes Agent 是一个可以跑在自己服务器上的智能体网关它能把你常用的聊天平台和背后的大模型连起来让飞书、企业微信里直接出现一个能对话、能执行任务的机器人。适合谁适合那些团队已经在用飞书或企业微信办公、又希望把 AI 能力塞进现有工作流、但不想把数据交给第三方 SaaS 的国内用户。核心检索词就是 Hermes Agent 接入飞书、企业微信配置以及 WebSocket 长连接模式。我见过太多人卡在同一个地方公司服务器在内网没有公网 IP也不想为了一个机器人去折腾内网穿透。传统回调模式要求平台能访问到你的 HTTP 地址于是要么买公网服务器要么配反向代理门槛一下就上来了。Hermes Agent 的解法是走 WebSocket 长连接——由你的服务器主动连出去平台不需要反向访问你所以局域网、家庭宽带、云主机都能跑通。但飞书和企业微信的配置入口、凭证名称、事件订阅方式都不一样。飞书叫 App ID / App Secret企业微信叫 Bot ID / Bot Secret飞书在「事件与回调」里选长连接企业微信在智能机器人里选 API 模式。很多人配完一个平台就以为另一个照抄就行结果事件订阅没开、权限没发、配对没做消息发出去石沉大海。这篇就按真实操作顺序把两个平台的凭证、权限、WebSocket 参数、验证动作全部拆开。每一步都给可复制的命令和配置片段配完一个平台立刻做消息回环测试确认通了再配下一个。全程不需要公网 IP也不需要改路由器。另外提一句模型侧的统一入口。Hermes 本身是网关背后要接大模型 API。国内用户如果每个平台、每个实例都单独管一套 Key很快就会乱。我习惯用 TaoToken 做统一 Key 管理一个 Key 覆盖多个模型Hermes 的模型配置里填一次 Base URL 和 Key 就行后面换模型只改 Model ID。这样飞书和企业微信两个机器人共用同一套模型凭证排障时也少一个变量。2. TaoToken 前置准备与 Hermes Gateway 环境确认在动飞书和企业微信之前先把 Hermes 本体和模型通道确认好。否则平台配完了机器人回你一句「模型不可用」你还得回头查两层。先确认 Hermes 已安装并能正常运行。登录你的服务器执行版本检查hermes --version hermes gateway status如果gateway status显示服务未安装先跑一次初始化。Hermes 的网关是以服务形式常驻的飞书和企业微信的长连接都挂在它下面。hermes gateway setup这一步先不急着选平台向导里可以跳过平台配置只把网关服务装好。装完后hermes gateway status应该能看到 gateway 处于 running 状态。接下来是模型通道。Hermes 需要一个大模型 API 来生成回复这里用 TaoToken 的统一 Key。打开控制台创建 API Key模型对话入口https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite创建完 Key 后在 Hermes 的模型配置里填入。Hermes 的配置文件通常在~/.hermes/config.toml模型段大概长这样[model] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model_id claude-sonnet-4-20250514注意 Base URL 用https://taotoken.net/api不要带多余路径。Model ID 按你实际要用的模型填文档里有完整列表。填完保存跑一次模型连通性测试hermes model test返回正常补全结果说明模型通道通了。这一步很关键因为后面飞书和企业微信的消息最终都要经过这条通道。如果这里就报 401先解决 Key 问题别往下走。环境确认清单检查项命令期望结果Hermes 版本hermes --version正常输出版本号网关服务hermes gateway statusrunning模型通道hermes model test返回补全内容配置目录ls ~/.hermes/存在 config.toml四项都过了再进平台配置。我踩过的坑就是跳过模型测试直接配飞书结果机器人上线后一直不回消息查了半天日志才发现是模型 Key 填错了。3. 飞书自建应用与 WebSocket 长连接可复制配置飞书接入分创建应用、加机器人能力、配权限、拿凭证、配 Gateway、订阅事件、发布、配对八步。整体 15 到 20 分钟。第 1 步打开飞书开放平台用企业管理员账号登录创建「企业自建应用」填名称比如 Hermes AI 助手。第 2 步进应用详情添加应用能力选「机器人」务必勾选「开启交互式卡片」否则后续按钮交互触发不了。第 3 步权限管理里批量添加以下权限im:message im:message.send_as_bot im:message.read im:message.group_at_msg im:message.p2p_msg contact:user.id:readonly im:resource加完点「发布权限变更」立即生效。第 4 步凭证与基础信息页复制 App IDcli_开头和 App Secret。第 5 步服务器上跑 Gateway 配置hermes gateway setup按提示选 Feishu输入 App ID、App SecretDomain 保持默认 feishuConnection mode 选 WebSocket配置群聊和私聊权限确认安装服务。第 6 步飞书开放平台「事件与回调」里订阅方式选「长连接」添加事件im.message.receive_v1。这一步和 WebSocket 模式配套不需要填回调 URL。第 7 步版本管理与发布里创建版本并发布。第 8 步在飞书里搜机器人名称发一条消息命令行会提示配对命令hermes pairing approve 用户ID运行后再次发消息测试。飞书侧的配置片段如果你用配置文件方式而不是向导~/.hermes/config.toml里对应段落[platforms.feishu] app_id cli_xxxxxxxxxx app_secret 你的AppSecret domain feishu connection_mode websocket enable_group true enable_p2p true三件套对照Base URL 是模型侧的https://taotoken.net/apiKey 是 TaoToken 的sk-密钥Model ID 是你在模型段填的那个。飞书侧的三件套则是 App ID、App Secret、事件订阅im.message.receive_v1别混。验证连接状态hermes gateway status看到 Feishu 为 connected 就通了。再做一次回环测试私聊发「你好」机器人应回复群里 机器人 发消息也应触发。回调签名校验在长连接模式下由 SDK 内部处理你不需要手动验签但可以在日志里确认事件被正确解析hermes logs --platform feishu4. 企业微信智能机器人与双平台并行验证企业微信走智能机器人的 API 模式同样支持 WebSocket 长连接无公网 IP 也能跑。第 1 步登录企业微信管理后台进「管理工具」→「智能机器人」创建机器人填名称描述选「API 模式」。第 2 步创建后拿到 Bot IDww开头和 Bot Secret保存好。第 3 步服务器上再跑一次 Gateway 配置hermes gateway setup选 WeCom输入 Bot ID、Bot Secret配置允许使用的用户确认安装服务。配置文件方式对应段落[platforms.wecom] bot_id wwxxxxxxxx bot_secret 你的BotSecret connection_mode websocket allowed_users [user1, user2]第 4 步企业微信里找到机器人发消息测试。验证命令hermes gateway statusWeCom 显示 connected 即通。双平台同时接入时Hermes 支持多平台并行。向导里可以依次配飞书、企业微信所有平台消息汇总到同一个 Hermes 对话。查看全部连接hermes platforms输出类似Connected platforms: - Feishu: Online - WeCom: Online逐项验证动作建议按这个顺序先私聊回环再群聊 触发最后看日志确认事件解析。飞书群聊 触发依赖im:message.group_at_msg权限企业微信群聊则要确认机器人已加入对应群。回调签名校验在长连接下由平台 SDK 处理你只需确认日志里没有签名错误。双平台并行时模型侧共用同一套 TaoToken 凭证所以两个机器人的回复风格、可用模型一致。如果想让飞书用 A 模型、企业微信用 B 模型可以在平台段单独覆盖 model_id但一般没必要统一更省心。5. 接入过程常见报错逐项排查配双平台最容易遇到的几类报错逐个对照。401 未授权模型侧报 401说明 TaoToken Key 无效或过期。检查~/.hermes/config.toml里 api_key 是否完整重新在控制台生成一个 Key 替换。平台侧报 401飞书查 App Secret 是否复制完整企业微信查 Bot Secret。local proxy failed这个报错通常出现在网关尝试连平台 WebSocket 时。先确认服务器能正常出网再确认 Connection mode 确实选了 websocket 而不是 webhook。如果之前配过 webhook 模式改回 websocket 后要重启网关hermes gateway restartreading choices 报错这是模型返回格式解析失败多半是 Model ID 填错或 Base URL 多了路径。确认 base_url 是https://taotoken.net/apimodel_id 与文档一致。换一个模型 ID 再试。OAuth 相关报错飞书事件订阅如果误选了 webhook 模式会要求 OAuth 回调长连接模式不需要。回到「事件与回调」把订阅方式改成「长连接」。配对失败首次使用必须配对。给机器人发任意消息命令行会显示hermes pairing approve user_id复制运行。如果没显示检查hermes gateway status是否 connected以及日志里有没有收到消息事件。企业微信机器人不响应确认 Bot ID 和 Secret 正确hermes config show | grep wecom核对确认机器人已加入正确群聊重启网关。飞书消息无回应hermes gateway status确认运行飞书开放平台「事件与回调」确认长连接状态为绿色hermes config show | grep feishu核对凭证hermes logs --platform feishu看日志。排错时记住三件套对照模型侧 Base URL Key Model ID平台侧凭证 连接模式 事件订阅。哪一层报错就查哪一层别混着改。6. 统一 Key 管理与后续接入入口双平台跑通后日常维护其实很轻。模型侧用 TaoToken 统一 Key飞书和企业微信共用一套凭证换模型只改 Model ID不用动平台配置。平台侧凭证建议单独存一份别写进代码库。长期跑编码类或 Agent 类任务的话可以看下 Coding Plan额度更划算Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite需要验证模型回复质量、对比不同模型效果时直接用模型对话页测模型对话https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite接入过程中卡在凭证或报错先翻接入文档大部分 401、连接模式、事件订阅问题都有说明接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteKey 管理和新建都在控制台API Keyshttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite如果你用 Claude Code 做开发想把它和 Hermes 的模型通道对齐可以看 Claude Code 接入说明Claude Code 接入https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewrite最后给一个实用技巧双平台都配好后跑一次hermes usage --days 7看用量确认两个平台的调用都计入了同一套 Key。如果发现某个平台用量为 0说明它的消息没走到模型层回去查该平台的连接状态和事件订阅。这个检查比逐个发消息测试更快定位问题。