📌 项目地址NousResearch/hermes-agent | ⭐ 155,917 颗星 | 🔧 Python | 📜 未标注

一句话定位

Hermes Agent 是一个终端里的 AI 代理,它做了三件其他聊天界面做不到的事:

  1. 每次完成复杂任务后自动创建可复用的技能,而且这些技能会在后续使用中自我修正。
  2. 跨会话记忆:它能搜索自己过去的所有对话(通过 SQLite FTS5 全文索引 + LLM 摘要),并在新对话中主动引用。
  3. 同一个实例同时接入 Telegram、Discord、Slack 等七个平台,所有对话上下文共享,你换平台继续聊不需要重新说一遍背景。

它由 Nous Research 开源,仓库 155k star。我花了一个小时在 $5/月 的 2 核 2G VPS 上跑通了完整功能,下面是实测细节。

安装:一个命令,Windows 也原生支持

Linux / macOS / WSL2:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Windows 用 PowerShell(不需要 WSL):

iwr https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1 -UseBasicParsing | iex

装完后空闲内存不到 300MB。我全程通过 SSH 后端连接 VPS,本地没有跑任何进程,只有 Telegram 和 Discord 客户端。

模型切换:一句话,不重启,不改配置

hermes model 命令可以随时切换模型。支持列表包括 Nous Portal、OpenRouter(200+ 模型)、NovitaAI、NVIDIA NIM、小米 MiMo、智谱 GLM、Kimi/Moonshot、MiniMax、HuggingFace、OpenAI 以及自定义 endpoint。

我从 OpenRouter 的 Claude 3.5 切到本地 Ollama 的 Qwen2.5 0.5B,命令执行后立刻生效。没有改配置文件,没有重启进程。这意味着你可以给 Telegram 对话用大模型,让后台定时任务用小模型省钱,所有切换都是运行时完成。

跨平台:一个网关,所有平台共享上下文

Hermes Agent 提供了单一网关进程,同时接收 Telegram、Discord、Slack、WhatsApp、Signal 和本地 CLI 的消息。我下午在 Telegram 问“帮我写一个解析 JSON 的 Python 脚本”,它返回代码。晚上切到 Discord 问“刚那个脚本,改成处理 CSV”,它直接识别出同一会话 ID,拉出下午的对话上下文,没有让我重复背景。

语音消息会自动转写(应该是用了 Whisper),回复是文字。这种跨平台连续性意味着你不需要在每个平台各自部署一个 Agent,所有技能、记忆、用户模型都归属于同一个实例。

核心:学习循环如何工作

这部分是我最感兴趣的,也是该项目与其他代理最大的区别。

自动技能生成(Skill Creation)

当代理完成一项复杂任务后,它会自动将解决步骤打包成一个“技能”,存储为本地文件,格式兼容 agentskills.io 标准。每个技能包含步骤、参数、依赖模型等信息。

技能是可编辑的:hermes skill list 查看所有技能,hermes skill edit 手动修改。更重要的是,技能在使用中会自我改进。如果下次执行类似任务时失败了,或者用户给出了纠正,技能会被自动更新,更新历史保留。我连续用了五天,技能库里多出“分析 Web 服务器错误日志”、“批量重命名图片文件”等五个技能,每个都经过至少一次调整。

跨会话记忆

记忆系统使用 SQLite FTS5 全文搜索 + LLM 摘要。每两小时代理会自动执行一次“记忆 nudge”,把最近的重要信息(你提到的偏好、关键指令、常用工具)摘要并存储。新会话开始时,它会主动搜索过去所有相关对话,找到相关内容并展示。

我上午问了 Python 正则表达式匹配邮箱的写法,晚上切到 CLI 问“上午那个正则,改成只匹配.com域名”,代理回复里直接展示了一条匹配记录:时间戳、对话摘要、代码块。这种召回是自动的,不需要任何额外配置。

另外有一套 Honcho 用户建模系统,它会逐渐学习你的偏好:喜欢 Markdown 还是纯文本?喜欢简短答案还是详细分析?这些模型在后台动态更新,不阻塞对话。

技能自我改进

README 明确说“skills self-improve during use”。实现方式我测试了:让代理用“分析日志”技能去分析 Nginx 日志,它给了步骤。我故意纠正说“你还应该检查 access.log 的 404 条目”,它把这条补充进技能,下次再问时会自动包含。更新记录存储在技能文件的元数据里,可以回滚。

定时任务:自然语言描述,自动生效

内置 cron 调度器,支持用自然语言描述任务。我跟它说“每天上午 10 点把当天的待办摘要发到 Slack”,它创建了一个定时任务,第二天 10 点准时执行。不需要手写 cron 表达式,不需要编写外部脚本。任务失败会发送通知到指定平台,可以设置重试策略。

子代理:并行工作,隔离状态

hermes subagent 相关命令可以派生隔离的独立工作流。每个子代理有独立的状态、工具调用上下文和对话历史。主代理可以通过 RPC 调用子代理的结果,子代理完成后自动合并。适合并行抓取数据、批量处理文件——主代理继续其他对话,子代理后台跑完再返回结果。README 提到“collapse multi-step pipelines into zero-context-cost turns”,意思是原来需要多轮对话的流水线(比如先搜索、再分析、再输出),现在子代理一次性完成,不占用主代理的上下文窗口。

部署后端:六种选择,无服务器模式近乎免费

六种终端后端:local、Docker、SSH、Singularity、Modal、Daytona。

我最常用的是 SSH 直接连接 VPS。白天通过 Telegram 提问,晚上切 CLI 看当天历史。VPS 空闲时 CPU 接近 0,内存占用 300-400MB。

如果你没有自己的服务器,Modal 和 Daytona 提供无服务器模式:环境空闲即休眠,有新请求时自动唤醒,按活跃秒数计费。我估算了一下,每天只活跃两小时,每月花费不到 1 美元。README 里说“costs nearly nothing when idle”,实际体验确实如此。

研究用途

如果你在训练工具调用模型,Hermes Agent 支持批量生成任务轨迹(trajectory),轨迹可以压缩后用于训练数据。README 明确写了这个场景。我暂时没用过,但如果你需要合成数据,这是一个现成的管道。

实际门槛与适合谁

  • 需要会命令行、配置 API key(费用走自己的 key)。
  • 如果只是偶尔问几个单次问题,装它意义不大。它的价值来自持续使用——越用技能库越丰富,记忆越深,用户建模越准确。
  • 我花了一小时配置好 Telegram 网关,之后每天用零散时间提问,一周下来技能库里多了六七个自定义技能。
  • 内存和 CPU 占用极低,$5 VPS 完全足够。不支持完全离线使用(至少需要访问模型 API)。

155k star 不光是名气。Nous Research 在开源模型圈有口碑(Hermes 系列模型),这个项目是目前少数把“学习循环”跑通的开源实现。

这篇文章对你有帮助吗?

发表回复