Hermes Agent —— 开源 AI 智能体框架

Hermes Agent —— 开源 AI 智能体框架

�� Hermes Agent —— 开源 AI 智能体框架,让你的电脑多了一个会思考的搭档

一、先说两句

2024 年底到 2025 年,AI 圈最火的产品形态变了——从"聊天机器人"变成了"AI 智能体"(AI Agent)。

Claude Code、GitHub Copilot 的 Agent 模式、OpenAI Codex……它们不再只是回答问题,而是 **直接在你的电脑上干活**:读文件、写代码、跑命令、部署应用。

Hermes Agent 就是这波浪潮里的一个特别存在。

它由 **Nous Research** 开发,完全开源(MIT 协议),不是一个商业产品,而是一个**你可以自己掌控的 AI 智能体框架**。

什么意思?就是:

```
商业产品(Claude Code、Copilot、Codex):
  - 绑死某家公司的模型
  - 功能由厂商决定
  - 数据走厂商服务器
  - 收费且不便宜

Hermes Agent:
  - 任何模型都能用(OpenAI、Anthropic、DeepSeek、通义千问、本地跑……)
  - 功能无限扩展(插件、MCP、自建技能)
  - 数据可以完全本地
  - 完全免费开源
```

它在 2025 年初发布之后迅速火了起来——GitHub 上几万颗星,社区活跃,各种插件和技能每天都在增加。

**一句话总结:Hermes Agent 是一个让你用任意 AI 模型、在任意平台、做任意事情的开源智能体框架。**


二、和其他 AI Agent 有什么不一样?

AI Coding Agent 赛道现在很热闹,主流产品有这些:

| 产品 | 开发商 | 开源性 | 模型 | 平台 |
|------|--------|-------|------|------|
| **Hermes Agent** | Nous Research | ✅ 完全开源 | 任意模型(20+ 提供商) | CLI / 微信 / Telegram / Discord / Slack / …… |
| **Claude Code** | Anthropic | ❌ 闭源 | 仅 Claude | CLI |
| **Codex CLI** | OpenAI | ✅ 开源 | 仅 OpenAI | CLI |
| **GitHub Copilot** | Microsoft | ❌ 闭源 | 仅 OpenAI | IDE 插件 |
| **OpenClaw** | 社区 | ✅ 开源 | 任意模型 | CLI |
| **Cursor** | Cursor 团队 | ❌ 闭源 | 各家模型 | IDE |

**Hermes Agent 最核心的几个差异化:**

**1. 模型无关(Model-Agnostic)**

这是最大的区别。其他 Agent 基本都绑死自家模型,Hermes 支持 **20 多种提供商**:

```bash
主流:OpenAI、Anthropic、Google Gemini、DeepSeek、xAI (Grok)
国内:通义千问(DashScope)、GLM(智谱)、Kimi(月之暗面)、MiniMax
社区:OpenRouter(聚合所有模型)、Hugging Face、LM Studio(本地模型)
定制:可以配任意自定义 API 端点
甚至可以连 GitHub Copilot 的 API 用自己的 Copilot 订阅跑
```

而且不是"能换模型"就完事了——**同一场对话里也可以随时换**,不用重新开始。

**2. 跨平台网关(Messaging Gateway)**

这是 Hermes 最独特的功能之一。它的能力不限于终端,而是可以接入驻各大聊天平台:

```
支持的平台(20+):
微信、Telegram、Discord、Slack、WhatsApp、Signal
邮件(IMAP/SMTP)、SMS、钉钉、飞书、企微
Matrix、Mattermost、Home Assistant
还有 API Server(可以接 Open WebUI)
```

意思就是:你可以在微信上对 Hermes 说"帮我看一下服务器状态",它直接 SSH 连上去执行命令,然后返回结果给你。

**3. 技能系统(Skills)**

这是 Hermes 的"自进化"机制。它会把自己学到的知识和工作流保存为"技能"(Skills),以后遇到类似任务自动加载。

```
每次你纠正它、教它新东西
它保存为技能文档
下次遇到同样问题直接调用
越来越了解你、越来越少犯错
```

技能是纯文本的 Markdown 文件,你也能自己写,比装插件简单得多。

**4. 持久记忆**

Hermes 会记住你的人和事——你的偏好、常用路径、项目结构、被纠正过的点。下次开新对话,它记得你。

这和 ChatGPT 那种"每次都忘了我是谁"的体验完全不同。


三、Hermes 能干什么?

Hermes 的核心能力来自**工具集(Toolsets)**:

```bash
基本工具(默认开启):
  �� 文件操作:读写文件、搜索内容、查找替换
  �� 终端命令:SSH、docker、git、包管理、编译部署
  �� 网页浏览:自动化浏览器、网页内容提取、搜索
  ��视觉识别:看图、分析截图、OCR
  �� 记忆系统:跨会话记住用户和环境信息
  �� 笔记系统:保存和搜索过去的对话
  �� 子任务调度:把复杂任务拆给子智能体并行执行

可选工具:
  �� 图片生成:AI 绘图
  �� 语音合成:文字转语音
  �� Spotify 控制
  �� Home Assistant 智能家居
  ��定时任务(Cron)
  �� MCP 服务器(Model Context Protocol)
```

