【开源分享】给 Hermes Agent 插上翅膀:hermes-patches 生产级体验增强补丁套件(10大硬核特性 / 一键脚本 / 已上架 PyPI)
各位 NodeLoc 的佬友们好!
不少在玩自建 AI Agent 或 VPS 运维的兄弟应该对 Hermes Agent(Nous Research 开源)不陌生。它支持直连 Terminal、自主执行 Bash、读写文件、管理 Docker,还能无缝接入 Telegram、Discord、Slack、QQ 等聊天平台,是目前自托管在 Linux VPS 上当“24小时随身运维助手”最顺手的开源 Agent 之一。
但在真实的生产环境、多台 VPS 长期高频运行以及接入 Telegram 的实际体验中,官方原生代码在中文环境与高并发场景下存在不少影响使用体验与稳定性的隐性暗坑:
- Telegram 中文表格被干碎:遇 CJK 字符时原生正则拦截,高保真 Markdown 表格直接退化为乱七八糟的无序列表;
- 思考模型标签刷屏:DeepSeek-R1、QwQ、Claude 3.7 Thinking 等输出的
<think>冗长思维链在终端大弹窗刷屏、在聊天窗口偶发草稿泄露; - 打字机流式频繁 429:中间消息高频调用
editMessageText导致界面狂闪、手机震动,长文本直接触发 Telegram 429 限流; - 并发数据库死锁:多任务与子代理并发写入时,SQLite 频繁报
database is locked甚至外键错位崩溃; - 自主清理误删主库:Agent 自主清理垃圾磁盘时,极易“狠起来连自己都删”,一脚把 live 活库
state.db踢掉导致所有记忆与会话历史断崖蒸发……
为了不再每次升级上游 Hermes 都得手动 SSH 进服务器肉身魔改,我把长期实战中打磨出的成熟方案系统性沉淀并开源了这套 hermes-patches 体验增强补丁管理套件,现已迭代至 v1.6.1,并已同步上架 PyPI 官方源。
- GitHub 开源仓库:https://github.com/shali10/hermes-patches
- PyPI 官方主页:https://pypi.org/project/hermes-patches/
核心架构与 10 大特性全景看板
先上一张新野兽派极客风的特性全景图,直观感受 10 项增强补丁的痛点与解决思路:
实测效果:Telegram 原生表格与 Token 页脚全透视
安装补丁后,在 Telegram 客户端中的实际交互体验如下图所示:
1.
Token 消耗与缓存命中全透视 (Runtime Footer)
- 官方默认精简页脚:
LongCat-2.0 · 7% - 安装补丁后全量高保真页脚:
自动兼容 OpenAI、Gemini、Claude、vLLM 等各厂商的原生缓存字段,彻底消除第三方代理中转漏传导致的“假 0%”。🤖 gemini-3.7-flash-high | 🧠 Prompt总量: 45,210 | 💾 缓存命中: 40,000 (88%) | 📤 输出: 280 | 🎯 上下文: 4% | ⏱️ 耗时: 3.2s
2.
Telegram 原生 Markdown Pipe Table 放行
不再被官方 CJK 逻辑拦截降级,享受现代 Telegram 原生高保真表格排版,中英混排对齐毫不费力。
10 大生产级补丁全景矩阵
套件采用非侵入式 AST 级代码注入,所有修改均经过 Python 字节码编译预检(py_compile)与原子置换,并配备原生 .bak 备份回滚机制。
| # | 补丁名称 | 官方原生痛点 | 打入补丁后的增强表现 |
|---|---|---|---|
| 01 | Token 全量计量 |
官方页脚仅显示精简模型名与粗略百分比(如 gpt-4o · 7%) |
全指标精准透视:Prompt 总量(兼顾 Total 与 Miss 算法)、缓存命中数及命中率、输出 Token、执行耗时与上下文占用,全部千分位高保真展示。 |
| 02 | CJK 表格放行 |
遇中文字符时,原生正则会将 Markdown 表格降级拦截为粗糙的无序列表 | 100% 放行原生 Pipe Table,在现代 Telegram 客户端呈现原生对齐的高保真富文本表格。 |
| 03 | 命令全量汉化 |
Telegram 输入 / 弹出的官方命令帮助全为英文 |
全量本地化为中文说明(/start, /new, /status, /reset 等),小白和日常使用一目了然。 |
| 04 | 外键自愈与防锁 |
多任务与子代理并发写入时,易触发 database is locked 或缺失外键报错 |
注入连接级 busy_timeout=5000 锁争用保护 + 会话外键缺失自动补齐自愈,彻底杜绝数据库死锁断流。 |
| 05 | 低危扫描免打扰 |
自动化执行简单运维命令时,频繁被 LOW/INFO 级别静态扫描警告弹窗阻断 | 自动放行低风险提示,高危风险依然严格拦截,兼顾安全性与自动化流畅度。 |
| 06 | 流式静默与 429 护盾 |
流式打字机高频 editMessageText 导致界面狂闪、手机震动,且极易触发 Telegram 429 限流 |
支持全局 display.streaming: false,后端完整推理完毕后一次性交付高质量排版,零消息抖动、免 429 限流。 |
| 07 | 思考过程深度净化 |
深度推理模型输出冗长思维链刷屏,CLI 弹大窗,IM 偶尔漏出草稿残留 | 全链路深度剥离所有思维链变体(<think>, <thought>, <antml:thought> 及未闭合流式残块),输出干练干净的正文。 |
| 08 | 4096 长消息切分 |
超过 Telegram 4096 字符限制时长文本被生硬截断,损坏代码块围栏导致解析报错 | 优先在自然段落(\n\n)边界优雅切分,自动闭合并补齐跨段代码围栏与表格结构。 |
| 09 | 失效目录安全回退 |
当先前指定的显式工作目录被清理/删除后,后续执行命令直接报 exit 126 崩溃 |
在构建包装器前自动检测并回退到最近可用父目录,彻底规避因临时目录删除引发的会话卡死。 |
| 10 | 主库防误删硬核护栏 |
Agent 在执行自主清理磁盘/垃圾扫描时,极易误将活库 state.db 识别为清理目标直接删库 |
不可绕过的动作级防删安全地线:硬核阻断 rm / truncate / > / find -delete 误伤活库,同时 100% 允许只读查看、VACUUM 与 .bak 备份文件清理。 |
控制台交互体验(v1.6.1 最新特性)
项目自带一个极简清爽的终端交互控制台,支持实时代码指纹状态探测与无跳转直接多选:
=====================================================
🛠️ Hermes Agent 体验增强补丁管理套件 (v1.6.1)
=====================================================
目标路径: /usr/local/lib/hermes-agent (补丁状态: 10/10 已应用)
[1] 🚀 全量一键安装、自动配置并平滑重启 (推荐 / 直接回车)
---------------------------------------------------
[2] [已应用 ✓] 📊 Runtime Footer (Token 全量计量、缓存与耗时)
[3] [已应用 ✓] 📑 Telegram CJK 原生 Markdown 表格放行
[4] [已应用 ✓] 🇨🇳 Telegram 快捷菜单与 /help /commands 全中文汉化
[5] [已应用 ✓] 🛡️ SQLite 生产级外键自愈与高并发防锁死
[6] [已应用 ✓] ⚡ Tirith 低风险扫描审批免打扰
[7] [已应用 ✓] 🚫 流式输出静默控制与 429 频控防护
[8] [已应用 ✓] 🧠 全链路深度思考过程强力净化
[9] [已应用 ✓] ✂️ Telegram 4096 长消息智能段落切分
[10] [已应用 ✓] 📁 Terminal 失效工作目录自动回退
[11] [已应用 ✓] 🧱 SQLite 主库防误删护栏
---------------------------------------------------
[12] 🔍 预览变更 (Dry Run,不写入磁盘)
[13] ↩️ 卸载补丁并无损还原 (.bak 原生回滚)
[14] 🧪 运行运行时行为断言测试套件 (Behavior Test)
[0] 🚪 退出脚本
=====================================================
请输入选项编号 (直接多选如 2 3 7、2,3,7 或 2-5) [默认: 1]:
交互亮点:
- 状态实时透视:启动即对目标源码进行代码特征预检,前面直观显示
[已应用 ✓]或[未应用 -],哪些打了、哪些没打一目了然; - 零二级跳转,支持多选与范围:在主输入框直接输入
2 3 7、2,3,7或区间2-5,按回车直接批量安装并平滑重启,拒绝套娃菜单; - 持续会话主循环:操作完成后提示按回车刷新状态并返回主菜单,随时连续管理多个补丁,输入
0或q退出。
生产安全与升级自愈机制
跑在生产 VPS 上的工具,稳定性与可维护性是第一位的:
- 编译预检与原子置换:所有代码修改先在隔离临时文件中运行,通过 Python 原生
py_compile.compile(..., doraise=True)严格语法校验后才执行os.replace原子替换,绝不产生残缺损坏文件; - 升级自愈守护:脚本会自动给 systemd 注册
ExecStartPre挂载。平时上游执行hermes update或升级源码后,Gateway 重启时会自动执行补丁自愈重应用,升级永不失效; - 无损一键还原:初次安装自动生成物理
.bak备份文件,执行--uninstall即可瞬间无损回滚到官方原生代码。
安装与使用姿势
方式 A:零配置一键脚本(推荐,开箱即用)
在安装了 Hermes Agent 的服务器上直接执行:
curl -fsSL https://raw.githubusercontent.com/shali10/hermes-patches/main/install.sh | bash
脚本全自动处理:自动寻径识别 Hermes 活跃源码路径 ➔ 编译检查并原子注入补丁 ➔ 自动初始化
~/.hermes/config.yaml对应配置项 ➔ 刷新 Python__pycache__字节码 ➔ 配置 systemd 升级自愈 ➔ 自动平滑重启hermes-gateway。
方式 B:通过 PyPI 标准全局安装
# 1. pip 全局安装
pip install -U hermes-patches
# 2. 终端任意路径拉起交互控制台
hermes-patches
# 3. 或一键静默全量打补丁 + 自动写入配置 + 平滑重启
hermes-patches --all --auto-config --restart
方式 C:进阶 CLI 常用命令
# 检查当前环境补丁生效状态(支持输出 JSON 便于监控脚本读取)
hermes-patches --status
hermes-patches --status --json
# 仅试运行预览变更(Dry Run,绝不写入磁盘)
hermes-patches --dry-run -v
# 仅安装特定编号或别名的补丁
hermes-patches --only 2 3 7 --auto-config --restart
hermes-patches --only 2-5 nostream --auto-config --restart
# 一键卸载所有补丁,从 .bak 恢复官方原生代码
bash install.sh --uninstall
结语
这个项目最初只是我自己自用“补丁包”,后来随着上游 Hermes 的大版本演进与模块化解耦,逐步把它重构成了带完整 AST 注入、多版本自适应寻径、CI 自动化测试与 PyPI 打包的正规军工程。
如果佬友们平时也在用 Hermes Agent 跑 VPS 运维、接 Telegram 机器人或搭个人助理,欢迎上手跑跑看,彻底告别原生的各种小毛病。遇到任何环境兼容性问题或新的痛点建议,欢迎在帖子里交流,或者去 GitHub 提 Issue / PR!
- GitHub 开源地址:https://github.com/shali10/hermes-patches
- 开源协议:MIT License

