v0.3.0

Hermes Agent v0.3.0 — 流式输出、插件与多 Provider 版本(The Streaming, Plugins & Provider Release)


概览

v0.3.0 — The Streaming, Plugins & Provider Release(流式输出、插件与多 Provider 版本),2026 年 3 月 17 日发布,距离首次公开发布 v0.2.0 仅 5 天。这个版本将 Hermes Agent 从一个有潜力的开源 Agent 推向了生产级自主运维平台

如果说 v0.2.0 让世界看到了 Hermes 能做什么,那 v0.3.0 让它真正有了产品级的体验。流式 token 输出消灭了“盯着空白屏幕干等”的痛点。插件架构打开了社区贡献的大门——不需要碰核心代码就能扩展功能。Provider 系统的全面重建意味着你可以一条命令在 OpenAI、Anthropic、OpenRouter 的 200+ 模型或任意自定义端点之间热切换。

社区的反馈来得又快又猛:v0.3.0 发布时,Hermes Agent 已经被 Zero-Human Companies 社区称为“自主运维的操作系统”。以下是这个版本凭什么配得上这个称号。

关键数据: ~50+ Bug 修复 · 14 个重大功能 · 10+ 新技能 · 4 个消息平台全面升级


重磅功能

1. 统一流式输出基础设施

v0.3.0 用户感知最强的变化:CLI 和所有网关平台的响应现在逐 token 实时流式输出,告别漫长的“全量加载”。

具体变化:

  • 所有 Provider 统一通过一套流式基础设施输出
  • CLI、Telegram、Discord、Slack 以及全部网关平台实时接收 token
  • 长时间运行的工具调用(代码执行、网页抓取)实时展示进度

这不只是体验层面的打磨——它从根本上改变了交互模式。用户可以在生成过程中打断、纠正方向,或者追问,不用等完整的响应块。

# 流式输出默认开启,无需任何配置
hermes
> 写一个处理 10GB 日志文件的 Python 脚本

# Token 实时输出。你可以:
# - 实时看到 Agent 在想什么
# - 方向不对时用 Ctrl+C 打断
# - 中途纠正:"算了,用 Rust 写"

2. 一级插件架构

插件系统是社区增长的关键解锁。把 Python 文件丢进 ~/.hermes/plugins/ 目录,Hermes 自动拾取——自定义工具、slash 命令、生命周期钩子,全部无需 fork 仓库。

插件长这样:

# ~/.hermes/plugins/my_custom_tool.py
from hermes.plugin import Plugin, tool

class MyCustomPlugin(Plugin):
    """一个添加自定义天气工具的插件。"""

    @tool
    def get_weather(self, city: str) -> dict:
        """获取指定城市的当前天气。"""
        import requests
        resp = requests.get(f"https://api.weather.example/{city}")
        return resp.json()

    @tool
    def analyze_sentiment(self, text: str) -> dict:
        """分析文本情感。"""
        # 你的自定义逻辑
        return {"sentiment": "positive", "score": 0.85}

插件生命周期钩子:

  • on_load — 插件首次加载时执行
  • on_unload — 移除前清理
  • on_tool_call — 拦截和修改任意工具调用
  • on_response — 后处理 Agent 响应

插件目录自动监听文件变更——在 Hermes 运行时添加、删除或修改插件文件,即时生效。

3. 原生 Anthropic Provider

v0.3.0 之前,使用 Claude 模型必须走 OpenRouter 中转。原生 Anthropic Provider 彻底改变了这个局面。

解锁的能力:

  • 直连 Anthropic API — 更低延迟,告别 OpenRouter 中间层
  • Claude Code 凭据自动发现 — 用过 Claude Code 的话,Hermes 自动找到你的凭据
  • OAuth PKCE 流程 — 安全、符合标准的认证,支持 token 自动刷新
  • 原生 prompt 缓存 — Anthropic 的 prompt 缓存为长对话节省高达 90% 的成本
# 用 Anthropic provider 跑 setup
hermes setup --provider anthropic

# 或者在会话中途切换
/hermes model claude-sonnet-4-20250514

# Hermes 自动发现 Claude Code 凭据(如果有的话)
# 只要这台机器用过 Claude Code,就不需要额外填 API key
# hermes.config.yaml
providers:
  - name: anthropic
    provider: anthropic
    model: claude-sonnet-4-20250514
    prompt_caching: true

