Skip to content
Zero Click Daily
Go back

🐝 Hermes 日报 — 2026-05-13

🐝 Hermes 日报 — 2026-05-13

📊 版本状态


🔄 更新摘要(精简版)

统计:418 个文件变更,+59,378 / -4,982 行

🚀 新功能(亮点密集)

🐛 Bug 修复

🔧 改进优化


🌐 社区动态与深度玩法

⚠️ 注:今日 Reddit/博客渠道因网络限制无法访问,以下内容主要来自 GitHub Issues/PRs 深度挖掘。


1. 🎯 LSP 语义诊断:写代码时实时报错

来源:GitHub PR · #24168

这是 v0.14 最重磅的功能。Hermes 的 write_filepatch 现在会在写完代码后自动运行语言服务器的诊断——不再是简单的语法检查,而是真正的类型错误、未定义变量、缺失导入等语义级别诊断。

为什么重要:以前 Hermes 写代码只能靠模型自己判断对错,经常出现变量名拼错、import 缺失等问题要到运行时才发现。现在支持 26 种语言:Python(pyright)、Go(gopls)、Rust(rust-analyzer)、TypeScript(typescript-language-server)、C/C++(clangd)、Bash、Vue、Svelte、PHP、Lua、Dockerfile、Terraform、Dart、Haskell、Julia、Clojure、Nix、Zig、Gleam、Elixir、Prisma、Kotlin、Java 等。

实操价值:Hermes 在写代码时会先记录已有错误基线,编辑后只展示新引入的诊断,不会淹没在已有问题中。如果你日常用 Hermes 写 Python/TS/Rust,这个功能能拦截大量低级错误。


2. 💬 Clarify 工具在 gateway 上终于能用了

来源:GitHub PR · #24199

之前 gateway 模式(Telegram/Discord 等)下 agent 调用 clarify 工具会直接失败,返回 “not available in this execution context”。原因是 gateway/run.py 从未把 clarify_callback 传给 AIAgent

修复后:Telegram 上 clarify 以行内键盘按钮呈现,用户可以直接点击选项回答 agent 的反问,不需要手动打字。

实操价值:如果你在 Telegram 上用 Hermes 做复杂任务(比如写代码时 agent 想问”用 SQLAlchemy 还是 raw SQL?”),现在终于能收到提问并一键回答了。这大大提升了 gateway 模式的交互体验。


3. 🔍 session_search 的隐患:你的历史对话可能搜不到

来源:GitHub Issue · #24680

一个容易被忽视但影响深远的问题:session_search 实际上只搜索 LLM 生成的会话摘要,而不是原始对话文本。

两个失效场景

  1. 当前活跃会话不可搜索——Telegram 会话在关闭前不会被索引,意味着你正在进行的对话搜不到。
  2. 摘要超时的会话永久丢失——很多会话显示 [Raw preview — summarization unavailable],LLM 摘要器超时或跳过后,该会话对 session_search 来说就不存在。

实操建议:如果你依赖 session_search 做跨会话记忆回溯,目前阶段不要完全信任它的召回率。重要的信息建议用 memory 工具显式存储,或用 Obsidian 手动记录关键结论。


4. 💰 DeepSeek 用户的省钱机会:Prompt Caching 还未开启

来源:GitHub Issue · #24617

DeepSeek V4 Pro 在 OpenCode Go 上的定价已经显示缓存支持(cache read $0.01/M tokens),但 Hermes 从未对 DeepSeek 模型发送 cache_control 标记。

现状prompt_caching 只对 Anthropic/Qwen 模型生效。DeepSeek 用户每次请求都在重复发送完整的 system prompt 和工具定义,白白浪费 token。

实操价值:如果你用 DeepSeek + OpenCode Go 做高频任务(比如 cron job),关注这个 issue。一旦修复,system prompt 的重复成本能省下一大截。目前可以手动在 issue 下 +1 加速优先级。


5. 🖥️ 本地模型用户注意:上下文窗口检测有 Bug

来源:GitHub Issue · #24640

用户用 oMLX v0.3.8 在本地网络托管 MiniMax-M2.7-4bit-mxfp4 时,Hermes 错误地将上下文窗口检测为 256K(实际只有 120K),导致 API 调用返回 400 错误。

背景:这和 #5089、#8620、#10213 可能同源——Hermes 对 custom provider 的 context_length 自动检测不够鲁棒。

实操建议:如果你用本地模型(llama.cpp、oMLX、MLX 等),建议在 config.yaml 中显式设置 model.context_length 而不是依赖自动检测。示例:

model:
  default: your-local-model
  provider: custom
  context_length: 131072  # 显式指定

6. 🎛️ 平台通用交互按钮:7 条评论的长期需求

来源:GitHub Issue · #15311

这是社区讨论最热烈的 feature request 之一(7 条评论),请求添加平台无关的交互按钮 API。目前 Telegram 内联键盘只用于内置流程(模型选择、命令审批),但 agent 生成的消息或定时任务无法添加按钮。

讨论亮点:Slack 用户提出审批按钮(Allow/Deny)比打字回复更直观。这个需求和刚合并的 clarify 按钮 PR(#24199)有直接关联——底层机制已经在搭建。

实操价值:如果你做自动化工作流,想象一下:cron job 执行完毕后发送一条带「查看详情」「重新执行」「忽略」按钮的消息——这个需求正在路上。


🛠️ 玩机技巧:Cron 高级用法

本周主题:Cron Job 的正确创建和调试流程

Hermes 的 cron 系统可以做定时任务,但创建之后的调试常被忽视。以下是完整流程:

创建定时任务

# 每 30 分钟执行一次
hermes cron create 30m

# 每天上午 9 点(Cron 表达式)
hermes cron create "0 9 * * *"

# 每隔 2 小时
hermes cron create "every 2h"

查看和调试

# 列出所有任务(含 --all 显示禁用的)
hermes cron list --all

# 查看任务状态
hermes cron status

常见失败排查

# 1. 检查输出文件:最新文件以 "(No response generated)" 结尾 = agent 崩溃
ls -lt ~/.hermes/cron/output/<job_id>/

# 2. 检查 agent 日志
grep "cron_<job_id>" ~/.hermes/logs/agent.log | tail -20

# 3. 常见原因:主模型失败 → fallback 模型有兼容性问题
#    解决:修改 config.yaml 中的 fallback_providers,或给 cron 指定模型
hermes cron edit <job_id>  # 修改任务配置

# 4. 修复后手动触发
hermes cron run <job_id>

Cron 输出目录结构

~/.hermes/cron/output/<job_id>/
├── 20260513_090000.md     # 正常输出
├── 20260513_093000.md     # (No response generated) ← 失败
└── ...

关键提示:如果 cron job 持续失败,先检查 fallback_providers 链中的模型兼容性。比如 DeepSeek 的 thinking mode 需要 reasoning_content 来回传,如果 fallback 链中混入了不兼容的模型就会 400。


📝 完整报告已保存至 Obsidian:Skyebee/Hermes Daily/2026-05-13.md


Share this post on:

Previous Post
🐝 Hermes 日报 — 2026-05-14
Next Post
🐝 Hermes 日报 — 2026-05-12