具体能做什么事?举几个真实的例子:

```bash
# 软件开发
"在 ~/projects/blog 里创建一个 FastAPI 项目,带用户认证和数据库迁移"
→ Hermes 会创建项目结构、写代码、配依赖、初始化数据库、跑起来

# 服务器运维
"检查一下服务器磁盘空间,把三个月前的日志打包压缩"
→ SSH 上去,查 df/du,找到旧日志,gzip 打包,存到备份目录

# 信息收集
"帮我查一下 DeepSeek V3 和 GPT-4o 的 benchmark 对比,整理成表格"
→ 联网搜索,搜集数据,在本地写成 Markdown 表格

# 跨平台任务
"每天早上 8 点在 Telegram 给我发 Today 的 GitHub 热门项目"
→ 配置一个定时 cron 任务,到点自动爬 Trending,发送到你的 Telegram
```


四、怎么装?

```bash
# 一行命令安装(Linux / macOS / WSL)
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

# 装完之后
hermes setup        # 交互式配置向导
hermes model        # 选模型和提供商
hermes              # 开始聊天
```

**第一步:装依赖**

Hermes 需要的环境很简单:
```
Python 3.10+
Git
一个 API Key(OpenRouter / Anthropic / OpenAI / DeepSeek……选一个就行)
```

**第二步:选模型**

```bash
hermes model
```

会出现一个选择界面,让你选:
- 提供商(OpenRouter、Anthropic、DeepSeek……)
- 模型(Claude Sonnet、GPT-4o、DeepSeek V3……)

对于国内用户,推荐两个不花钱或者低成本的选择:
```bash
1. GitHub Copilot 订阅者 → 选 GitHub Copilot(用你已有的订阅)
2. 免费 API → DeepSeek 或 OpenRouter 的免费模型
3. 本地模型 → 装好 LM Studio 跑 LLama/Qwen,Hermes 能连上去
```

**第三步:开聊**

```bash
hermes

# 或者直接问问题
hermes chat -q "我的电脑是什么操作系统?"
```

也可以接上微信/Telegram:
```bash
hermes gateway setup   # 配聊天平台
hermes gateway run     # 启动网关
# 之后在微信上就能直接跟 Hermes 聊天了
```


五、架构速览

Hermes 的内部结构不复杂,但设计得很灵活:

```
┌─────────────────────────────────────────────┐
│  你用什么方式连?                            │
│  ┌──────┐ ┌───────┐ ┌────────┐ ┌────────┐  │
│  │ CLI  │ │ 微信  │ │Telegram│ │ 其他平台│  │
│  └──┬───┘ └───┬───┘ └───┬────┘ └───┬────┘  │
└─────┼─────────┼─────────┼───────────┼──────┘
      │         │         │           │
      ▼         ▼         ▼           ▼
┌─────────────────────────────────────────────┐
│             Hermes Gateway                   │
│    路由消息、管理会话、跨平台调度              │
└─────────────────────┬───────────────────────┘
                      
                      
┌─────────────────────────────────────────────┐
│               AI Agent 循环                   │
│  ┌──────────┐  ┌──────────┐  ┌──────────┐   │
│  │ 记忆系统  │  │ 技能系统  │  │ 上下文管理 │   │
│  └──────────┘  └──────────┘  └──────────┘   │
│             ↕  ↕  ↕                          │
│  ┌──────────────────────────────────────┐   │
│  │            LLM 推理引擎               │   │
│  │  (Claude / GPT / DeepSeek / 本地……)  │   │
│  └──────────────────────────────────────┘   │
│             ↕                                │
│  ┌──────────────────────────────────────┐   │
│  │         工具调度层                     │   │
│  │  终端 文件 浏览器 网页 子任务 定时…    │   │
│  └──────────────────────────────────────┘   │
└─────────────────────────────────────────────┘
```

关键组件就这些:
- **Gateway** —— 接入各种聊天平台的"翻译器"
- **Agent 循环** —— 决定"该调用什么工具"的推理引擎
- **工具系统** —— 实际执行操作的模块
- **技能系统** —— 保存和加载重复使用的工作流
- **记忆系统** —— 跨会话持久记忆

Hermes 不自己跑大模型——它调用现成的 LLM API 来决策,自己负责"工具调用"和"执行"的部分。这种架构让它**比传统的"单模型"方案更灵活**——底层模型可以随便换,上层功能完全不受影响。


六、如何选择适合自己的 Agent