原生 Provider 还带来了 Anthropic 原生视觉 API 支持——辅助调用中的图片直接走 Claude 视觉模型,不再绕道 OpenAI 兼容端点。

4. 智能审批 + /stop 命令

借鉴 Codex 的命令安全方案,智能审批系统会学习哪些命令是安全的,记住你的偏好。

工作原理:

  • 第一次:Hermes 弹出“批准这条命令?[y/n/always]”
  • 选 always:Hermes 记住这条命令的模式,永不再问
  • 模式匹配:相似命令自动识别
  • /stop:立即终止当前 Agent 运行,二话不说
> 执行: pip install pandas numpy scikit-learn
# 第一次:"批准这条 pip install 命令?[y/n/always]"
# 选 'a'(always)→ 以后再遇到 pip install 不再问

> 执行: rm -rf /tmp/build-cache
# "批准这条删除操作?[y/n/always]"——不同类别,重新问
# 选 'y'(仅本次)→ 下次 rm 命令还会问

/stop 命令就是你的紧急刹车:

# Agent 跑偏了——立刻停下
/stop

# 在消息平台上(Telegram/Discord 等)同样有效
# 在任意与 Hermes 的对话中输入 /stop

5. 语音模式

v0.3.0 的语音模式覆盖三个场景:

CLI:按住说话

# 按住空格键说话,松开发送
hermes --voice

# 或在会话中途切换
/voice

消息平台:语音笔记

  • 在 Telegram 或 Discord 发送语音笔记——Hermes 自动转写并回复
  • 转写使用 faster-whisper,免费本地处理
  • 无需任何云转写服务

Discord 语音频道

  • Hermes 可以加入 Discord 语音频道
  • 监听 @提及并语音回复
  • 不支持语音的频道自动降级为文字
# hermes.config.yaml — 语音配置
voice:
  stt:
    enabled: true
    engine: faster-whisper  # 本地、免费、无需 API key
  tts:
    enabled: true
    engine: openai  # 或其他兼容 TTS 端点

6. 并发工具执行

多个独立的工具调用现在通过 ThreadPoolExecutor 并行执行。

v0.3.0 之前:

> 搜索 Python async、Rust async、Go goroutines 的文档
# 工具调用串行执行:
# [搜索: python async] → 等待 → [搜索: rust async] → 等待 → [搜索: go goroutines]
# 耗时: ~9 秒

v0.3.0 之后:

> 搜索 Python async、Rust async、Go goroutines 的文档
# 工具调用并行执行:
# [搜索: python async] ┐
# [搜索: rust async]   ├─ 同时启动
# [搜索: go goroutines]┘
# 耗时: ~3 秒

这对调研工作流、多文件代码修改、以及任何涉及多个独立操作的场景都带来了质的飞跃。

7. Honcho 记忆集成

Honcho(由 @erosika 贡献)为 Hermes 带来了辩证式用户建模——Agent 随时间推移构建对你的“心智模型”。

核心能力:

  • 异步记忆写入 — 记忆操作永不阻塞 Agent 响应
  • 可配置回忆模式 — 控制每轮注入多少条记忆
  • 会话标题集成 — 记忆与会话上下文关联标记
  • 多用户隔离 — Gateway 模式下,每个用户的记忆完全隔离
# hermes.config.yaml
memory:
  honcho:
    enabled: true
    recall_mode: recent  # recent | relevant | all
    max_memories_per_turn: 5

配合改进的记忆优先级系统(用户偏好权重高于程序性知识),Hermes 在“记住你是谁、你在意什么”方面有了质的飞跃。

8. PII 脱敏

隐私设计先行。启用 privacy.redact_pii 后,个人身份信息在发送给 LLM Provider 之前自动脱敏。

# hermes.config.yaml
privacy:
  redact_pii: true

脱敏范围:

  • 邮箱地址 → [EMAIL]
  • 电话号码 → [PHONE]
  • 信用卡号 → [CREDIT_CARD]
  • API key 和 token → [API_KEY]
  • IP 地址 → [IP_ADDRESS]

脱敏在本地完成,数据不会离开你的机器。

9. /browser connect — CDP 实时浏览器连接

