🐝 Hermes 日报 — 2026-05-31
📦 版本状态
- 当前版本:Hermes Agent v0.15.1 (2026.5.29),153 commits behind(
hermes update即可升级) - 核心仓库:NousResearch/hermes-agent(134k+ stars)
- Skills Hub:85+ 内置技能 × 20 个分类
最近 7 天重要提交(按时间倒序)
| 作者 | 提交 | 说明 |
|---|---|---|
| tecknium | antigravity-cli 分类迁移 | 移至 autonomous-ai-agents 分类(它是 AI agent CLI) |
| tecknium | FTS5 合并 + optimize 命令 | hermes sessions optimize:合并分段,加速全文搜索 |
| kshitij | credential pools 文档 | 使用量 429 限速时立即轮换凭证 |
| tecknium | antigravity-cli 可选化 | 设为可选技能,收敛到 Hermes tools 接口 |
| tecknium | 新增 antigravity-cli | 新增 AI agent CLI 操作技能 |
| tecknium | grok 可选化 | xAI Grok Build CLI 集成技能,设为可选 |
| tecknium | 新增 grok skill | 新增 xAI Grok Build CLI 技能 |
| kshitij | gemini-3.5-flash | OpenRouter/Nous 模型列表中替换旧版 |
| ben | gateway 安全修复 | 适配器拥有的 access policy 优先于环境默认 deny |
| r266-tech | dead code 清理 | 清理 28 个未使用函数/类 |
🔥 热门 Issues
过去 7 天核心仓库爆发了 16+ 个热门 Issues,集中在 Codex 集成崩溃、cron 稳定性、Gateway 安全 三个方向。
P1: Cron ticker 线程静默停止,定时任务永远不触发
#32895 fix: cron ticker thread stops silently, jobs never fire 🆕 🏷️ P1 💬2 comments
- 当 cron 子进程异常退出或 IO 阻塞时,主循环的
ticker线程会静默终止 - 所有已注册的 cron job 都不会再触发——没人知道,没有告警
- 影响:错过了定时任务,尤其是日报、股市、定投等关键 cron
- 尚无修复,workaround:在 cron job 第一行写
touch /tmp/cron-heartbeat,用外部监控检查心跳文件是否定期刷新 - → https://github.com/NousResearch/hermes-agent/issues/32895
P2: Codex stream 多途径崩溃(5 个关联 issue)
| Issue | 问题 | 状态 |
|---|---|---|
| #32903 | openai-codex provider crashes: SDK parse_response 在 Codex 后端返回 null 时崩溃 | 🆕 💬1 |
| #32883 | Fix Codex stream None output recovery | 🆕 🏷️ P2 💬5 |
| #32892 | NoneType object is not iterable — Codex stream 返回 None 导致遍历失败 | 🆕 🏷️ P3 💬17 |
| #32894 | Codex Responses stream 因 terminal output null 而中断 | 🆕 🏷️ P3 💬1 |
| #11179 | Responses stream crashes when terminal response.output is null | 🐛 老 issue 🏷️ P2 💬40 |
- 核心问题:Codex 后端在某些场景下返回
None而不是空字符串,Hermes 的 Codex provider 和多处 agent 代码直接遍历/解析None - 社区已有 40+ 评论的长 thread(#11179),讨论最激烈的老 issue
- Workaround:避免在 Codex 后端执行返回 stdout 为空或 exit code 非零的命令;或切换 provider 规避
- → https://github.com/NousResearch/hermes-agent/issues/32883
P2: Gateway heartbeat 丢失,WebUI 跨容器存活检测失败
#32887 gateway: gateway_state.json heartbeat tick missing — WebUI cross-container liveness check fails for idle gateways 🆕 🏷️ P2 💬1
- 空闲 gateway 不写入心跳到
gateway_state.json,WebUI 的跨容器存活检查认为它已死 - 导致 WebUI 显示 gateway 一直离线,即使 agent 实际上还可以用
- → https://github.com/NousResearch/hermes-agent/issues/32887
P2: 持久化 Session 字段升级导致打开旧会话崩溃
#31977 v0.5.1 Desktop App: Session continuation error, api_key lost, duplicate replies 🏷️ P2 💬3
- Session 持久化结构升级后,旧会话尝试加载时
api_key字段缺失或格式不匹配 - 表现:重复回复、api_key 丢失、session 无法继续
- Workaround:删除损坏 session 数据重新开始
- → https://github.com/NousResearch/hermes-agent/issues/31977
值得关注的功能提议
| Issue | 提议 | 亮点 |
|---|---|---|
| #32906 | Per-board approval policy override | 每个 Kanban board 可独立设置 approvals.mode,灵活审批策略 |
| #32905 | Record SOUL version per kanban run | 记录每个 kanban run 执行时的 SOUL 版本,便于溯源 |
| #32899 | Per-subscription toolset override | Webhook 订阅可指定工具集覆盖,精细控制事件处理 |
持续关注的老 Issue
#7484 [Security] Session fixation via predictable session ID derivation 🏷️ P2 💬1
- 安全 issue,session ID 可预测,可能被劫持
- → https://github.com/NousResearch/hermes-agent/issues/7484
#9077 [vision_analyze] Cannot read local images or URL images 🏷️ P2 💬5
- vision_analyze 工具读取本地/URL 图片时始终返回
"no image"(P2 bug) - → https://github.com/NousResearch/hermes-agent/issues/9077
🆕 生态新增
本周 awesome-hermes-agent 没有新增更新(上次更新 5月16日)。值得关注的生态项目动态:
热门生态项目看板
| 项目 | Stars | 说明 | 活跃度 |
|---|---|---|---|
| hermes-agent (NousResearch) | 134k+ | 核心仓库,持续活跃 | 🟢 每日更新 |
| gbrain (garrytan/gbrain) | — | Garry Tan 的个人风格化 Hermes Agent 配置 | 🟡 每日更新 |
| hermes-desktop (fathah/hermes-desktop) | — | macOS 原生桌面客户端 | 🟡 每日更新 |
| hermes-webui (nesquena/hermes-webui) | — | 网页端 Dashboard + 手机使用 | 🟢 最后更新今日 |
| NemoClaw (NVIDIA) | — | NVIDIA 安全运行 Hermes/OpenClaw 代理环境 | 🟢 每日更新 |
| hermes-workspace (outsourc-e) | — | 原生 Web 工作台(聊天/终端/内存/技能全集成) | 🟢 成熟 |
| cc-switch (farion1231/cc-switch) | — | 跨平台桌面 All-in-One 代理切换器 | 🟢 每日更新 |
| hermes-agent-orange-book (alchaincyf) | — | 中文《Hermes Agent 橙皮书》从入门到精通 | 📘 中文资源 |
值得关注的新增项目
NemoClaw (NVIDIA/NemoClaw) — 3月创建,持续活跃更新至昨日。允许用户以更安全的方式在 NVIDIA OpenShell 中运行 Hermes、OpenClaw 等 agent,并附带管理的推理服务。大厂下场做 Hermes 生态基础设施,值得关注。
💬 Reddit 热议
Reddit 本次采集失败(API/RSS 均不可达),跳过此渠道。但有价值的社区讨论仍可通过搜索获取:
- 「Hermes Agent v0.15.0 - The Velocity Release」 — v0.15 版本讨论,Kanban 平台 104 PR 的大版本
- 「Lessons learned building a controlled Hermes Agent workflow」 — 构建受控 Hermes 工作流的经验分享
- 「One month with Hermes Agent — what I wish I knew earlier」 — 新用户一个月的经验总结(每日新闻/股票更新/截图处理)
- 「Subscription 60M tokens/week overkill?」 — 关于 token 消耗的讨论
🔧 玩机技巧:Cron Job 心跳检测
本周爆出的 cron ticker 静默停止 bug(#32895)让 cron 稳定性成为关注焦点。如果你依赖定时任务,可以用这个简单的心跳方案:
心跳文件法
在每个 cron job 的脚本第一行加入:
#!/bin/bash
touch /tmp/cron-heartbeat-$(date +%Y-%m-%d)
# 下面才是真正的任务逻辑
然后在另一个 cron job(每 30 分钟运行)中检查:
#!/bin/bash
# Cron 健康检查
TODAY=$(date +%Y-%m-%d)
HEARTBEAT_FILE="/tmp/cron-heartbeat-${TODAY}"
if [ ! -f "$HEARTBEAT_FILE" ]; then
echo "[ALERT] 今日尚无 cron job 执行,可能 ticker 已停止"
# 可以发飞书/邮件告警
fi
# 检查心跳文件是否在 2 小时内更新过
if [ -f "$HEARTBEAT_FILE" ]; then
AGE=$(( $(date +%s) - $(stat -f %m "$HEARTBEAT_FILE") ))
if [ $AGE -gt 7200 ]; then
echo "[ALERT] 最近 cron job 已停止运行超过 2 小时"
fi
fi
使用 Hermes cron 的自检能力
# 列出所有已注册 job 看是否还在运行
hermes cron list
# 查看 cron 后台进程是否存活
ps aux | grep hermes | grep cron
修复方向
社区正在讨论的方案:
- Watchdog 线程:ticker 循环中加入健康心跳写盘逻辑
- Cron log 审计:每次 job 触发写入轻量级日志,外部工具轮询
- 进程 supervisor:s6-overlay 或 systemd timer 兜底