Hermes 消息网关与 Skills:22 平台与可复用技能怎么配

热点手记 · Hermes Agent · hot.snaplinediary.cn · 估读约 3 分钟 · 2026-05-20

Hermes Agent · 估读约 3 分钟 · 2026-05-20

网关架构:一个进程,多种入口

Hermes 官方定位是「The agent that grows with you」,工程上体现为 单一 gateway 进程 路由各 IM 与 CLI 消息,记忆与技能在网关层复用,而不是每个 App 各存一份上下文。2026 年文档与 Release 显示支持渠道数量已到 20+(含 LINE、SimpleX 等新项,以你安装的版本为准),这对「手机记灵感、办公室 Slack 续写」的场景是刚需。

典型启动方式:

npm install -g @nous/hermes-gateway
    hermes gateway start
    hermes gateway status
    

对比实测:只开 CLI 时,跨设备体验接近普通终端 Agent;接上 Telegram 后,同一用户在手机发的语音转写应能在桌面 Slack 线程里被引用,这才是网关价值。若两端的回答像两个陌生人,优先查 Bot 是否连到同一 gateway 实例,而不是先换更大模型。

网关的数据目录默认在 ~/.hermes/,其中 memory.db 是 SQLite 记忆库,config.yaml 是主配置。启动前检查这两个路径的权限,确保运行用户有读写权。

平台接入优先级(省时间的顺序)

优先级 平台 适合验证的能力 配置注意
P0 Telegram 移动记录、推送、低摩擦 BotFather Token,勿提交到 Git
P1 Slack 办公协作、线程 OAuth 与 Event URL 需公网或隧道
P2 Discord 社区、技术群 意图与权限范围最小化
P3 CLI 开发调试、脚本 与 IDE 内 Copilot 互补,不替代

建议 先 Telegram 跑通记忆探针,再扩 Slack。一次性接入五个平台只会增加 Token 泄露面与排错难度。

Telegram 的具体配置:在 BotFather 创建 Bot 后,将 Token 写入环境变量 TELEGRAM_BOT_TOKEN。本地开发用 cloudflared 隧道暴露端口:

cloudflared tunnel --url http://localhost:3000
    

复制输出的 https URL,在 Hermes 配置里将 Telegram webhook 指向该地址。给 Bot 发 /start,确认有回复后再进行下一步。

Slack 的具体配置:在 Slack API 控制台创建 App,OAuth scope 至少包含 chat:write、app_mentions:read、im:history。安装到工作区后复制 Bot User OAuth Token,写入 SLACK_BOT_TOKEN。Event Subscriptions 里填写你的 gateway URL 加 /slack/events。如果 Event URL 验证失败,检查 cloudflared 隧道是否还在运行、路径是否正确。

Discord 的具体配置:在 Discord Developer Portal 创建 Application,添加 Bot,获取 Token。OAuth2 URL Generator 里选 bot scope 和 Send Messages、Read Message History 权限。将 Bot 邀请到服务器后,在 Hermes 配置里填入 Token 并启用 Discord adapter。

Skills:从社区装到「自己会写」

Hermes 的 Skills 与 agentskills.io 开放标准兼容:每个技能是可调用的能力包,例如论文摘要、代码审查模板。安装与调用模式:

hermes skills install research-paper-summarizer
    # 会话内
    /summarize https://arxiv.org/abs/xxxx
    

实测要点:

  • 安装后立刻用 一条边界清晰 的任务测试,避免「帮我变强」这类模糊指令。好的测试指令是:「总结这篇论文的方法、实验结果、局限,用中文输出,不超过 200 字。」
  • 技能失败时看 gateway 日志,区分「技能未加载」(日志里有 skill not found)与「模型拒答」(日志正常但回复为空)。
  • v2026.5 路线强调 Agent 可从经验中改进技能;生产环境仍应对自动改写技能保持人工审查,避免技能逻辑漂移。