通过 Chrome DevTools Protocol 将浏览器工具附加到你正在运行的 Chrome 实例上。Hermes 不再自己启动浏览器,而是连接到你的——调试、检查、与你已打开的页面交互。

# 以远程调试模式启动 Chrome
chrome --remote-debugging-port=9222

# 在 Hermes 中连接它
/browser connect --port 9222

# 现在 Hermes 可以:
# - 看到你打开了哪些标签页
# - 导航到新页面
# - 在页面上点击、输入、滚动
# - 从你打开的标签页提取数据
# - 调试你正在开发的 Web 应用

这对 Web 开发工作流来说是革命性的——在 Chrome 中调试应用,Hermes 在旁边看着并帮你。

10. Vercel AI Gateway Provider

将 Hermes 路由到 Vercel 的 AI Gateway,访问他们的模型目录和基础设施。

# hermes.config.yaml
providers:
  - name: vercel
    provider: vercel-ai-gateway
    api_key: ${VERCEL_AI_GATEWAY_KEY}

这具有战略意义:Vercel 的 Gateway 提供统一计费、速率限制和跨多模型 Provider 的分析,非常适合团队和生产部署。

11. 集中式 Provider 路由器

Provider 系统围绕单一 call_llm API 彻底重建。每个模型调用——主 Agent、子 Agent、视觉、辅助调用——全部走同一关口。

解锁的能力:

  • 统一 /model 命令 — 一条命令切换模型和 Provider,Hermes 自动检测 Provider
  • 模型切换自动检测 — 输入 /model claude-sonnet-4,Hermes 知道它是 Anthropic
  • 直接端点覆盖 — 独立指向视觉或子 Agent 调用的特定端点
  • 自定义 Provider 解析 — 委派 Provider 从 custom_providers 配置中解析
# 无缝切换模型
/hermes model gpt-5          # → OpenAI
/hermes model claude-sonnet-4 # → Anthropic(自动检测)
/hermes model grok-3          # → xAI
/hermes model nous-hermes     # → OpenRouter 或 Nous Portal

# 前缀匹配也支持
/mod gpt-5    # 解析为 /model gpt-5

12. ACP 服务器 — IDE 集成

VS Code、Zed 和 JetBrains 现在可以通过 Agent Communication Protocol 连接到 Hermes 作为 Agent 后端。

# 以 ACP 服务器模式启动 Hermes
hermes serve --acp

# VS Code / Zed / JetBrains 扩展连接到此端点
# IDE 内完整支持 slash 命令

这意味着开发者可以直接从编辑器里访问个人 Hermes Agent——让它重构代码、解释函数或生成测试,不用离开 IDE。

13. 持久化 Shell 模式

@alt-glitch 贡献。本地和 SSH 终端后端在多次工具调用之间保持 Shell 状态。

之前:

> cd /my-project
> ls
#(新 Shell 启动,cd 没保留)
# 显示的是家目录,不是 /my-project

之后:

> cd /my-project
> ls
#(同一个 Shell,状态保留)
# 显示 /my-project 内容 ✓
> export DATABASE_URL=postgres://localhost/mydb
> python manage.py migrate
# DATABASE_URL 已设置 ✓

Shell 会话在对话中的所有工具调用之间保持 cd、环境变量、别名和工作目录。SSH 后端同样支持。

14. Agentic On-Policy Distillation(OPD)

全新的 Agent 策略蒸馏 RL 训练环境,扩展了 Atropos 训练生态。这是 Hermes 双重定位的一部分:不只是给终端用户的工具,也是生成 Agent 行为轨迹的基础设施——这些轨迹用于训练下一代工具调用模型。

# OPD 环境位于 environments/
# 集成 Nous 的 Atropos RL 框架
# 从 Agent 行为轨迹生成训练数据

CLI 与用户体验改进

交互式 CLI 升级

功能 描述
持久化状态栏 始终可见的模型、Provider 和 token 计数
文件路径自动补全 输入框中 Tab 补全文件路径
/plan 命令 从规格说明生成实施计划
/rollback 改进 更丰富的检查点历史,更清晰的交互
前缀匹配 /mod/model/sta/status
Skill 预加载 启动时加载技能,第一条 prompt 前就绪

