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)
- 文件上传回退保留线程上下文
- 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
全新安装请参考安装指南。
← Hermes Agent Changelog