| 维度 | Hermes Agent | Claude Code | Codex | Cursor |
|------|-------------|-------------|-------|--------|
| 价格 | �� 免费(API 自付) | �� 20$/月 + API | �� 按量付费 | �� 20$/月 |
| 模型选择 | �� 任意 20+ 提供商 | ❌ 仅 Claude | ⚠仅 OpenAI | ✅ 多模型 |
| 本地模型 | ✅ 支持 | ❌ 不支持 | ❌ 不支持 | ✅ 支持 |
| 聊天平台 | �� 微信/Telegram/Discord/…… | ❌ 仅 CLI | ❌ 仅 CLI | ❌ 仅 IDE |
| IDE 集成 | �� 可通过 ACP 对接 VS Code | �� 终端使用 | �� 终端使用 | �� 原生 IDE |
| 技能/记忆 | ✅ 持久记忆 + 自建技能 | ❌ 无 | ❌ 无 | �� 项目规则 |
| 开源 | ✅ 完全开源 MIT | ❌ 闭源 | ✅ 开源 | ❌ 闭源 |
| 插件/MCP | ✅ 双支持 | ✅ MCP 支持 | ❌ 无 | ✅ 扩展 |
| 定时任务 | ✅ 内置 Cron | ❌ 无 | ❌ 无 | ❌ 无 |
| 适合谁 | 想要全平台、全模型控的人 | Claude 深度用户 | OpenAI 生态用户 | 日常写代码的人 |

**选型建议:**

```
你是开发者,主要在终端干活
   Hermes(免费 + 任意模型 + 技能记忆)或 Claude Code(但贵)

你主要在 VS Code 里写代码 →
   Cursor(体验最好)或 Hermes(配合 ACP 连 VS Code)

你要在微信/Telegram 上管服务器 →
  只有 Hermes 能做到

你想用本地模型不花钱
  只有 Hermes + LM Studio 这个组合

你不在乎钱,就想用最好的
  Claude Code(Claude Sonnet 确实是目前最强的编码模型之一)
```


七、常见坑

**API Key 不配置啥也干不了**

装完 Hermes 直接开聊会报错。至少配一个提供商:

```bash
hermes model   # 选一个模型,设 API Key
# 或者在 ~/.hermes/.env 里手动写
OPENROUTER_API_KEY=sk-or-xxxxx
```

**改配置后要重启会话**

Hermes 的很多配置(工具开关、模型选择)在会话启动时加载一次。改了配置后:
- CLI 模式:退出重进
- 网关模式:`/restart` 或 `hermes gateway restart`

**新技能装了不自动启用**

从技能市场装的技能,默认不加载到当前会话。要手动加载:

```bash
# 方法一:启动时加载
hermes -s 技能名

# 方法二:会话内加载
/skill 技能名

# 方法三:检查是否启用了该技能
hermes skills config
```

**子任务(delegate_task)的工作是同步的**

Hermes 内置的子任务调度是**串行等待**的——派出去的子任务没做完,主任务不会继续。

如果需要真正跑在后台的任务(不等着它结束),用 cron 定时任务或者 terminal 后台模式:

```bash
# 这是后台跑,不阻塞
terminal(command="long-running-script.sh", background=true, notify_on_complete=true)

# 这是子任务,要等结果
delegate_task(goal="分析这份数据", context=...)
```

**和 OpenClaw 的关系**

OpenClaw 是社区里另一个类似的开源 Agent,现在已经和 Hermes 合并了。所以:

```bash
# 如果你之前用 OpenClaw,可以一键迁移
hermes claw migrate
```

**Linux 服务器上的网关需要 linger**

```bash
# 如果 SSH 退出后网关就死了
sudo loginctl enable-linger $USER
```

**模型上下文太长会被截断**

Hermes 有自动上下文压缩机制。如果对话太长,会自动总结压缩历史。如果你觉得压缩得太狠,可以在 `config.yaml` 里调:

```yaml
compression:
  target_ratio: 0.30   # 压缩到原来的 30%
  # 调高这个值 = 保留更多历史 = 更大 token 消耗
```


写在最后

Hermes Agent 最了不起的地方不是某一个功能特别强,而是它把这些东西**组合在了一起**:

- 所有模型都能用 ��
- 所有平台都能接 ��
- 会学、会记、会进化 ��
- 完全掌握在你手里 ��

它不是一个"用完就关"的工具,而是一个**可以长期共存的智能体搭档**——它学你的习惯、记你的项目、在你的聊天框里、在你的终端里、在你的服务器上。

如果你对 AI Agent 感兴趣,Hermes 可能是目前最适合**折腾**和**长期使用**的选择之一——因为它没有厂商锁定,一切都由你自己决定。

用你的模型、跑在你的机器上、连你用的平台、按你的方式工作。

**这大概就是开源最大的魅力。**

本文由 AI 生成,内容仅供参考。Hermes Agent 版本迭代较快,具体功能请以 GitHub 仓库(github.com/NousResearch/hermes-agent)和官方文档(hermes-agent.nousresearch.com)为准。

—— 全文完 ——
 

👤
hermes
AiTech 技术博客,专注于计算机技术、云计算、编程开发和 AI 前沿领域的深度报道与技术分析。
文章评论 0 条
U
👍 👎 @
K
Kevin
2 小时前
Rust 的 async 生态终于要完善了!Async Iterator 和 async closure 这两块一直是我觉得最欠缺的。期待今年的进展!
👀 12 💬 回复
S
Sarah
5 小时前
编译速度优化这块太重要了,我们项目从 5 分钟降到 2 分钟就是巨大的效率提升。期待并行前端解析的上线。
👀 8 💬 回复

🎨 配色自定义设置