安装与配置

  • OpenClaw 迁移 — 首次安装时无缝从 OpenClaw 迁移
  • 无头安装 — 完整安装流程支持纯 SSH 服务器
  • 智能视觉设置 — 视觉功能尊重用户选择的 Provider
  • .env 热加载 — 环境变更无需重启

平台更新

Gateway 核心

功能 影响
系统服务模式 以 systemd 系统级服务运行
推理设置热加载 无需重启即可更改推理设置
用户级别会话隔离 群聊不再跨用户共享状态
SSL 自动检测 兼容 NixOS 等非标准系统
Gateway 重启恢复 崩溃后恢复改进

Telegram

  • 媒体组缓冲防止照片连发打断
  • 瞬态 TLS 失败自动重试
  • 正确处理 MarkdownV2 特殊字符转义

Discord

  • /thread 命令配合 auto_thread 配置
  • @提及时自动创建线程
  • 保留原生文档和视频附件支持

Slack

  • 线程处理全面改造——响应和会话隔离遵循线程上下文
  • 最大消息长度修复(3900 → 39000)
  • 文件上传回退保留线程上下文

Email

  • IMAP UID 追踪和 SMTP TLS 验证修复
  • skip_attachments 选项通过 config.yaml 配置

工具与基础设施

新增 Skills

Skill 描述
Linear 项目管理集成
X/Twitter 通过 x-cli 的社交媒体
Telephony Twilio SMS 和 AI 通话
1Password 密码管理(由 @arceus77-7 贡献)
NeuroSkill BCI 脑机接口集成
Blender MCP 3D 建模
OSS Security Forensics 安全分析工具包
Parallel CLI 调研 Skill
OpenCode CLI Skill
ASCII Video 重构版本(由 @SHL0MS 贡献)

MCP 改进

  • 选择性工具加载 — 通过工具策略过滤可用的 MCP 工具
  • 自动重载mcp_servers 配置变更时自动重载 MCP 工具,无需重启
  • npx 连接修复 — 解决 stdio 连接失败问题

Cron 系统

  • 单一 cronjob 工具取代多个命令
  • Job 持久化到 SQLite——重启不丢失
  • 每个 Job 独立的运行时覆盖(provider、model、base_url)
  • 原子写入防止崩溃时数据丢失
  • deliver=origin 保留线程上下文

安全加固

  • Tirith 预执行扫描 — 命令执行前静态分析
  • Provider 环境变量剥离 — 所有 Provider/Gateway 环境变量从子进程环境中清除
  • Docker cwd 显式启用 — 主机目录挂载现在显式声明,永不自动挂载
  • Fork bomb 检测 — 改进恶意命令检测的正则模式

关键 Bug 修复

v0.3.0 关闭了 50+ 个 issue。影响最大的修复:

问题 修复
/status 总是显示 0 token 现在报告实时状态和 token 计数
自定义模型端点不工作 恢复配置保存的端点解析
MCP 工具重启前不可见 配置变更时自动重载
hermes tools 移除 MCP 工具 保存时保留 MCP 工具集
终端子进程继承 OPENAI_BASE_URL 所有子进程清除环境变量
Gateway 性能退化 修复日志处理器累积
后台进程重启丢失 改进恢复
Cron job 状态不持久 现在存入 SQLite
无头 SSH 环境安装卡住 端到端无头流程
模型切换不生效 修复 Provider 解析

社区的反馈

“Hermes 不是绑在 IDE 上的编程副驾驶,不是单个 API 的聊天包装器。它是一个持久的、多平台的、多模型的自主 Agent,随部署一起成长。” — ZHC Institute, Field Notes on v0.3.0

“持续积累的 Agent”——Hermes Agent 的核心特质在 v0.3.0 已经显现:从经验中创造的技能、随时间积累的记忆、每次交互都在增长的能力。 — Intraview, Hermes Agent 起源故事


破坏性变更

  • Provider 配置格式更新——v0.2.0 的自定义 Provider 配置可能需要调整结构
  • 旧版 OpenClaw 配置必须走迁移流程(hermes claw migrate
  • 插件 API 是 v0.3.0 新增的——不存在与旧版本的兼容问题(插件系统之前不存在)

升级

hermes update

从 OpenClaw 迁移:

# 如果你之前用 OpenClaw,请用迁移命令
hermes claw migrate

全新安装请参考安装指南


GitHub 完整 Changelog

← Hermes Agent Changelog