# Hermes Agent v0.2.0 (v2026.3.12)
**发布日期:** 2026年3月12日
> 自 v0.1.0(初始预发布基础版本)以来的首个标记版本。在短短两周多的时间里,Hermes Agent 从一个内部小项目发展成为一个功能齐全的 AI 代理平台——这得益于社区贡献的爆发。本版本合并了 **216 个拉取请求**,来自 **63 位贡献者**,解决了 **119 个问题**。
---
## ✨ 主要亮点
- **多平台消息网关** — 支持 Telegram、Discord、Slack、WhatsApp、Signal、Email (IMAP/SMTP) 和 Home Assistant 平台,具备统一的会话管理、媒体附件和按平台工具配置功能。
- **MCP (模型上下文协议) 客户端** — 原生 MCP 支持,采用 stdio 和 HTTP 传输方式,具备重连、资源/提示发现以及采样(服务器发起的 LLM 请求)功能。([#291](https://github.com/NousResearch/hermes-agent/pull/291) — @0xbyt4, [#301](https://github.com/NousResearch/hermes-agent/pull/301), [#753](https://github.com/NousResearch/hermes-agent/pull/753))
- **技能生态系统** — 涵盖 15 多个类别的 70 多个内置及可选技能,配备技能中心用于社区发现、按平台启用/禁用、基于工具可用性的条件激活以及先决条件验证。([#743](https://github.com/NousResearch/hermes-agent/pull/743) — @teyrebaz33, [#785](https://github.com/NousResearch/hermes-agent/pull/785) — @teyrebaz33)
- **集中式提供商路由器** — 统一的 `call_llm()`/`async_call_llm()` API 取代了此前分散在视觉、摘要、压缩和轨迹保存等模块中的提供商逻辑。所有辅助消费者均通过单一代码路径路由,并自动解析凭证。([#1003](https://github.com/NousResearch/hermes-agent/pull/1003))
- **ACP 服务器** — 通过代理通信协议标准实现 VS Code、Zed 和 JetBrains 编辑器集成。([#949](https://github.com/NousResearch/hermes-agent/pull/949))
- **CLI 皮肤/主题引擎** — 数据驱动的视觉自定义:横幅、旋转指示器、颜色、品牌标识。内置 7 款皮肤 + 自定义 YAML 皮肤。
- **Git 工作树隔离** — `hermes -w` 在 git 工作树中启动隔离的代理会话,以安全地并行处理同一仓库。([#654](https://github.com/NousResearch/hermes-agent/pull/654))
- **文件系统检查点与回滚** — 在破坏性操作前自动创建快照,可通过 `/rollback` 恢复。([#824](https://github.com/NousResearch/hermes-agent/pull/824))
- **3,289 个测试** — 从几乎零测试覆盖率发展为涵盖代理、网关、工具、定时任务和 CLI 的全面测试套件。
---
## 🏗️ 核心代理与架构
### 提供商与模型支持
- 集中式提供商路由器,含 `resolve_provider_client()` + `call_llm()` API ([#1003](https://github.com/NousResearch/hermes-agent/pull/1003))
- Nous Portal 作为设置中的一级提供商 ([#644](https://github.com/NousResearch/hermes-agent/issues/644))
- OpenAI Codex (Responses API) 支持 ChatGPT 订阅 ([#43](https://github.com/NousResearch/hermes-agent/pull/43)) — @grp06
- Codex OAuth 视觉支持 + 多模态内容适配器
- 根据实时 API 验证 `/model`,而非使用硬编码列表
- 支持自托管 Firecrawl ([#460](https://github.com/NousResearch/hermes-agent/pull/460)) — @caentzminger
- 支持 Kimi Code API ([#635](https://github.com/NousResearch/hermes-agent/pull/635)) — @christomitov
- MiniMax 模型 ID 更新 ([#473](https://github.com/NousResearch/hermes-agent/pull/473)) — @tars90percent
- OpenRouter 提供商路由配置 (provider_preferences)
- Nous 在 401 错误时自动刷新凭证 ([#571](https://github.com/NousResearch/hermes-agent/pull/571), [#269](https://github.com/NousResearch/hermes-agent/pull/269)) — @rewbs
- z.ai/GLM、Kimi/Moonshot、MiniMax、Azure OpenAI 作为一级提供商
- 将 `/model` 和 `/provider` 统一为单一视图
### 代理循环与对话
- 用于提供商弹性的简单后备模型 ([#740](https://github.com/NousResearch/hermes-agent/pull/740))
- 在父代理与子代理委托间共享迭代预算
- 通过工具结果注入实现迭代预算压力
- 可配置的子代理提供商/模型,支持完整凭证解析
- 通过压缩而非中止处理 413 载荷过大错误 ([#153](https://github.com/NousResearch/hermes-agent/pull/153)) — @tekelala
- 压缩后重建载荷重试 ([#616](https://github.com/NousResearch/hermes-agent/pull/616)) — @tripledoublev
- 自动压缩病态的大型网关会话 ([#628](https://github.com/NousResearch/hermes-agent/issues/628))
- 工具调用修复中间件 — 自动小写转换及无效工具处理器
- 推理努力配置与 `/reasoning` 命令 ([#921](https://github.com/NousResearch/hermes-agent/pull/921))
- 在上下文压缩后检测并阻止文件重读/搜索循环 ([#705](https://github.com/NousResearch/hermes-agent/pull/705)) — @0xbyt4
### 会话与记忆
- 会话命名:唯一标题、自动世系、丰富列表、按名称恢复 ([#720](https://github.com/NousResearch/hermes-agent/pull/720))
- 支持搜索过滤的交互式会话浏览器 ([#733](https://github.com/NousResearch/hermes-agent/pull/733))
- 恢复会话时显示先前消息 ([#734](https://github.com/NousResearch/hermes-agent/pull/734))
- Honcho AI 原生跨会话用户建模 ([#38](https://github.com/NousResearch/hermes-agent/pull/38)) — @erosika
- 会话过期时主动异步刷新记忆
- 智能上下文长度探测,支持持久缓存与横幅显示
- 网关中用于切换到命名会话的 `/resume` 命令
- 消息平台会话重置策略
---
## 📱 消息平台 (网关)
### Telegram
- 原生文件附件:send_document + send_video
- 文档文件处理:支持 PDF、文本及 Office 文件 — @tekelala
- 论坛主题会话隔离 ([#766](https://github.com/NousResearch/hermes-agent/pull/766)) — @spanishflu-est1918
- 通过 MEDIA: 协议共享浏览器截图 ([#657](https://github.com/NousResearch/hermes-agent/pull/657))
- 支持“附近查找”技能的位置信息
- TTS 语音消息累积修复 ([#176](https://github.com/NousResearch/hermes-agent/pull/176)) — @Bartok9
- 改进错误处理与日志记录 ([#763](https://github.com/NousResearch/hermes-agent/pull/763)) — @aydnOktay
- 斜体正则换行符修复 + 43 项格式测试 ([#204](https://github.com/NousResearch/hermes-agent/pull/204)) — @0xbyt4
### Discord
- 频道主题纳入会话上下文 ([#248](https://github.com/NousResearch/hermes-agent/pull/248)) — @Bartok9
- DISCORD_ALLOW_BOTS 配置用于过滤机器人消息 ([#758](https://github.com/NousResearch/hermes-agent/pull/758))
- 支持文档与视频 ([#784](https://github.com/NousResearch/hermes-agent/pull/784))
- 改进错误处理与日志记录 ([#761](https://github.com/NousResearch/hermes-agent/pull/761)) — @aydnOktay
### Slack
- App_mention 404 修复 + 文档/视频支持 ([#784](https://github.com/NousResearch/hermes-agent/pull/784))
- 结构化日志替代 print 语句 — @aydnOktay
### WhatsApp
- 原生媒体发送 — 图片、视频、文档 ([#292](https://github.com/NousResearch/hermes-agent/pull/292)) — @satelerd
- 多用户会话隔离 ([#75](https://github.com/NousResearch/hermes-agent/pull/75)) — @satelerd
- 跨平台端口清理,替代仅限 Linux 的 fuser ([#433](https://github.com/NousResearch/hermes-agent/pull/433)) — @Farukest
- DM 中断键不匹配修复 ([#350](https://github.com/NousResearch/hermes-agent/pull/350)) — @Farukest
### Signal
- 通过 signal-cli-rest-api 实现完整 Signal 消息网关 ([#405](https://github.com/NousResearch/hermes-agent/issues/405))
- 消息事件中支持媒体 URL ([#871](https://github.com/NousResearch/hermes-agent/pull/871))
### Email (IMAP/SMTP)
- 新增邮件网关平台 — @0xbyt4
### Home Assistant
- REST 工具 + WebSocket 网关集成 ([#184](https://github.com/NousResearch/hermes-agent/pull/184)) — @0xbyt4
- 服务发现与增强设置
- 工具集映射修复 ([#538](https://github.com/NousResearch/hermes-agent/pull/538)) — @Himess
### 网关核心
- 向用户暴露子代理工具调用与思考过程 ([#186](https://github.com/NousResearch/hermes-agent/pull/186)) — @cutepawss
- 可配置的后台进程监视器通知 ([#840](https://github.com/NousResearch/hermes-agent/pull/840))
- `edit_message()` 支持 Telegram/Discord/Slack 并具备回退机制
- `/compress`、`/usage`、`/update` 斜杠命令
- 消除网关会话中 3 倍 SQLite 消息重复 ([#873](https://github.com/NousResearch/hermes-agent/pull/873))
- 跨网关回合稳定系统提示以提升缓存命中率 ([#754](https://github.com/NousResearch/hermes-agent/pull/754))
- 网关退出时关闭 MCP 服务器 ([#796](https://github.com/NousResearch/hermes-agent/pull/796)) — @0xbyt4
- 传递 session_db 至 AIAgent,修复 session_search 错误 ([#108](https://github.com/NousResearch/hermes-agent/pull/108)) — @Bartok9
- 在 /retry、/undo 中持久化记录变更;修复 /reset 属性 ([#217](https://github.com/NousResearch/hermes-agent/pull/217)) — @Farukest
- UTF-8 编码修复,防止 Windows 崩溃 ([#369](https://github.com/NousResearch/hermes-agent/pull/369)) — @ch3ronsa
---
## 🖥️ CLI 与用户体验
### 交互式 CLI
- 数据驱动的皮肤/主题引擎 — 7 款内置皮肤 (default, ares, mono, slate, poseidon, sisyphus, charizard) + 自定义 YAML 皮肤
- `/personality` 命令支持自定义人格与禁用功能 ([#773](https://github.com/NousResearch/hermes-agent/pull/773)) — @teyrebaz33
- 用户定义快速命令,绕过代理循环 ([#746](https://github.com/NousResearch/hermes-agent/pull/746)) — @teyrebaz33
- `/reasoning` 命令用于设置努力级别与显示切换 ([#921](https://github.com/NousResearch/hermes-agent/pull/921))
- `/verbose` 斜杠命令用于运行时切换调试模式 ([#94](https://github.com/NousResearch/hermes-agent/pull/94)) — @cesareth
- `/insights` 命令 — 使用分析、成本估算与活动模式 ([#552](https://github.com/NousResearch/hermes-agent/pull/552))
- `/background` 命令用于管理后台进程
- `/help` 格式化,按类别分组命令
- 完成时响铃 — 代理完成后终端响铃 ([#738](https://github.com/NousResearch/hermes-agent/pull/738))
- 上/下箭头历史导航
- 剪贴板图片粘贴 (Alt+V / Ctrl+V)
- 缓慢斜杠命令的加载指示器 ([#882](https://github.com/NousResearch/hermes-agent/pull/882))
- 在 patch_stdout 下修复旋转指示器闪烁 ([#91](https://github.com/NousResearch/hermes-agent/pull/91)) — @0xbyt4
- `--quiet/-Q` 标志用于编程式单次查询模式
- `--fuck-it-ship-it` 标志用于绕过所有确认提示 ([#724](https://github.com/NousResearch/hermes-agent/pull/724)) — @dmahan93
- 工具摘要标志 ([#767](https://github.com/NousResearch/hermes-agent/pull/767)) — @luisv-1
- 修复 SSH 上的终端闪烁 ([#284](https://github.com/NousResearch/hermes-agent/pull/284)) — @ygd58
- 多行粘贴检测修复 ([#84](https://github.com/NousResearch/hermes-agent/pull/84)) — @0xbyt4
### 设置与配置
- 模块化设置向导,支持章节子命令与工具优先的用户体验
- 容器资源配置提示
- 所需二进制文件的后端验证
- 配置迁移系统 (当前为 v7)
- API 密钥正确路由至 .env 而非 config.yaml ([#469](https://github.com/NousResearch/hermes-agent/pull/469)) — @ygd58
- 原子写入 .env 防止崩溃时 API 密钥丢失 ([#954](https://github.com/NousResearch/hermes-agent/pull/954))
- `hermes tools` — 使用 curses UI 按平台启用/禁用工具
- `hermes doctor` 用于检查所有已配置提供商的健康状况
- `hermes update` 支持网关服务自动重启
- CLI 横幅中显示更新可用通知
- 多个命名自定义提供商
- Shell 配置检测改进,优化 PATH 设置 ([#317](https://github.com/NousResearch/hermes-agent/pull/317)) — @mehmetkr-31
- 统一的 HERMES_HOME 与 .env 路径解析 ([#51](https://github.com/NousResearch/hermes-agent/pull/51), [#48](https://github.com/NousResearch/hermes-agent/pull/48)) — @deankerr
- Docker 后端在 macOS 上的修复 + 子代理 Nous Portal 认证 ([#46](https://github.com/NousResearch/hermes-agent/pull/46)) — @rsavitt
---
## 🔧 工具系统
### MCP (模型上下文协议)
- 原生 MCP 客户端,支持 stdio + HTTP 传输 ([#291](https://github.com/NousResearch/hermes-agent/pull/291) — @0xbyt4, [#301](https://github.com/NousResearch/hermes-agent/pull/301))
- 采样支持 — 服务器发起的 LLM 请求 ([#753](https://github.com/NousResearch/hermes-agent/pull/753))
- 资源与提示发现
- 自动重连与安全强化
- 横幅集成,`/reload-mcp` 命令
- `hermes tools` UI 集成
### 浏览器
- 本地浏览器后端 — 零成本无头 Chromium (无需 Browserbase)
- 控制台/错误工具、带注释截图、自动录制、自用 QA 技能 ([#745](https://github.com/NousResearch/hermes-agent/pull/745))
- 通过 MEDIA: 在所有消息平台共享截图 ([#657](https://github.com/NousResearch/hermes-agent/pull/657))
### 终端与执行
- `execute_code` 沙箱,含 json_parse、shell_quote、重试辅助函数
- Docker:自定义卷挂载 ([#158](https://github.com/NousResearch/hermes-agent/pull/158)) — @Indelwin
- Daytona 云沙箱后端 ([#451](https://github.com/NousResearch/hermes-agent/pull/451)) — @rovle
- SSH 后端修复 ([#59](https://github.com/NousResearch/hermes-agent/pull/59)) — @deankerr
- Shell 噪音过滤与登录 shell 执行以保证环境一致性
- 针对 execute_code stdout 溢出的头部+尾部截断
- 可配置的后台进程通知模式
### 文件操作
- 文件系统检查点与 `/rollback` 命令 ([#824](https://github.com/NousResearch/hermes-agent/pull/824))
- 结构化工具结果提示(后续操作指导)用于 patch 和 search_files ([#722](https://github.com/NousResearch/hermes-agent/issues/722))
- Docker 卷传递至沙箱容器配置 ([#687](https://github.com/NousResearch/hermes-agent/pull/687)) — @manuelschipper
---
## 🧩 技能生态系统
### 技能系统
- 按平台启用/禁用技能 ([#743](https://github.com/NousResearch/hermes-agent/pull/743)) — @teyrebaz33
- 基于工具可用性的条件技能激活 ([#785](https://github.com/NousResearch/hermes-agent/pull/785)) — @teyrebaz33
- 技能先决条件 — 隐藏依赖项未满足的技能 ([#659](https://github.com/NousResearch/hermes-agent/pull/659)) — @kshitijk4poor
- 可选技能 — 内置但默认未激活
- `hermes skills browse` — 分页中心浏览
- 技能子类别组织
- 平台条件性技能加载
- 原子技能文件写入 ([#551](https://github.com/NousResearch/hermes-agent/pull/551)) — @aydnOktay
- 防止技能同步数据丢失 ([#563](https://github.com/NousResearch/hermes-agent/pull/563)) — @0xbyt4
- 动态技能斜杠命令,支持 CLI 与网关
### 新技能 (精选)
- **ASCII 艺术** — pyfiglet (571 种字体)、cowsay、图像转 ASCII ([#209](https://github.com/NousResearch/hermes-agent/pull/209)) — @0xbyt4
- **ASCII 视频** — 完整制作流程 ([#854](https://github.com/NousResearch/hermes-agent/pull/854)) — @SHL0MS
- **DuckDuckGo 搜索** — Firecrawl 回退 ([#267](https://github.com/NousResearch/hermes-agent/pull/267)) — @gamedevCloudy;DDGS API 扩展 ([#598](https://github.com/NousResearch/hermes-agent/pull/598)) — @areu01or00
- **Solana 区块链** — 钱包余额、USD 定价、代币名称 ([#212](https://github.com/NousResearch/hermes-agent/pull/212)) — @gizdusum
- **AgentMail** — 代理拥有的邮箱收件箱 ([#330](https://github.com/NousResearch/hermes-agent/pull/330)) — @teyrebaz33
- **Polymarket** — 预测市场数据(只读)([#629](https://github.com/NousResearch/hermes-agent/pull/629))
- **OpenClaw 迁移** — 官方迁移工具 ([#570](https://github.com/NousResearch/hermes-agent/pull/570)) — @unmodeled-tyler
- **域名情报** — 被动侦察:子域名、SSL、WHOIS、DNS ([#136](https://github.com/NousResearch/hermes-agent/pull/136)) — @FurkanL0
- **超能力** — 软件开发技能 ([#137](https://github.com/NousResearch/hermes-agent/pull/137)) — @kaos35
- **Hermes-Atropos** — RL 环境开发技能 ([#815](https://github.com/NousResearch/hermes-agent/pull/815))
- 以及:arXiv 搜索、OCR/文档、Excalidraw 图表、YouTube 字幕、GIF 搜索、宝可梦玩家、Minecraft 模组包服务器、OpenHue (Philips Hue)、Google Workspace、Notion、PowerPoint、Obsidian、附近查找、40+ MLOps 技能
---
## 🔒 安全与可靠性
### 安全强化
- skill_view 中的路径遍历修复 — 防止读取任意文件 ([#220](https://github.com/NousResearch/hermes-agent/issues/220)) — @Farukest
- sudo 密码管道中的 shell 注入防护 ([#65](https://github.com/NousResearch/hermes-agent/pull/65)) — @leonsgithub
- 危险命令检测:多行绕过修复 ([#233](https://github.com/NousResearch/hermes-agent/pull/233)) — @Farukest;tee/进程替换模式 ([#280](https://github.com/NousResearch/hermes-agent/pull/280)) — @dogiladeveloper
- skills_guard 中的符号链接边界检查修复 ([#386](https://github.com/NousResearch/hermes-agent/pull/386)) — @Farukest
- macOS 上写入拒绝列表中的符号链接绕过修复 ([#61](https://github.com/NousResearch/hermes-agent/pull/61)) — @0xbyt4
- 多词提示注入绕过防护 ([#192](https://github.com/NousResearch/hermes-agent/pull/192)) — @0xbyt4
- 定时任务提示注入扫描器绕过修复 ([#63](https://github.com/NousResearch/hermes-agent/pull/63)) — @0xbyt4
- 对敏感文件强制执行 0600/0700 文件权限 ([#757](https://github.com/NousResearch/hermes-agent/pull/757))
- .env 文件权限限制为仅所有者 ([#529](https://github.com/NousResearch/hermes-agent/pull/529)) — @Himess
- `--force` 标志正确阻止覆盖危险判定 ([#388](https://github.com/NousResearch/hermes-agent/pull/388)) — @Farukest
- FTS5 查询清理 + 数据库连接泄漏修复 ([#565](https://github.com/NousResearch/hermes-agent/pull/565)) — @0xbyt4
- 扩展密钥脱敏模式 + 配置开关以禁用
- 内存中永久允许列表以防止数据泄漏 ([#600](https://github.com/NousResearch/hermes-agent/pull/600)) — @alireza78a
### 原子写入 (防数据丢失)
- sessions.json ([#611](https://github.com/NousResearch/hermes-agent/pull/611)) — @alireza78a
- 定时任务 ([#146](https://github.com/NousResearch/hermes-agent/pull/146)) — @alireza78a
- .env 配置 ([#954](https://github.com/NousResearch/hermes-agent/pull/954))
- 进程检查点 ([#298](https://github.com/NousResearch/hermes-agent/pull/298)) — @aydnOktay
- 批量运行器 ([#297](https://github.com/NousResearch/hermes-agent/pull/297)) — @aydnOktay
- 技能文件 ([#551](https://github.com/NousResearch/hermes-agent/pull/551)) — @aydnOktay
### 可靠性
- 为 systemd/无头环境防护所有 print() 的 OSError ([#963](https://github.com/NousResearch/hermes-agent/pull/963))
- 在 run_conversation 开始时重置所有重试计数器 ([#607](https://github.com/NousResearch/hermes-agent/pull/607)) — @0xbyt4
- 审批回调超时时返回 deny 而非 None ([#603](https://github.com/NousResearch/hermes-agent/pull/603)) — @0xbyt4
- 修复整个代码库中 None 消息内容导致的崩溃 ([#277](https://github.com/NousResearch/hermes-agent/pull/277))
- 修复本地 LLM 后端的上下文溢出崩溃 ([#403](https://github.com/NousResearch/hermes-agent/pull/403)) — @ch3ronsa
- 防止 `_flush_sentinel` 泄漏至外部 API ([#227](https://github.com/NousResearch/hermes-agent/pull/227)) — @Farukest
- 防止调用方中的 conversation_history 变异 ([#229](https://github.com/NousResearch/hermes-agent/pull/229)) — @Farukest
- 修复 systemd 重启循环 ([#614](https://github.com/NousResearch/hermes-agent/pull/614)) — @voidborne-d
- 关闭文件句柄与套接字以防止 fd 泄漏 ([#568](https://github.com/NousResearch/hermes-agent/pull/568) — @alireza78a, [#296](https://github.com/NousResearch/hermes-agent/pull/296) — @alireza78a, [#709](https://github.com/NousResearch/hermes-agent/pull/709) — @memosr)
- 防止剪贴板 PNG 转换中的数据丢失 ([#602](https://github.com/NousResearch/hermes-agent/pull/602)) — @0xbyt4
- 消除终端输出中的 shell 噪音 ([#293](https://github.com/NousResearch/hermes-agent/pull/293)) — @0xbyt4
- 为 prompt、cron 和 execute_code 提供时区感知的 now() ([#309](https://github.com/NousResearch/hermes-agent/pull/309)) — @areu01or00
### Windows 兼容性
- 防护仅限 POSIX 的进程函数 ([#219](https://github.com/NousResearch/hermes-agent/pull/219)) — @Farukest
- 通过 Git Bash + ZIP 更新回退实现 Windows 原生支持
- 用于 PTY 支持的 pywinpty ([#457](https://github.com/NousResearch/hermes-agent/pull/457)) — @shitcoinsherpa
- 所有配置/数据文件 I/O 显式使用 UTF-8 编码 ([#458](https://github.com/NousResearch/hermes-agent/pull/458)) — @shitcoinsherpa
- Windows 兼容路径处理 ([#354](https://github.com/NousResearch/hermes-agent/pull/354), [#390](https://github.com/NousResearch/hermes-agent/pull/390)) — @Farukest
- 针对盘符路径的正则表达式搜索输出解析 ([#533](https://github.com/NousResearch/hermes-agent/pull/533)) — @Himess
- Windows 的认证存储文件锁 ([#455](https://github.com/NousResearch/hermes-agent/pull/455)) — @shitcoinsherpa
---
## 🐛 值得注意的错误修复
- 修复 DeepSeek V3 工具调用解析器静默丢弃多行 JSON 参数 ([#444](https://github.com/NousResearch/hermes-agent/pull/444)) — @PercyDikec
- 修复网关记录因偏移不匹配每轮丢失 1 条消息 ([#395](https://github.com/NousResearch/hermes-agent/pull/395)) — @PercyDikec
- 修复 /retry 命令静默丢弃代理最终响应 ([#441](https://github.com/NousResearch/hermes-agent/pull/441)) — @PercyDikec
- 修复最大迭代重试在思考块剥离后返回空字符串 ([#438](https://github.com/NousResearch/hermes-agent/pull/438)) — @PercyDikec
- 修复最大迭代重试使用硬编码 max_tokens ([#436](https://github.com/NousResearch/hermes-agent/pull/436)) — @Farukest
- 修复 Codex 状态字典键不匹配 ([#448](https://github.com/NousResearch/hermes-agent/pull/448)) 与可见性过滤器 ([#446](https://github.com/NousResearch/hermes-agent/pull/446)) — @PercyDikec
- 从最终用户可见响应中剥离 `<think>` 块 ([#174](https://github.com/NousResearch/hermes-agent/pull/174)) — @Bartok9
- 修复 `<think>` 块正则表达式在模型字面讨论标签时剥离可见内容 ([#786](https://github.com/NousResearch/hermes-agent/issues/786))
- 修复 Mistral 因助手消息中残留 finish_reason 导致 422 错误 ([#253](https://github.com/NousResearch/hermes-agent/pull/253)) — @Sertug17
- 修复 OPENROUTER_API_KEY 在所有代码路径中的解析顺序 ([#295](https://github.com/NousResearch/hermes-agent/pull/295)) — @0xbyt4
- 修复 OPENAI_BASE_URL API 密钥优先级 ([#420](https://github.com/NousResearch/hermes-agent/pull/420)) — @manuelschipper
- 修复 Anthropic "提示过长" 400 错误未检测为上下文长度错误 ([#813](https://github.com/NousResearch/hermes-agent/issues/813))
- 修复 SQLite 会话记录累积重复消息 — 3-4 倍 token 膨胀 ([#860](https://github.com/NousResearch/hermes-agent/issues/860))
- 修复设置向导首次安装时跳过 API 密钥提示 ([#748](https://github.com/NousResearch/hermes-agent/pull/748))
- 修复设置向导为 Nous Portal 显示 OpenRouter 模型列表 ([#575](https://github.com/NousResearch/hermes-agent/pull/575)) — @PercyDikec
- 修复通过 hermes model 切换时提供商选择不持久 ([#881](https://github.com/NousResearch/hermes-agent/pull/881))
- 修复 Docker 后端在 macOS 上 docker 不在 PATH 时失败 ([#889](https://github.com/NousResearch/hermes-agent/pull/889))
- 修复 ClawHub 技能中心适配器以适应 API 端点变更 ([#286](https://github.com/NousResearch/hermes-agent/pull/286)) — @BP602
- 修复 Honcho 在存在 API 密钥时自动启用 ([#243](https://github.com/NousResearch/hermes-agent/pull/243)) — @Bartok9
- 修复 Python 3.11+ 上重复 'skills' 子解析器崩溃 ([#898](https://github.com/NousResearch/hermes-agent/issues/898))
- 修复内存工具条目在内容包含章节符号时的解析 ([#162](https://github.com/NousResearch/hermes-agent/pull/162)) — @aydnOktay
- 修复 pip 安装在交互式提示失败时静默中止 ([#72](https://github.com/NousResearch/hermes-agent/pull/72)) — @cutepawss
- 修复递归删除检测中的误报 ([#68](https://github.com/NousResearch/hermes-agent/pull/68)) — @cutepawss
- 修复整个代码库的 Ruff lint 警告 ([#608](https://github.com/NousResearch/hermes-agent/pull/608)) — @JackTheGit
- 修复 Anthropic 原生基础 URL 快速失败 ([#173](https://github.com/NousResearch/hermes-agent/pull/173)) — @adavyas
- 修复 install.sh 在移动 Node.js 目录前创建 ~/.hermes ([#53](https://github.com/NousResearch/hermes-agent/pull/53)) — @JoshuaMart
- 修复 Ctrl+C 时 atexit 清理过程中的 SystemExit 回溯 ([#55](https://github.com/NousResearch/hermes-agent/pull/55)) — @bierlingm
- 恢复缺失的 MIT 许可证文件 ([#620](https://github.com/NousResearch/hermes-agent/pull/620)) — @stablegenius49
---
## 🧪 测试
- **3,289 个测试** 涵盖代理、网关、工具、定时任务和 CLI
- 使用 pytest-xdist 并行化测试套件 ([#802](https://github.com/NousResearch/hermes-agent/pull/802)) — @OutThisLife
- 单元测试第一批次:8 个核心模块 ([#60](https://github.com/NousResearch/hermes-agent/pull/60)) — @0xbyt4
- 单元测试第二批次:另外 8 个模块 ([#62](https://github.com/NousResearch/hermes-agent/pull/62)) — @0xbyt4
- 单元测试第三批次:8 个未测试模块 ([#191](https://github.com/NousResearch/hermes-agent/pull/191)) — @0xbyt4
- 单元测试第四批次:5 个安全/逻辑关键模块 ([#193](https://github.com/NousResearch/hermes-agent/pull/193)) — @0xbyt4
- AIAgent (run_agent.py) 单元测试 ([#67](https://github.com/NousResearch/hermes-agent/pull/67)) — @0xbyt4
- 轨迹压缩器测试 ([#203](https://github.com/NousResearch/hermes-agent/pull/203)) — @0xbyt4
- 澄清工具测试 ([#121](https://github.com/NousResearch/hermes-agent/pull/121)) — @Bartok9
- Telegram 格式测试 — 43 项斜体/粗体/代码渲染测试 ([#204](https://github.com/NousResearch/hermes-agent/pull/204)) — @0xbyt4
- 视觉工具类型提示 + 42 项测试 ([#792](https://github.com/NousResearch/hermes-agent/pull/792))
- 压缩器工具调用边界回归测试 ([#648](https://github.com/NousResearch/hermes-agent/pull/648)) — @intertwine
- 测试结构重组 ([#34](https://github.com/NousResearch/hermes-agent/pull/34)) — @0xbyt4
- 消除 shell 噪音 + 修复 36 项测试失败 ([#293](https://github.com/NousResearch/hermes-agent/pull/293)) — @0xbyt4
---
## 🔬 RL 与评估环境
- WebResearchEnv — 多步骤网络研究 RL 环境 ([#434](https://github.com/NousResearch/hermes-agent/pull/434)) — @jackx707
- Modal 沙箱并发限制以避免死锁 ([#621](https://github.com/NousResearch/hermes-agent/pull/621)) — @voteblake
- 捆绑的 Hermes-atropos-environments 技能 ([#815](https://github.com/NousResearch/hermes-agent/pull/815))
- 评估用本地 vLLM 实例支持 — @dmahan93
- YC-Bench 长视野代理基准环境
- OpenThoughts-TBLite 评估环境与脚本
---
## 📚 文档
- 完整文档网站 (Docusaurus),含 37+ 页面
- 全面的平台设置指南:Telegram、Discord、Slack、WhatsApp、Signal、Email
- AGENTS.md — AI 编码助手开发指南
- CONTRIBUTING.md ([#117](https://github.com/NousResearch/hermes-agent/pull/117)) — @Bartok9
- 斜杠命令参考 ([#142](https://github.com/NousResearch/hermes-agent/pull/142)) — @Bartok9
- 全面 AGENTS.md 准确性审计 ([#732](https://github.com/NousResearch/hermes-agent/pull/732))
- 皮肤/主题系统文档
- MCP 文档与示例
- 文档准确性审计 — 35+ 处修正
- 文档拼写修复 ([#825](https://github.com/NousResearch/hermes-agent/pull/825), [#439](https://github.com/NousResearch/hermes-agent/pull/439)) — @JackTheGit
- CLI 配置优先级与术语标准化 ([#166](https://github.com/NousResearch/hermes-agent/pull/166), [#167](https://github.com/NousResearch/hermes-agent/pull/167), [#168](https://github.com/NousResearch/hermes-agent/pull/168)) — @Jr-kenny
- Telegram 令牌正则表达式文档 ([#713](https://github.com/NousResearch/hermes-agent/pull/713)) — @VolodymyrBg
---
## 👥 贡献者
感谢使本版本成为可能的 63 位贡献者!在短短两周多的时间里,Hermes Agent 社区携手交付了海量工作成果。
### 核心
- **@teknium1** — 43 个 PR:项目负责人、核心架构、提供商路由器、会话、技能、CLI、文档
### 顶级社区贡献者
- **@0xbyt4** — 40 个 PR:MCP 客户端、Home Assistant、安全修复(符号链接、提示注入、定时任务)、 extensive test coverage (6 batches)、ascii-art 技能、shell 噪音消除、技能同步、Telegram 格式化等数十项贡献
- **@Farukest** — 16 个 PR:安全强化(路径遍历、危险命令检测、符号链接边界)、Windows 兼容性(POSIX 防护、路径处理)、WhatsApp 修复、最大迭代重试、网关修复
- **@aydnOktay** — 11 个 PR:原子写入(进程检查点、批量运行器、技能文件)、跨 Telegram、Discord、代码执行、转录、TTS 和技能的错误处理改进
- **@Bartok9** — 9 个 PR:CONTRIBUTING.md、斜杠命令参考、Discord 频道主题、思考块剥离、TTS 修复、Honcho 修复、会话计数修复、clarify 测试
- **@PercyDikec** — 7 个 PR:DeepSeek V3 解析器修复、/retry 响应丢弃、网关记录偏移、Codex 状态/可见性、最大迭代重试、设置向导修复
- **@teyrebaz33** — 5 个 PR:技能启用/禁用系统、快速命令、人格自定义、条件技能激活
- **@alireza78a** — 5 个 PR:原子写入(定时任务、会话)、fd 泄漏防护、安全允许列表、代码执行套接字清理
- **@shitcoinsherpa** — 3 个 PR:Windows 支持 (pywinpty、UTF-8 编码、认证存储锁)
- **@Himess** — 3 个 PR:Cron/HomeAssistant/Daytona 修复、Windows 盘符解析、.env 权限
- **@satelerd** — 2 个 PR:WhatsApp 原生媒体、多用户会话隔离
- **@rovle** — 1 个 PR:Daytona 云沙箱后端 (4 次提交)
- **@erosika** — 1 个 PR:Honcho AI 原生记忆集成
- **@dmahan93** — 1 个 PR:--fuck-it-ship-it 标志 + RL 环境工作
- **@SHL0MS** — 1 个 PR:ASCII 视频技能
### 所有贡献者
@0xbyt4, @BP602, @Bartok9, @Farukest, @FurkanL0, @Himess, @Indelwin, @JackTheGit, @JoshuaMart, @Jr-kenny, @OutThisLife, @PercyDikec, @SHL0MS, @Sertug17, @VencentSoliman, @VolodymyrBg, @adavyas, @alireza78a, @areu01or00, @aydnOktay, @batuhankocyigit, @bierlingm, @caentzminger, @cesareth, @ch3ronsa, @christomitov, @cutepawss, @deankerr, @dmahan93, @dogiladeveloper, @dragonkhoi, @erosika, @gamedevCloudy, @gizdusum, @grp06, @intertwine, @jackx707, @jdblackstar, @johnh4098, @kaos35, @kshitijk4poor, @leonsgithub, @luisv-1, @manuelschipper, @mehmetkr-31, @memosr, @PeterFile, @rewbs, @rovle, @rsavitt, @satelerd, @spanishflu-est1918, @stablegenius49, @tars90percent, @tekelala, @teknium1, @teyrebaz33, @tripledoublev, @unmodeled-tyler, @voidborne-d, @voteblake, @ygd58
---
**完整更新日志**:[v0.1.0...v2026.3.12](https://github.com/NousResearch/hermes-agent/compare/v0.1.0...v2026.3.12)
# Hermes Agent v0.2.0 (v2026.3.12)
**Release Date:** March 12, 2026
> First tagged release since v0.1.0 (the initial pre-public foundation). In just over two weeks, Hermes Agent went from a small internal project to a full-featured AI agent platform — thanks to an explosion of community contributions. This release covers **216 merged pull requests** from **63 contributors**, resolving **119 issues**.
---
## ✨ Highlights
- **Multi-Platform Messaging Gateway** — Telegram, Discord, Slack, WhatsApp, Signal, Email (IMAP/SMTP), and Home Assistant platforms with unified session management, media attachments, and per-platform tool configuration.
- **MCP (Model Context Protocol) Client** — Native MCP support with stdio and HTTP transports, reconnection, resource/prompt discovery, and sampling (server-initiated LLM requests). ([#291](https://github.com/NousResearch/hermes-agent/pull/291) — @0xbyt4, [#301](https://github.com/NousResearch/hermes-agent/pull/301), [#753](https://github.com/NousResearch/hermes-agent/pull/753))
- **Skills Ecosystem** — 70+ bundled and optional skills across 15+ categories with a Skills Hub for community discovery, per-platform enable/disable, conditional activation based on tool availability, and prerequisite validation. ([#743](https://github.com/NousResearch/hermes-agent/pull/743) — @teyrebaz33, [#785](https://github.com/NousResearch/hermes-agent/pull/785) — @teyrebaz33)
- **Centralized Provider Router** — Unified `call_llm()`/`async_call_llm()` API replaces scattered provider logic across vision, summarization, compression, and trajectory saving. All auxiliary consumers route through a single code path with automatic credential resolution. ([#1003](https://github.com/NousResearch/hermes-agent/pull/1003))
- **ACP Server** — VS Code, Zed, and JetBrains editor integration via the Agent Communication Protocol standard. ([#949](https://github.com/NousResearch/hermes-agent/pull/949))
- **CLI Skin/Theme Engine** — Data-driven visual customization: banners, spinners, colors, branding. 7 built-in skins + custom YAML skins.
- **Git Worktree Isolation** — `hermes -w` launches isolated agent sessions in git worktrees for safe parallel work on the same repo. ([#654](https://github.com/NousResearch/hermes-agent/pull/654))
- **Filesystem Checkpoints & Rollback** — Automatic snapshots before destructive operations with `/rollback` to restore. ([#824](https://github.com/NousResearch/hermes-agent/pull/824))
- **3,289 Tests** — From near-zero test coverage to a comprehensive test suite covering agent, gateway, tools, cron, and CLI.
---
## 🏗️ Core Agent & Architecture
### Provider & Model Support
- Centralized provider router with `resolve_provider_client()` + `call_llm()` API ([#1003](https://github.com/NousResearch/hermes-agent/pull/1003))
- Nous Portal as first-class provider in setup ([#644](https://github.com/NousResearch/hermes-agent/issues/644))
- OpenAI Codex (Responses API) with ChatGPT subscription support ([#43](https://github.com/NousResearch/hermes-agent/pull/43)) — @grp06
- Codex OAuth vision support + multimodal content adapter
- Validate `/model` against live API instead of hardcoded lists
- Self-hosted Firecrawl support ([#460](https://github.com/NousResearch/hermes-agent/pull/460)) — @caentzminger
- Kimi Code API support ([#635](https://github.com/NousResearch/hermes-agent/pull/635)) — @christomitov
- MiniMax model ID update ([#473](https://github.com/NousResearch/hermes-agent/pull/473)) — @tars90percent
- OpenRouter provider routing configuration (provider_preferences)
- Nous credential refresh on 401 errors ([#571](https://github.com/NousResearch/hermes-agent/pull/571), [#269](https://github.com/NousResearch/hermes-agent/pull/269)) — @rewbs
- z.ai/GLM, Kimi/Moonshot, MiniMax, Azure OpenAI as first-class providers
- Unified `/model` and `/provider` into single view
### Agent Loop & Conversation
- Simple fallback model for provider resilience ([#740](https://github.com/NousResearch/hermes-agent/pull/740))
- Shared iteration budget across parent + subagent delegation
- Iteration budget pressure via tool result injection
- Configurable subagent provider/model with full credential resolution
- Handle 413 payload-too-large via compression instead of aborting ([#153](https://github.com/NousResearch/hermes-agent/pull/153)) — @tekelala
- Retry with rebuilt payload after compression ([#616](https://github.com/NousResearch/hermes-agent/pull/616)) — @tripledoublev
- Auto-compress pathologically large gateway sessions ([#628](https://github.com/NousResearch/hermes-agent/issues/628))
- Tool call repair middleware — auto-lowercase and invalid tool handler
- Reasoning effort configuration and `/reasoning` command ([#921](https://github.com/NousResearch/hermes-agent/pull/921))
- Detect and block file re-read/search loops after context compression ([#705](https://github.com/NousResearch/hermes-agent/pull/705)) — @0xbyt4
### Session & Memory
- Session naming with unique titles, auto-lineage, rich listing, and resume by name ([#720](https://github.com/NousResearch/hermes-agent/pull/720))
- Interactive session browser with search filtering ([#733](https://github.com/NousResearch/hermes-agent/pull/733))
- Display previous messages when resuming a session ([#734](https://github.com/NousResearch/hermes-agent/pull/734))
- Honcho AI-native cross-session user modeling ([#38](https://github.com/NousResearch/hermes-agent/pull/38)) — @erosika
- Proactive async memory flush on session expiry
- Smart context length probing with persistent caching + banner display
- `/resume` command for switching to named sessions in gateway
- Session reset policy for messaging platforms
---
## 📱 Messaging Platforms (Gateway)
### Telegram
- Native file attachments: send_document + send_video
- Document file processing for PDF, text, and Office files — @tekelala
- Forum topic session isolation ([#766](https://github.com/NousResearch/hermes-agent/pull/766)) — @spanishflu-est1918
- Browser screenshot sharing via MEDIA: protocol ([#657](https://github.com/NousResearch/hermes-agent/pull/657))
- Location support for find-nearby skill
- TTS voice message accumulation fix ([#176](https://github.com/NousResearch/hermes-agent/pull/176)) — @Bartok9
- Improved error handling and logging ([#763](https://github.com/NousResearch/hermes-agent/pull/763)) — @aydnOktay
- Italic regex newline fix + 43 format tests ([#204](https://github.com/NousResearch/hermes-agent/pull/204)) — @0xbyt4
### Discord
- Channel topic included in session context ([#248](https://github.com/NousResearch/hermes-agent/pull/248)) — @Bartok9
- DISCORD_ALLOW_BOTS config for bot message filtering ([#758](https://github.com/NousResearch/hermes-agent/pull/758))
- Document and video support ([#784](https://github.com/NousResearch/hermes-agent/pull/784))
- Improved error handling and logging ([#761](https://github.com/NousResearch/hermes-agent/pull/761)) — @aydnOktay
### Slack
- App_mention 404 fix + document/video support ([#784](https://github.com/NousResearch/hermes-agent/pull/784))
- Structured logging replacing print statements — @aydnOktay
### WhatsApp
- Native media sending — images, videos, documents ([#292](https://github.com/NousResearch/hermes-agent/pull/292)) — @satelerd
- Multi-user session isolation ([#75](https://github.com/NousResearch/hermes-agent/pull/75)) — @satelerd
- Cross-platform port cleanup replacing Linux-only fuser ([#433](https://github.com/NousResearch/hermes-agent/pull/433)) — @Farukest
- DM interrupt key mismatch fix ([#350](https://github.com/NousResearch/hermes-agent/pull/350)) — @Farukest
### Signal
- Full Signal messenger gateway via signal-cli-rest-api ([#405](https://github.com/NousResearch/hermes-agent/issues/405))
- Media URL support in message events ([#871](https://github.com/NousResearch/hermes-agent/pull/871))
### Email (IMAP/SMTP)
- New email gateway platform — @0xbyt4
### Home Assistant
- REST tools + WebSocket gateway integration ([#184](https://github.com/NousResearch/hermes-agent/pull/184)) — @0xbyt4
- Service discovery and enhanced setup
- Toolset mapping fix ([#538](https://github.com/NousResearch/hermes-agent/pull/538)) — @Himess
### Gateway Core
- Expose subagent tool calls and thinking to users ([#186](https://github.com/NousResearch/hermes-agent/pull/186)) — @cutepawss
- Configurable background process watcher notifications ([#840](https://github.com/NousResearch/hermes-agent/pull/840))
- `edit_message()` for Telegram/Discord/Slack with fallback
- `/compress`, `/usage`, `/update` slash commands
- Eliminated 3x SQLite message duplication in gateway sessions ([#873](https://github.com/NousResearch/hermes-agent/pull/873))
- Stabilize system prompt across gateway turns for cache hits ([#754](https://github.com/NousResearch/hermes-agent/pull/754))
- MCP server shutdown on gateway exit ([#796](https://github.com/NousResearch/hermes-agent/pull/796)) — @0xbyt4
- Pass session_db to AIAgent, fixing session_search error ([#108](https://github.com/NousResearch/hermes-agent/pull/108)) — @Bartok9
- Persist transcript changes in /retry, /undo; fix /reset attribute ([#217](https://github.com/NousResearch/hermes-agent/pull/217)) — @Farukest
- UTF-8 encoding fix preventing Windows crashes ([#369](https://github.com/NousResearch/hermes-agent/pull/369)) — @ch3ronsa
---
## 🖥️ CLI & User Experience
### Interactive CLI
- Data-driven skin/theme engine — 7 built-in skins (default, ares, mono, slate, poseidon, sisyphus, charizard) + custom YAML skins
- `/personality` command with custom personality + disable support ([#773](https://github.com/NousResearch/hermes-agent/pull/773)) — @teyrebaz33
- User-defined quick commands that bypass the agent loop ([#746](https://github.com/NousResearch/hermes-agent/pull/746)) — @teyrebaz33
- `/reasoning` command for effort level and display toggle ([#921](https://github.com/NousResearch/hermes-agent/pull/921))
- `/verbose` slash command to toggle debug at runtime ([#94](https://github.com/NousResearch/hermes-agent/pull/94)) — @cesareth
- `/insights` command — usage analytics, cost estimation & activity patterns ([#552](https://github.com/NousResearch/hermes-agent/pull/552))
- `/background` command for managing background processes
- `/help` formatting with command categories
- Bell-on-complete — terminal bell when agent finishes ([#738](https://github.com/NousResearch/hermes-agent/pull/738))
- Up/down arrow history navigation
- Clipboard image paste (Alt+V / Ctrl+V)
- Loading indicators for slow slash commands ([#882](https://github.com/NousResearch/hermes-agent/pull/882))
- Spinner flickering fix under patch_stdout ([#91](https://github.com/NousResearch/hermes-agent/pull/91)) — @0xbyt4
- `--quiet/-Q` flag for programmatic single-query mode
- `--fuck-it-ship-it` flag to bypass all approval prompts ([#724](https://github.com/NousResearch/hermes-agent/pull/724)) — @dmahan93
- Tools summary flag ([#767](https://github.com/NousResearch/hermes-agent/pull/767)) — @luisv-1
- Terminal blinking fix on SSH ([#284](https://github.com/NousResearch/hermes-agent/pull/284)) — @ygd58
- Multi-line paste detection fix ([#84](https://github.com/NousResearch/hermes-agent/pull/84)) — @0xbyt4
### Setup & Configuration
- Modular setup wizard with section subcommands and tool-first UX
- Container resource configuration prompts
- Backend validation for required binaries
- Config migration system (currently v7)
- API keys properly routed to .env instead of config.yaml ([#469](https://github.com/NousResearch/hermes-agent/pull/469)) — @ygd58
- Atomic write for .env to prevent API key loss on crash ([#954](https://github.com/NousResearch/hermes-agent/pull/954))
- `hermes tools` — per-platform tool enable/disable with curses UI
- `hermes doctor` for health checks across all configured providers
- `hermes update` with auto-restart for gateway service
- Show update-available notice in CLI banner
- Multiple named custom providers
- Shell config detection improvement for PATH setup ([#317](https://github.com/NousResearch/hermes-agent/pull/317)) — @mehmetkr-31
- Consistent HERMES_HOME and .env path resolution ([#51](https://github.com/NousResearch/hermes-agent/pull/51), [#48](https://github.com/NousResearch/hermes-agent/pull/48)) — @deankerr
- Docker backend fix on macOS + subagent auth for Nous Portal ([#46](https://github.com/NousResearch/hermes-agent/pull/46)) — @rsavitt
---
## 🔧 Tool System
### MCP (Model Context Protocol)
- Native MCP client with stdio + HTTP transports ([#291](https://github.com/NousResearch/hermes-agent/pull/291) — @0xbyt4, [#301](https://github.com/NousResearch/hermes-agent/pull/301))
- Sampling support — server-initiated LLM requests ([#753](https://github.com/NousResearch/hermes-agent/pull/753))
- Resource and prompt discovery
- Automatic reconnection and security hardening
- Banner integration, `/reload-mcp` command
- `hermes tools` UI integration
### Browser
- Local browser backend — zero-cost headless Chromium (no Browserbase needed)
- Console/errors tool, annotated screenshots, auto-recording, dogfood QA skill ([#745](https://github.com/NousResearch/hermes-agent/pull/745))
- Screenshot sharing via MEDIA: on all messaging platforms ([#657](https://github.com/NousResearch/hermes-agent/pull/657))
### Terminal & Execution
- `execute_code` sandbox with json_parse, shell_quote, retry helpers
- Docker: custom volume mounts ([#158](https://github.com/NousResearch/hermes-agent/pull/158)) — @Indelwin
- Daytona cloud sandbox backend ([#451](https://github.com/NousResearch/hermes-agent/pull/451)) — @rovle
- SSH backend fix ([#59](https://github.com/NousResearch/hermes-agent/pull/59)) — @deankerr
- Shell noise filtering and login shell execution for environment consistency
- Head+tail truncation for execute_code stdout overflow
- Configurable background process notification modes
### File Operations
- Filesystem checkpoints and `/rollback` command ([#824](https://github.com/NousResearch/hermes-agent/pull/824))
- Structured tool result hints (next-action guidance) for patch and search_files ([#722](https://github.com/NousResearch/hermes-agent/issues/722))
- Docker volumes passed to sandbox container config ([#687](https://github.com/NousResearch/hermes-agent/pull/687)) — @manuelschipper
---
## 🧩 Skills Ecosystem
### Skills System
- Per-platform skill enable/disable ([#743](https://github.com/NousResearch/hermes-agent/pull/743)) — @teyrebaz33
- Conditional skill activation based on tool availability ([#785](https://github.com/NousResearch/hermes-agent/pull/785)) — @teyrebaz33
- Skill prerequisites — hide skills with unmet dependencies ([#659](https://github.com/NousResearch/hermes-agent/pull/659)) — @kshitijk4poor
- Optional skills — shipped but not activated by default
- `hermes skills browse` — paginated hub browsing
- Skills sub-category organization
- Platform-conditional skill loading
- Atomic skill file writes ([#551](https://github.com/NousResearch/hermes-agent/pull/551)) — @aydnOktay
- Skills sync data loss prevention ([#563](https://github.com/NousResearch/hermes-agent/pull/563)) — @0xbyt4
- Dynamic skill slash commands for CLI and gateway
### New Skills (selected)
- **ASCII Art** — pyfiglet (571 fonts), cowsay, image-to-ascii ([#209](https://github.com/NousResearch/hermes-agent/pull/209)) — @0xbyt4
- **ASCII Video** — Full production pipeline ([#854](https://github.com/NousResearch/hermes-agent/pull/854)) — @SHL0MS
- **DuckDuckGo Search** — Firecrawl fallback ([#267](https://github.com/NousResearch/hermes-agent/pull/267)) — @gamedevCloudy; DDGS API expansion ([#598](https://github.com/NousResearch/hermes-agent/pull/598)) — @areu01or00
- **Solana Blockchain** — Wallet balances, USD pricing, token names ([#212](https://github.com/NousResearch/hermes-agent/pull/212)) — @gizdusum
- **AgentMail** — Agent-owned email inboxes ([#330](https://github.com/NousResearch/hermes-agent/pull/330)) — @teyrebaz33
- **Polymarket** — Prediction market data (read-only) ([#629](https://github.com/NousResearch/hermes-agent/pull/629))
- **OpenClaw Migration** — Official migration tool ([#570](https://github.com/NousResearch/hermes-agent/pull/570)) — @unmodeled-tyler
- **Domain Intelligence** — Passive recon: subdomains, SSL, WHOIS, DNS ([#136](https://github.com/NousResearch/hermes-agent/pull/136)) — @FurkanL0
- **Superpowers** — Software development skills ([#137](https://github.com/NousResearch/hermes-agent/pull/137)) — @kaos35
- **Hermes-Atropos** — RL environment development skill ([#815](https://github.com/NousResearch/hermes-agent/pull/815))
- Plus: arXiv search, OCR/documents, Excalidraw diagrams, YouTube transcripts, GIF search, Pokémon player, Minecraft modpack server, OpenHue (Philips Hue), Google Workspace, Notion, PowerPoint, Obsidian, find-nearby, and 40+ MLOps skills
---
## 🔒 Security & Reliability
### Security Hardening
- Path traversal fix in skill_view — prevented reading arbitrary files ([#220](https://github.com/NousResearch/hermes-agent/issues/220)) — @Farukest
- Shell injection prevention in sudo password piping ([#65](https://github.com/NousResearch/hermes-agent/pull/65)) — @leonsgithub
- Dangerous command detection: multiline bypass fix ([#233](https://github.com/NousResearch/hermes-agent/pull/233)) — @Farukest; tee/process substitution patterns ([#280](https://github.com/NousResearch/hermes-agent/pull/280)) — @dogiladeveloper
- Symlink boundary check fix in skills_guard ([#386](https://github.com/NousResearch/hermes-agent/pull/386)) — @Farukest
- Symlink bypass fix in write deny list on macOS ([#61](https://github.com/NousResearch/hermes-agent/pull/61)) — @0xbyt4
- Multi-word prompt injection bypass prevention ([#192](https://github.com/NousResearch/hermes-agent/pull/192)) — @0xbyt4
- Cron prompt injection scanner bypass fix ([#63](https://github.com/NousResearch/hermes-agent/pull/63)) — @0xbyt4
- Enforce 0600/0700 file permissions on sensitive files ([#757](https://github.com/NousResearch/hermes-agent/pull/757))
- .env file permissions restricted to owner-only ([#529](https://github.com/NousResearch/hermes-agent/pull/529)) — @Himess
- `--force` flag properly blocked from overriding dangerous verdicts ([#388](https://github.com/NousResearch/hermes-agent/pull/388)) — @Farukest
- FTS5 query sanitization + DB connection leak fix ([#565](https://github.com/NousResearch/hermes-agent/pull/565)) — @0xbyt4
- Expand secret redaction patterns + config toggle to disable
- In-memory permanent allowlist to prevent data leak ([#600](https://github.com/NousResearch/hermes-agent/pull/600)) — @alireza78a
### Atomic Writes (data loss prevention)
- sessions.json ([#611](https://github.com/NousResearch/hermes-agent/pull/611)) — @alireza78a
- Cron jobs ([#146](https://github.com/NousResearch/hermes-agent/pull/146)) — @alireza78a
- .env config ([#954](https://github.com/NousResearch/hermes-agent/pull/954))
- Process checkpoints ([#298](https://github.com/NousResearch/hermes-agent/pull/298)) — @aydnOktay
- Batch runner ([#297](https://github.com/NousResearch/hermes-agent/pull/297)) — @aydnOktay
- Skill files ([#551](https://github.com/NousResearch/hermes-agent/pull/551)) — @aydnOktay
### Reliability
- Guard all print() against OSError for systemd/headless environments ([#963](https://github.com/NousResearch/hermes-agent/pull/963))
- Reset all retry counters at start of run_conversation ([#607](https://github.com/NousResearch/hermes-agent/pull/607)) — @0xbyt4
- Return deny on approval callback timeout instead of None ([#603](https://github.com/NousResearch/hermes-agent/pull/603)) — @0xbyt4
- Fix None message content crashes across codebase ([#277](https://github.com/NousResearch/hermes-agent/pull/277))
- Fix context overrun crash with local LLM backends ([#403](https://github.com/NousResearch/hermes-agent/pull/403)) — @ch3ronsa
- Prevent `_flush_sentinel` from leaking to external APIs ([#227](https://github.com/NousResearch/hermes-agent/pull/227)) — @Farukest
- Prevent conversation_history mutation in callers ([#229](https://github.com/NousResearch/hermes-agent/pull/229)) — @Farukest
- Fix systemd restart loop ([#614](https://github.com/NousResearch/hermes-agent/pull/614)) — @voidborne-d
- Close file handles and sockets to prevent fd leaks ([#568](https://github.com/NousResearch/hermes-agent/pull/568) — @alireza78a, [#296](https://github.com/NousResearch/hermes-agent/pull/296) — @alireza78a, [#709](https://github.com/NousResearch/hermes-agent/pull/709) — @memosr)
- Prevent data loss in clipboard PNG conversion ([#602](https://github.com/NousResearch/hermes-agent/pull/602)) — @0xbyt4
- Eliminate shell noise from terminal output ([#293](https://github.com/NousResearch/hermes-agent/pull/293)) — @0xbyt4
- Timezone-aware now() for prompt, cron, and execute_code ([#309](https://github.com/NousResearch/hermes-agent/pull/309)) — @areu01or00
### Windows Compatibility
- Guard POSIX-only process functions ([#219](https://github.com/NousResearch/hermes-agent/pull/219)) — @Farukest
- Windows native support via Git Bash + ZIP-based update fallback
- pywinpty for PTY support ([#457](https://github.com/NousResearch/hermes-agent/pull/457)) — @shitcoinsherpa
- Explicit UTF-8 encoding on all config/data file I/O ([#458](https://github.com/NousResearch/hermes-agent/pull/458)) — @shitcoinsherpa
- Windows-compatible path handling ([#354](https://github.com/NousResearch/hermes-agent/pull/354), [#390](https://github.com/NousResearch/hermes-agent/pull/390)) — @Farukest
- Regex-based search output parsing for drive-letter paths ([#533](https://github.com/NousResearch/hermes-agent/pull/533)) — @Himess
- Auth store file lock for Windows ([#455](https://github.com/NousResearch/hermes-agent/pull/455)) — @shitcoinsherpa
---
## 🐛 Notable Bug Fixes
- Fix DeepSeek V3 tool call parser silently dropping multi-line JSON arguments ([#444](https://github.com/NousResearch/hermes-agent/pull/444)) — @PercyDikec
- Fix gateway transcript losing 1 message per turn due to offset mismatch ([#395](https://github.com/NousResearch/hermes-agent/pull/395)) — @PercyDikec
- Fix /retry command silently discarding the agent's final response ([#441](https://github.com/NousResearch/hermes-agent/pull/441)) — @PercyDikec
- Fix max-iterations retry returning empty string after think-block stripping ([#438](https://github.com/NousResearch/hermes-agent/pull/438)) — @PercyDikec
- Fix max-iterations retry using hardcoded max_tokens ([#436](https://github.com/NousResearch/hermes-agent/pull/436)) — @Farukest
- Fix Codex status dict key mismatch ([#448](https://github.com/NousResearch/hermes-agent/pull/448)) and visibility filter ([#446](https://github.com/NousResearch/hermes-agent/pull/446)) — @PercyDikec
- Strip \<think\> blocks from final user-facing responses ([#174](https://github.com/NousResearch/hermes-agent/pull/174)) — @Bartok9
- Fix \<think\> block regex stripping visible content when model discusses tags literally ([#786](https://github.com/NousResearch/hermes-agent/issues/786))
- Fix Mistral 422 errors from leftover finish_reason in assistant messages ([#253](https://github.com/NousResearch/hermes-agent/pull/253)) — @Sertug17
- Fix OPENROUTER_API_KEY resolution order across all code paths ([#295](https://github.com/NousResearch/hermes-agent/pull/295)) — @0xbyt4
- Fix OPENAI_BASE_URL API key priority ([#420](https://github.com/NousResearch/hermes-agent/pull/420)) — @manuelschipper
- Fix Anthropic "prompt is too long" 400 error not detected as context length error ([#813](https://github.com/NousResearch/hermes-agent/issues/813))
- Fix SQLite session transcript accumulating duplicate messages — 3-4x token inflation ([#860](https://github.com/NousResearch/hermes-agent/issues/860))
- Fix setup wizard skipping API key prompts on first install ([#748](https://github.com/NousResearch/hermes-agent/pull/748))
- Fix setup wizard showing OpenRouter model list for Nous Portal ([#575](https://github.com/NousResearch/hermes-agent/pull/575)) — @PercyDikec
- Fix provider selection not persisting when switching via hermes model ([#881](https://github.com/NousResearch/hermes-agent/pull/881))
- Fix Docker backend failing when docker not in PATH on macOS ([#889](https://github.com/NousResearch/hermes-agent/pull/889))
- Fix ClawHub Skills Hub adapter for API endpoint changes ([#286](https://github.com/NousResearch/hermes-agent/pull/286)) — @BP602
- Fix Honcho auto-enable when API key is present ([#243](https://github.com/NousResearch/hermes-agent/pull/243)) — @Bartok9
- Fix duplicate 'skills' subparser crash on Python 3.11+ ([#898](https://github.com/NousResearch/hermes-agent/issues/898))
- Fix memory tool entry parsing when content contains section sign ([#162](https://github.com/NousResearch/hermes-agent/pull/162)) — @aydnOktay
- Fix piped install silently aborting when interactive prompts fail ([#72](https://github.com/NousResearch/hermes-agent/pull/72)) — @cutepawss
- Fix false positives in recursive delete detection ([#68](https://github.com/NousResearch/hermes-agent/pull/68)) — @cutepawss
- Fix Ruff lint warnings across codebase ([#608](https://github.com/NousResearch/hermes-agent/pull/608)) — @JackTheGit
- Fix Anthropic native base URL fail-fast ([#173](https://github.com/NousResearch/hermes-agent/pull/173)) — @adavyas
- Fix install.sh creating ~/.hermes before moving Node.js directory ([#53](https://github.com/NousResearch/hermes-agent/pull/53)) — @JoshuaMart
- Fix SystemExit traceback during atexit cleanup on Ctrl+C ([#55](https://github.com/NousResearch/hermes-agent/pull/55)) — @bierlingm
- Restore missing MIT license file ([#620](https://github.com/NousResearch/hermes-agent/pull/620)) — @stablegenius49
---
## 🧪 Testing
- **3,289 tests** across agent, gateway, tools, cron, and CLI
- Parallelized test suite with pytest-xdist ([#802](https://github.com/NousResearch/hermes-agent/pull/802)) — @OutThisLife
- Unit tests batch 1: 8 core modules ([#60](https://github.com/NousResearch/hermes-agent/pull/60)) — @0xbyt4
- Unit tests batch 2: 8 more modules ([#62](https://github.com/NousResearch/hermes-agent/pull/62)) — @0xbyt4
- Unit tests batch 3: 8 untested modules ([#191](https://github.com/NousResearch/hermes-agent/pull/191)) — @0xbyt4
- Unit tests batch 4: 5 security/logic-critical modules ([#193](https://github.com/NousResearch/hermes-agent/pull/193)) — @0xbyt4
- AIAgent (run_agent.py) unit tests ([#67](https://github.com/NousResearch/hermes-agent/pull/67)) — @0xbyt4
- Trajectory compressor tests ([#203](https://github.com/NousResearch/hermes-agent/pull/203)) — @0xbyt4
- Clarify tool tests ([#121](https://github.com/NousResearch/hermes-agent/pull/121)) — @Bartok9
- Telegram format tests — 43 tests for italic/bold/code rendering ([#204](https://github.com/NousResearch/hermes-agent/pull/204)) — @0xbyt4
- Vision tools type hints + 42 tests ([#792](https://github.com/NousResearch/hermes-agent/pull/792))
- Compressor tool-call boundary regression tests ([#648](https://github.com/NousResearch/hermes-agent/pull/648)) — @intertwine
- Test structure reorganization ([#34](https://github.com/NousResearch/hermes-agent/pull/34)) — @0xbyt4
- Shell noise elimination + fix 36 test failures ([#293](https://github.com/NousResearch/hermes-agent/pull/293)) — @0xbyt4
---
## 🔬 RL & Evaluation Environments
- WebResearchEnv — Multi-step web research RL environment ([#434](https://github.com/NousResearch/hermes-agent/pull/434)) — @jackx707
- Modal sandbox concurrency limits to avoid deadlocks ([#621](https://github.com/NousResearch/hermes-agent/pull/621)) — @voteblake
- Hermes-atropos-environments bundled skill ([#815](https://github.com/NousResearch/hermes-agent/pull/815))
- Local vLLM instance support for evaluation — @dmahan93
- YC-Bench long-horizon agent benchmark environment
- OpenThoughts-TBLite evaluation environment and scripts
---
## 📚 Documentation
- Full documentation website (Docusaurus) with 37+ pages
- Comprehensive platform setup guides for Telegram, Discord, Slack, WhatsApp, Signal, Email
- AGENTS.md — development guide for AI coding assistants
- CONTRIBUTING.md ([#117](https://github.com/NousResearch/hermes-agent/pull/117)) — @Bartok9
- Slash commands reference ([#142](https://github.com/NousResearch/hermes-agent/pull/142)) — @Bartok9
- Comprehensive AGENTS.md accuracy audit ([#732](https://github.com/NousResearch/hermes-agent/pull/732))
- Skin/theme system documentation
- MCP documentation and examples
- Docs accuracy audit — 35+ corrections
- Documentation typo fixes ([#825](https://github.com/NousResearch/hermes-agent/pull/825), [#439](https://github.com/NousResearch/hermes-agent/pull/439)) — @JackTheGit
- CLI config precedence and terminology standardization ([#166](https://github.com/NousResearch/hermes-agent/pull/166), [#167](https://github.com/NousResearch/hermes-agent/pull/167), [#168](https://github.com/NousResearch/hermes-agent/pull/168)) — @Jr-kenny
- Telegram token regex documentation ([#713](https://github.com/NousResearch/hermes-agent/pull/713)) — @VolodymyrBg
---
## 👥 Contributors
Thank you to the 63 contributors who made this release possible! In just over two weeks, the Hermes Agent community came together to ship an extraordinary amount of work.
### Core
- **@teknium1** — 43 PRs: Project lead, core architecture, provider router, sessions, skills, CLI, documentation
### Top Community Contributors
- **@0xbyt4** — 40 PRs: MCP client, Home Assistant, security fixes (symlink, prompt injection, cron), extensive test coverage (6 batches), ascii-art skill, shell noise elimination, skills sync, Telegram formatting, and dozens more
- **@Farukest** — 16 PRs: Security hardening (path traversal, dangerous command detection, symlink boundary), Windows compatibility (POSIX guards, path handling), WhatsApp fixes, max-iterations retry, gateway fixes
- **@aydnOktay** — 11 PRs: Atomic writes (process checkpoints, batch runner, skill files), error handling improvements across Telegram, Discord, code execution, transcription, TTS, and skills
- **@Bartok9** — 9 PRs: CONTRIBUTING.md, slash commands reference, Discord channel topics, think-block stripping, TTS fix, Honcho fix, session count fix, clarify tests
- **@PercyDikec** — 7 PRs: DeepSeek V3 parser fix, /retry response discard, gateway transcript offset, Codex status/visibility, max-iterations retry, setup wizard fix
- **@teyrebaz33** — 5 PRs: Skills enable/disable system, quick commands, personality customization, conditional skill activation
- **@alireza78a** — 5 PRs: Atomic writes (cron, sessions), fd leak prevention, security allowlist, code execution socket cleanup
- **@shitcoinsherpa** — 3 PRs: Windows support (pywinpty, UTF-8 encoding, auth store lock)
- **@Himess** — 3 PRs: Cron/HomeAssistant/Daytona fix, Windows drive-letter parsing, .env permissions
- **@satelerd** — 2 PRs: WhatsApp native media, multi-user session isolation
- **@rovle** — 1 PR: Daytona cloud sandbox backend (4 commits)
- **@erosika** — 1 PR: Honcho AI-native memory integration
- **@dmahan93** — 1 PR: --fuck-it-ship-it flag + RL environment work
- **@SHL0MS** — 1 PR: ASCII video skill
### All Contributors
@0xbyt4, @BP602, @Bartok9, @Farukest, @FurkanL0, @Himess, @Indelwin, @JackTheGit, @JoshuaMart, @Jr-kenny, @OutThisLife, @PercyDikec, @SHL0MS, @Sertug17, @VencentSoliman, @VolodymyrBg, @adavyas, @alireza78a, @areu01or00, @aydnOktay, @batuhankocyigit, @bierlingm, @caentzminger, @cesareth, @ch3ronsa, @christomitov, @cutepawss, @deankerr, @dmahan93, @dogiladeveloper, @dragonkhoi, @erosika, @gamedevCloudy, @gizdusum, @grp06, @intertwine, @jackx707, @jdblackstar, @johnh4098, @kaos35, @kshitijk4poor, @leonsgithub, @luisv-1, @manuelschipper, @mehmetkr-31, @memosr, @PeterFile, @rewbs, @rovle, @rsavitt, @satelerd, @spanishflu-est1918, @stablegenius49, @tars90percent, @tekelala, @teknium1, @teyrebaz33, @tripledoublev, @unmodeled-tyler, @voidborne-d, @voteblake, @ygd58
---
**Full Changelog**: [v0.1.0...v2026.3.12](https://github.com/NousResearch/hermes-agent/compare/v0.1.0...v2026.3.12)