社区库见 NousResearch/hermes-agent;企业场景更推荐 fork 后内网托管技能包,而不是直接拉公网最新版。直接拉取的风险在于:社区技能可能包含未审计的 shell 命令或网络请求。

自定义 Skill 的最小结构:

# ~/.hermes/skills/my-skill/skill.yaml
    name: my-skill
    version: 1.0.0
    description: "扫描代码仓库的 TODO 注释"
    entry: index.js
    
// ~/.hermes/skills/my-skill/index.js
    module.exports = async function(context, args) {
      const fs = require('fs');
      const files = fs.readdirSync(args.path || '.');
      return files.filter(f => f.endsWith('.js'))
        .map(f => ({file: f, todos: []}));
    };
    

将目录复制到 ~/.hermes/skills/ 后重启网关即可加载。

和 Claude Code、纯 MCP 客户端的分工

需求 更合适的选择
在仓库里多文件重构、跑测试 Claude Code / Cursor Agent
通勤语音记待办、多 IM 统一记忆 Hermes 网关
只连外部系统只读、在 IDE 里用 Cline + MCP

Hermes 不是「更强代码补全」,而是 生活与工作流的长期上下文总线。若团队 90% 时间在 VS Code 里,Hermes 仍可作为 Slack 里的项目秘书,但不必强行替代 IDE Agent。

安全与运维清单

  • 所有 Bot Token、Honcho Key 放环境变量或密钥管理,禁止写进 markdown 仓库。.env 文件要加入 .gitignore。
  • 网关进程建议用 systemd 或 Docker 托管,崩溃自动拉起。systemd 配置示例:
    [Service]
        Restart=always
        RestartSec=5
        
  • 定期备份网关 SQLite,升级前先看 Release Breaking Changes。备份命令:
    cp ~/.hermes/memory.db ~/.hermes/memory.db.$(date +%Y%m%d)
        
  • 对公网暴露的 Slack/Discord Webhook 加反向代理鉴权。最简单的做法是用 nginx 限制 IP:
    location /slack/events {
          allow 你的办公IP;
          deny all;
          proxy_pass http://localhost:3000;
        }
        

多平台 Token 治理

每接一个 IM 平台,就新增一组 Bot Token 与事件订阅。建议用表格记录:平台、Bot 名、权限范围、创建日、轮换日。Slack/Discord 的 OAuth scope 宁可少给,后续再加。权限过大的 Bot 被入侵后,攻击者可以读全部频道历史或冒充 Bot 发消息。

Token 泄露应急:一旦发现 Token 可能泄露,立即在对应平台刷新或撤销,然后更新网关环境变量并重启。不要等确认泄露再行动,因为 Bot Token 通常没有访问日志。

容量规划粗算

单网关进程能撑多少并发,取决于模型延迟与消息频率。个人使用通常无感;若在 500 人群里 @Bot,要考虑队列与限流。Hermes 网关本身不内置限流,需要在模型 API 层或反向代理层配置。比如 OpenAI 的 rate limit 是 TPM(tokens per minute),超出后返回 429,网关需要能优雅处理这种错误并提示用户「稍后重试」。

必要时按团队拆多个 gateway 实例并配置 Honcho peer 隔离,避免不同团队的记忆串库。

局限与不适合谁

如果你只需要网页里偶尔问问题、从不跨设备、也不打算接 IM,网关 + 多平台是过度工程。Skills 生态仍在快速变化,追求「装完 200 个技能就全自动」不现实,仍要人选任务、审输出。

Windows 原生支持在 2026.5 进入 beta,生产关键路径建议先在 Linux/macOS 验证。Windows 上的路径分隔符、权限模型与 Unix 不同,自定义 skill 开发时容易出现跨平台 bug。

渠道数量随版本变,部署前请核对当前版本的官方文档。最后,网关作为单点故障源,生产环境务必配置进程守护和健康检查,否则一次 OOM 就会让所有 IM 渠道同时失联。