编者按: 在 Claude Code、OpenAI Codex 等 AI 编程工具扎堆涌现的今天,Nous Research 开源的 Hermes Agent 走出了一条截然不同的路——它不止是一个编程助手,而是一个真正的全平台、全场景 AI Agent 框架。本文将从发展历程、核心架构、安装部署到生活变革等多个维度,带你全面了解这个正在被越来越多人关注的开源项目。
一、引言:为什么我们需要一个新的 AI Agent?
如果你关注过最近的 AI 工具生态,会发现一个有趣的现象:大多数 AI 助手都被设计成了”单场景”产品。Claude Code 专注于代码编辑,ChatGPT 擅长对话问答,各种 Bot 各自守护着 Telegram、Discord 或 Slack 的领地。这种割裂意味着,作为用户,你不得不在多个工具之间切换,每一个都有自己的学习曲线、配置方式和上下文盲区。
Hermes Agent 的诞生就是为了解决这个问题。 它由开源 AI 研究组织 Nous Research 开发,核心理念非常朴素但极具野心:一个 Agent,无处不在。 它运行在终端里,也能同时连接 Telegram、Discord、Slack、WhatsApp、Signal、Matrix、微信、邮件等十多个平台;它能写代码、能管理文件、能搜索网页、能控制智能家居、能定时执行任务、能记住你是谁。
更重要的是,它完全开源(MIT 协议),并且支持 20 多个模型提供商——从 Anthropic、OpenAI、Google Gemini 到 DeepSeek、通义千问、智谱、MiniMax,甚至本地部署的开源模型。你不需要被任何一家厂商锁定。
二、发展历程:从实验性项目到成熟的 Agent 框架
Hermes Agent 的故事可以从几个关键阶段来理解。
2.1 起步:Nous Research 的开源传统
Nous Research 是一个以开源为核心价值的 AI 研究组织,其最著名的产品线是 Hermes 系列开源语言模型。在模型开发的过程中,团队意识到一个现实问题:再好的模型,如果没有合适的工具链和应用框架,也很难真正触达用户。 于是,他们决定开发一个开源的 AI Agent 框架——这就是 Hermes Agent 的起点。
与许多商业 AI 产品不同,Hermes Agent 从一开始就选择了完全开源的路线,并坚持 MIT 许可证。这意味着任何人都可以自由地使用、修改、分发,甚至用于商业项目。
2.2 演进:从简单 CLI 到多平台网关
最初的 Hermes Agent 只是一个简单的命令行聊天工具——用户输入问题,模型返回答案,仅此而已。但随着社区的反馈和团队的迭代,它迅速演变成了一个功能丰富的平台:
- 第一阶段(CLI 原型): 实现了基础的终端交互,支持通过 OpenAI 格式 API 调用各种模型。
- 第二阶段(工具集成): 引入了文件系统读写、终端命令执行、网页搜索等核心工具,让 Agent 从”纯对话”走向”能做事”。
- 第三阶段(技能与记忆): 开发了 Skills(技能)和 Memory(记忆)系统,让 Agent 能够跨会话学习、积累和复用知识。
- 第四阶段(多平台网关): 实现了 Gateway 架构,将同一个 Agent 实例同时暴露到 Telegram、Discord、Slack、微信等多个即时通讯平台。
- 第五阶段(当前阶段): 引入了定时任务(Cron)、多智能体协作(Delegation & Kanban)、凭证池(Credential Pooling)、配置文件隔离(Profiles)等高级特性,形成了今天这样一个功能完整的 Agent 框架。
2.3 社区与生态
作为一个开源项目,Hermes Agent 的社区贡献也是其快速迭代的重要驱动力。社区开发者贡献了数百个技能(Skills),覆盖了从苹果生态自动化(iMessage、备忘录、提醒事项)、GitHub 工作流、MCP 服务器集成、数据科学(Jupyter 内核)、机器学习操作(HuggingFace、vLLM、Axolotl 微调)、智能家居控制(Philips Hue)、到创意内容生成(ASCII 艺术、像素画、ComfyUI 图像生成)等各个领域。
三、核心架构:解剖 Hermes Agent 的技术设计
Hermes Agent 的架构设计体现了几个重要原则:模块化、可扩展、平台无关、会话持久化。 下面我们逐层拆解。
3.1 整体架构概览
┌─────────────────────────────────────────────────────────┐
│ 用户交互层 │
│ CLI (终端) │ Telegram │ Discord │ Slack │ 微信 │ 邮件 │
└────────┬────────────┬──────────┬────────┬───────┬────────┘
│ │ │ │ │
┌────────▼────────────▼──────────▼────────▼───────▼────────┐
│ Gateway 网关层 │
│ 多平台统一消息路由 · 会话管理 · 权限控制 │
└────────┬─────────────────────────────────────────────────┘
│
┌────────▼─────────────────────────────────────────────────┐
│ Agent 核心引擎 (AIAgent) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │
│ │ 模型路由 │ │ 工具发现 │ │ 上下文 │ │ 技能调度 │ │
│ │ 凭证池 │ │ 与分发 │ │ 压缩 │ │ 记忆管理 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────────┘ │
└────────┬─────────────────────────────────────────────────┘
│
┌────────▼─────────────────────────────────────────────────┐
│ 工具层 (Tools) │
│ 终端 · 文件 · 搜索 · 浏览器 · 视觉 · 语音 · 定时任务 · ... │
└──────────────────────────────────────────────────────────┘
3.2 核心循环:Agent 如何”思考”和”行动”
Hermes Agent 的核心是一个对话循环(Conversation Loop),定义在 run_agent.py 中。它的工作流程如下:
- 构建系统提示词(System Prompt): 根据当前配置、启用的工具集、已加载的技能、用户记忆等信息,组装一个完整的系统提示词。这个提示词告诉模型”你是谁、你能做什么、你需要遵循什么规则”。
-
调用 LLM: 将系统提示词和对话历史发送给模型(通过 OpenAI 兼容的 API 格式),等待模型响应。
-
解析响应: 模型可能返回两种结果:
- 工具调用(Tool Calls): 模型请求执行某个操作(如运行终端命令、读写文件、搜索网页)。Agent 会分派对应的工具处理器,执行后将结果追加到对话历史,继续循环。
- 文本响应(Text Response): 模型直接回复用户,本轮对话结束。
- 上下文压缩: 当对话长度接近模型的上下文窗口上限时,Agent 会自动触发上下文压缩(Context Compression),保留关键信息,丢弃冗余内容,确保对话能继续进行。
这个循环会在达到最大轮次(默认 90 轮)或模型返回最终回复时终止。
3.3 工具系统:赋予 Agent “行动力”
Hermes Agent 的强大很大程度上来源于其丰富的工具集(Toolsets)。每个工具集是一组相关工具的集合,可以按需启用或禁用。以下是主要的工具集分类:
| 工具集 | 功能 |
|---|---|
terminal |
执行 Shell 命令、管理后台进程 |
file |
文件读取、写入、搜索、差异编辑 |
web |
网页搜索与内容提取 |
browser |
浏览器自动化(支持 Browserbase、Camofox、本地 Chromium) |
vision |
图像分析与理解 |
image_gen |
AI 图像生成 |
tts |
文本转语音 |
memory |
跨会话持久记忆 |
session_search |
搜索历史对话记录 |
delegation |
子任务委派(多智能体) |
cronjob |
定时任务调度 |
clarify |
向用户发起澄清问题 |
messaging |
跨平台消息发送 |
todo |
会话内任务规划与追踪 |
homeassistant |
智能家居控制 |
spotify |
Spotify 音乐播放控制 |
工具的自动发现机制非常巧妙:任何放在 tools/ 目录下、包含 registry.register() 调用的 Python 文件都会被自动加载。这意味着开发者只需按照约定编写工具,无需手动注册。
3.4 技能系统(Skills):Agent 的”程序性记忆”
如果说工具是 Agent 的”手和脚”,那技能(Skills)就是它的”经验和知识”。
技能是存储在 ~/.hermes/skills/ 目录下的 Markdown 文件(SKILL.md),它们描述了特定任务的执行流程、最佳实践和常见陷阱。例如:
github-pr-workflow告诉 Agent 如何正确地进行 GitHub PR 审查minecraft-modpack-server指导 Agent 如何搭建模组服务器evaluating-llms-harness让 Agent 知道如何使用 lm-eval 评估 LLM
技能的独特之处在于自我进化:当 Agent 在一次复杂任务中找到了有效的工作流程,或者用户纠正了它的某个错误做法,它可以把这个经验保存为新的技能。随着时间推移,Agent 会越来越适配用户的特定环境和需求。
技能的维护由 Curator(策展人)后台系统自动管理——它会定期扫描技能使用情况,将长时间未使用的技能标记为”过时”并归档,但永远不会自动删除,确保知识不会丢失。
3.5 记忆系统(Memory):跨会话的持久化
Hermes Agent 拥有两套互补的记忆机制:
- 用户记忆(User Profile): 存储关于用户的信息——名字、偏好、沟通风格、工作环境、时区等。这些信息会在每次会话开始时注入,让 Agent 从一开始就”认识你”。
- Agent 记忆(Memory Notes): 存储 Agent 在交互中发现的环境事实、项目约定、工具特性、经验教训等。
两者都使用声明式的事实语句存储(而非指令式),确保记忆在不同会话中仍然准确有用。此外,Agent 还支持多种记忆后端插件(内置存储、Honcho、Mem0 等),用户可以根据自己的隐私和性能需求选择。
3.6 多平台网关(Gateway):一个 Agent,处处在线
Gateway 是 Hermes Agent 最具特色的组件之一。它本质上是一个消息路由器,将同一个 Agent 实例同时连接到多个通讯平台:
- 即时通讯: Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Mattermost、微信、钉钉、飞书、企业微信
- 邮件: 通过 IMAP/SMTP 收发邮件
- Webhook: 接收来自任意 HTTP POST 的事件触发
- API Server: 提供 REST API,供 Open WebUI 等外部系统集成
网关的关键设计在于会话隔离:每个平台、每个频道、每个对话线程都有独立的会话上下文,互不干扰。同时,Agent 在所有平台上拥有完全相同的工具访问权限——你在微信上问它写代码,它和你在终端里得到的能力完全一致。
3.7 定时任务系统(Cron):让 Agent 替你值班
Hermes Agent 内置了一个持久化的定时任务调度器。你可以设置 Agent 按分钟、小时、天或复杂的 cron 表达式自动执行任务:
hermes cron create "0 9 * * *" --prompt "每天早上9点检查服务器状态并报告"
hermes cron create "every 30m" --prompt "监控磁盘使用率,超过80%时提醒我"
hermes cron create "30m" --prompt "查看最新的 AI 研究论文,总结3篇值得关注的"
定时任务支持脚本预处理(在 Agent 运行前先收集数据)、技能加载、上下文链式传递(A 任务的输出作为 B 任务的输入)、工作目录绑定(加载特定项目的 AGENTS.md 规则)以及多平台投递。
3.8 多智能体协作(Delegation & Kanban)
当任务复杂到单个 Agent 无法高效完成时,Hermes Agent 支持两种多智能体模式:
- Delegate Task: 在会话内同步派生子 Agent,每个子 Agent 拥有独立的对话上下文和终端会话,可以并行工作。适合快速的研究、代码审查、数据收集等子任务。
- Kanban 看板: 一个基于 SQLite 的持久化协作系统,支持多 Profile(多实例)之间通过看板进行任务分发、进度追踪和协作。Dispatcher 会自动回收超时任务、促进任务流转、自动暂停连续失败的子任务。
3.9 安全机制
作为一个能执行 Shell 命令的 Agent,安全自然是重中之重。Hermes Agent 提供了多层安全防护:
- 命令审批: 默认情况下,危险命令(如
rm -rf、git reset --hard)需要用户手动批准。支持 “智能模式”——用辅助 LLM 自动放行低风险命令,仅对高风险命令提示审批。 - Tirith 安全扫描: 对网络请求和命令进行安全扫描,标记可疑行为。
- 密钥脱敏: 可配置自动检测和遮蔽 API 密钥、Token 等敏感信息。
- 网站黑名单: 可配置禁止访问的网站列表。
- 配置文件隔离(Profiles): 支持多实例运行,每个实例有独立的配置、会话、技能和记忆,避免跨场景数据泄露。
四、安装方式:从零到运行
Hermes Agent 的安装非常简洁。以下是几种常见的安装方式。
4.1 一键安装(推荐)
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
这个安装脚本会自动完成以下工作:
- 克隆 Hermes Agent 源代码到
~/.hermes/hermes-agent/ - 安装 Python 依赖
- 创建配置文件
~/.hermes/config.yaml和.env - 设置 PATH 环境变量
4.2 手动安装
如果你更喜欢手动控制安装过程:
# 克隆仓库
git clone https://github.com/NousResearch/hermes-agent.git ~/.hermes/hermes-agent
cd ~/.hermes/hermes-agent
# 创建虚拟环境(推荐)
python3 -m venv .venv
source .venv/bin/activate
# 安装依赖
pip install -e .
# 初始化配置
hermes setup
4.3 配置模型和提供商
安装完成后,第一步是配置模型。运行:
hermes model
这会启动一个交互式选择器,列出所有支持的提供商和模型。常见的选择包括:
| 提供商 | 认证方式 | 环境变量 |
|---|---|---|
| OpenRouter | API Key | OPENROUTER_API_KEY |
| Anthropic | API Key | ANTHROPIC_API_KEY |
| Google Gemini | API Key | GOOGLE_API_KEY |
| DeepSeek | API Key | DEEPSEEK_API_KEY |
| 通义千问(DashScope) | API Key | DASHSCOPE_API_KEY |
| 智谱(GLM) | API Key | GLM_API_KEY |
| MiniMax | API Key | MINIMAX_API_KEY |
| 月之暗面(Kimi) | API Key | KIMI_API_KEY |
| Nous Portal | OAuth | hermes login |
| GitHub Copilot | OAuth | hermes model → Copilot |
如果你使用 OpenRouter(推荐,因为它汇集了几乎所有主流模型),只需设置一个 OPENROUTER_API_KEY 环境变量,就能在几百个模型之间自由切换。
4.4 验证安装
hermes doctor
这个命令会检查所有依赖和配置,告诉你哪些组件就绪了、哪些还需要设置。
4.5 开始使用
# 交互式对话
hermes
# 单次查询(非交互式)
hermes chat -q "今天北京的天气怎么样?"
# 恢复上一次会话
hermes --continue
4.6 配置多平台网关
如果你希望在微信、Telegram 等平台上使用 Hermes Agent:
hermes gateway setup
这会引导你完成各个平台的配置——获取 Bot Token、设置 Webhook、选择默认频道等。配置完成后:
hermes gateway install # 安装为后台服务
hermes gateway start # 启动
hermes gateway status # 检查状态
4.7 系统要求
- 操作系统: Linux、macOS、WSL2(Windows Subsystem for Linux)
- Python: 3.10+
- 内存: 建议 4GB 以上
- 磁盘: 基础安装约 200MB,技能和会话会随使用增长
五、核心功能详解:它到底能做什么?
5.1 软件开发助手
这是 Hermes Agent 最自然的使用场景。它不仅能回答问题,还能直接操作你的代码库:
# 让它帮你完成一个功能
hermes -s github-pr-workflow
# 启动交互式开发会话
hermes --worktree # 隔离的 git worktree 模式,支持并行 Agent
Agent 可以:
- 阅读和分析代码库(通过
pygount统计代码行数、语言分布) - 编写和修改代码(直接编辑文件)
- 运行测试和构建(通过终端工具)
- 创建和审查 Pull Request(通过
ghCLI) - 管理 Issue 和项目看板
5.2 系统管理和运维
Agent 可以连接到你的服务器,执行系统管理任务:
- 监控磁盘、内存、CPU 使用率(配合 Cron 定时任务自动巡检)
- 管理 Docker 容器和 Kubernetes 集群
- 查看和分析日志文件
- 配置防火墙和网络
- 自动化部署流程
一个典型的场景是设置一个定时任务,每天早上自动检查服务器状态,如果发现问题就通过 Telegram 或微信向你发送告警。
5.3 内容创作
从技术博客到社交媒体文案,从数据可视化到信息图表,Hermes Agent 都能胜任:
- 撰写和编辑 Markdown 文档
- 生成数据图表和架构图(SVG)
- 制作 ASCII 艺术和像素画
- 翻译和多语言内容处理
- YouTube 视频内容总结和分析
5.4 生活助手
这也是 Hermes Agent 最吸引人的方面之一。通过不同的技能,它可以:
- 智能家居控制: 通过 Home Assistant 或 Philips Hue 技能,控制灯光、开关等
- 音乐播放: Spotify 技能支持搜索、播放列表管理、设备切换
- 邮件管理: Himalaya 技能让你用自然语言搜索、阅读、发送邮件
- 日程管理: Google Calendar 技能可以查询和创建日程
- 地图导航: 基于 OpenStreetMap 的地理编码、POI 搜索和路线规划
- 股票和金融市场数据: Polymarket 技能查询市场价格和历史
六、对生活的改变:一个 AI Agent 的日常
如果说前面的内容偏技术,这一节我们聊聊 Hermes Agent 如何真正改变日常工作和生活的效率。
6.1 从”工具切换”到”一个入口”
在接触 Hermes Agent 之前,大多数人的工作流是这样的:
- 用 ChatGPT 回答问题
- 用 Claude 写代码
- 用 GitHub Copilot 在 IDE 里补全
- 用 Telegram Bot 查天气
- 用搜索引擎找资料
- 用各种脚本做自动化
Hermes Agent 将所有这些能力整合到一个入口。 不管你在终端里、在微信上、在 Discord 频道里,还是在 IDE 里,面对的是同一个 Agent,它有相同的记忆、相同的技能、相同的工具访问权限。
6.2 记忆带来的”默契感”
最直观的改变来自记忆系统。第一次使用时,你需要告诉 Agent 你的工作环境、偏好和项目结构。但一旦它记住了这些,后续的交互就会变得异常高效:
- 不需要每次都说”请用中文回答”
- 不需要重复解释项目的目录结构
- 不需要重新设置编码规范
- 它记得上次你纠正过它的错误做法
这种”默契感”会随着使用时间不断增强——Agent 会积累越来越多的技能和记忆,越来越贴合你的工作方式。
6.3 7×24 的”数字分身”
通过多平台网关和定时任务的组合,Hermes Agent 可以成为一个真正的”数字分身”——它同时在多个平台上在线,能替你完成重复性的工作:
- 早上 9 点: 自动检查服务器状态,汇总到微信发送给你
- 每 30 分钟: 监控磁盘使用率,超过阈值时通过 Telegram 告警
- 每天下午: 浏览最新的 AI 论文,生成阅读摘要
- 随时: 在 Discord 上回答团队成员的技术问题
- 即时: 在微信上帮你查汇率、写邮件、翻译文档
6.4 降低技术门槛
对于非技术用户来说,Hermes Agent 的即时通讯接口极大地降低了使用 AI 的门槛。不需要懂命令行、不需要配置开发环境、不需要理解 API——只需要在微信或 Telegram 上发一条消息,就能让 Agent 帮你完成任务。
对于技术用户来说,终端接口的强大之处在于它能直接操作文件系统、运行命令、处理复杂的数据管道——这些都是网页版 AI 助手无法做到的。
6.5 开源带来的安全感和掌控感
在一个 AI 工具快速迭代、闭源产品随时可能改变定价策略或功能限制的时代,Hermes Agent 的开源属性提供了一种难得的安全感:
- 你知道它在你机器上运行,数据不会偷偷上传到第三方
- 你可以审计每一行代码,确认它没有在你不知情的情况下执行操作
- 你可以自由修改、定制、扩展,不受厂商锁定
- 即使某天 Nous Research 停止维护,社区依然可以继续发展这个项目
七、与其他 AI 工具的对比
| 特性 | Hermes Agent | Claude Code | OpenAI Codex | ChatGPT |
|---|---|---|---|---|
| 开源 | ✅ | ❌ | ❌ | ❌ |
| 多平台 | ✅(10+) | ❌ | ❌ | ❌ |
| 多模型支持 | ✅(20+ 提供商) | ❌ | ❌ | ❌ |
| 持久记忆 | ✅ | 有限 | ❌ | ❌ |
| 定时任务 | ✅ | ❌ | ❌ | ❌ |
| 自我进化(技能) | ✅ | ❌ | ❌ | ❌ |
| 本地运行 | ✅ | ✅ | ✅ | ❌ |
| 免费使用 | ✅(需自带 API Key) | 免费额度 | 免费额度 | 有限免费 |
| 编程能力 | 优秀 | 优秀 | 优秀 | 良好 |
| 通用任务 | 优秀 | 弱 | 弱 | 优秀 |
可以看出,Hermes Agent 的优势不在于某个单项能力的极致,而在于综合能力的全覆盖——它可能是唯一一个同时具备编程助手、系统管理员、内容创作者、生活助手、定时值班员等多重身份的开源 AI Agent。
八、未来展望:Hermes Agent 的下一步
基于当前的路线图和社区趋势,Hermes Agent 的未来发展方向可能包括:
- 更强的多智能体协作: 更复杂的任务分解、更智能的子 Agent 调度、更好的跨 Agent 上下文共享。
-
更丰富的技能生态: 社区驱动的技能市场,让用户一键安装他人分享的工作流程。
-
更好的用户体验: 更直观的 TUI(文本用户界面)、更智能的命令建议、更流畅的多平台同步体验。
-
更深入的企业集成: 与企业内部系统(数据库、ERP、CRM)的对接能力。
-
更强大的本地模型支持: 随着开源模型的持续进步,完全在本地运行、无需云端 API 的 Agent 将越来越可行。
九、结语:不仅仅是工具,而是伙伴
在写这篇文章的过程中,我越来越深刻地感受到,Hermes Agent 代表的不仅仅是一个技术产品,而是一种新的 AI 使用范式——从”工具”到”伙伴”的转变。
传统的 AI 工具是被动的:你问它答,你命令它执行。而 Hermes Agent 通过记忆、技能和定时任务,展现出了某种”主动性”——它会记住你上次遇到的问题,会主动提醒你关注某个变化,会在学习新技能后自动应用到下一次任务中。
当然,这种”主动性”是完全可控的。所有的命令执行都需要审批,所有的记忆都是透明的,所有的行为都可以审计。正是这种”可控的自主性”,让 Hermes Agent 成为一个值得信赖的 AI 伙伴。
如果你还在犹豫是否要尝试一个开源的 AI Agent 框架,我的建议是:给它一个周末的时间。 安装、配置、和它聊聊天、让它帮你做几个小任务。你很可能在周一早上发现,你已经离不开它了。
附录:常用命令速查表
# 安装
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# 开始对话
hermes
# 单次查询
hermes chat -q "你的问题"
# 配置向导
hermes setup
# 选择模型
hermes model
# 管理工具
hermes tools
# 浏览技能
hermes skills browse
# 安装技能
hermes skills install <ID>
# 查看配置
hermes config edit
# 健康检查
hermes doctor
# 定时任务
hermes cron list
hermes cron create "30m" --prompt "你的任务描述"
# 会话管理
hermes sessions list
hermes sessions browse
# 网关管理
hermes gateway start/stop/status
# 更新
hermes update
项目地址: https://github.com/NousResearch/hermes-agent
在线文档: https://hermes-agent.nousresearch.com/docs/
许可证: MIT
本文基于 Hermes Agent 最新版本编写。由于开源项目迭代迅速,部分功能细节可能有所变化,建议以官方文档为准。
