Hermes 是什么?—— 与 Claude Code/Codex 的本质差异、自我学习、跨平台
简介
在前面的 33 篇文章中,我们深入探讨了 Claude Code 和 Codex CLI 两大主流 AI 编程 Agent。它们各有特色:
- Claude Code 凭借 Anthropic 强大的模型能力和精细的权限管理,成为了商业级 AI 编程助手的标杆
- Codex CLI 以沙箱安全和 OpenAI 模型生态见长,在批量处理和 CI/CD 集成方面表现突出
但如果你正在寻找一个开源的、跨平台的、能够自我学习和进化的 AI Agent 框架,那么今天的主角 —— Hermes Agent —— 可能会彻底改变你对 AI 编程工具的认知。
Hermes 不是另一个"能帮你写代码的聊天机器人"。它是一个完整的 AI 代理操作系统。
本文将从三个核心维度剖析 Hermes 的本质:
- 与 Claude Code/Codex 的差异 —— 不是功能的增减,而是架构哲学的不同
- 自我学习能力 —— Skills 系统如何让 Agent 从经验中进化
- 跨平台特性 —— 从本地终端到云端服务器,从 Linux 到 macOS,一套代码跑遍所有环境
一、与 Claude Code/Codex 的本质差异
1.1 架构哲学对比
三者最根本的差异不在于功能清单,而在于设计哲学:
┌────────────────────────────────────────────────────────────────────┐
│ 三大 Agent 架构哲学对比 │
├──────────────────┬──────────────────┬──────────────────────────────┤
│ │ Claude Code │ Codex CLI │
│ │ │ │
│ 设计目标 │ 开发者的日常 │ 安全的自主编码 │
│ │ 编程伴侣 │ │
│ │ │ │
│ 核心架构 │ 单体应用 │ CLI 工具 + 沙箱容器 │
│ │ (npm 全局安装) │ │
│ │ │ │
│ 模型绑定 │ 仅 Anthropic │ 仅 OpenAI │
│ │ Claude 系列 │ 模型系列 │
│ │ │ │
│ 扩展机制 │ MCP Server │ exec 命令 + 结构化输出 │
│ │ + Hooks │ │
│ │ │ │
│ 记忆能力 │ CLAUDE.md │ 无持久记忆 │
│ │ (项目级上下文) │ (每次重新初始化) │
│ │ │ │
│ 学习进化 │ 无 │ 无 │
│ │ (每次都是全新的) │ │
│ │ │ │
│ 部署形态 │ 本地终端 │ 本地 / CI │
│ │ │ Runner │
│ │ │ │
│ 开源程度 │ 闭源 │ 开源 (Apache 2.0) │
│ │ │ │
├──────────────────┼──────────────────┴──────────────────────────────┤
│ Hermes Agent │ 开源 AI 代理操作系统 │
│ │ │
│ │ • Provider 无关:20+ 模型提供商随意切换 │
│ │ • Skills 系统:可安装、创建、分享的技能模块 │
│ │ • 跨平台:Linux / macOS / Windows + Docker │
│ │ • 持久记忆:跨会话学习,Agent 越用越聪明 │
│ │ • 工具集:30+ 内置工具,可扩展 │
│ │ • 定时任务:Cron 风格自动化执行 │
│ │ • 多实例:并行运行多个 Agent 实例 │
└──────────────────┴──────────────────────────────────────────────────┘1.2 Provider 无关性:不被厂商锁定
Claude Code 只能用 Claude,Codex 只能用 OpenAI。而 Hermes 的设计从第一天起就是 Provider 无关 的:
# 一键切换不同的模型提供商
hermes setup --provider anthropic # Claude 系列
hermes setup --provider openai # GPT/o 系列
hermes setup --provider openrouter # 聚合路由(50+ 模型)
hermes setup --provider deepseek # DeepSeek
hermes setup --provider ollama # 本地模型
hermes setup --provider gemini # Google Gemini
hermes setup --provider groq # Groq 高速推理
hermes setup --provider together # Together AI
# ... 总共 20+ 提供商这意味着:
- 成本优化 —— 可以根据任务复杂度选择不同价位的模型
- 高可用 —— 某个 Provider 宕机时自动切换到备用
- 合规要求 —— 某些行业要求数据不出境,可以用本地模型
- 性能调优 —— 不同模型在不同任务上有不同表现,可以针对性选择
# ~/.config/hermes/config.yaml
providers:
primary:
name: openrouter
model: anthropic/claude-sonnet-4-20250514
fallback:
name: openai
model: o4-mini
local:
name: ollama
model: llama3.3:70b
# 根据任务类型自动选择模型
routing:
code_generation:
provider: primary
model: anthropic/claude-sonnet-4-20250514
security_audit:
provider: primary
model: anthropic/claude-opus-4-20250514
quick_question:
provider: local
model: llama3.3:70b
batch_processing:
provider: fallback
model: o4-mini1.3 工具集 vs MCP:内置与外接的区别
Claude Code 通过 MCP Server 扩展能力,Codex 通过 exec 命令执行外部脚本。而 Hermes 采用了**内置工具集(Toolsets)**的设计:
# 查看可用的工具集
hermes tools list
# 输出示例:
# ┌───────────────────┬─────────┬──────────────┐
# │ Toolset │ Status │ Dependencies │
# ├───────────────────┼─────────┼──────────────┤
# │ shell │ ✅ on │ none │
# │ read_file │ ✅ on │ none │
# │ write_file │ ✅ on │ none │
# │ patch │ ✅ on │ none │
# │ search_files │ ✅ on │ none │
# │ terminal │ ✅ on │ none │
# │ browser │ ✅ on │ playwright │
# │ memory │ ✅ on │ none │
# │ cron │ ✅ on │ none │
# │ fetch │ ✅ on │ none │
# │ ... 30+ tools │ │ │
# └───────────────────┴─────────┴──────────────┘内置工具的优势在于:
- 零配置 —— 安装即用,不需要额外安装 Server
- 统一管理 —— 所有工具的权限、配置在一个地方控制
- 一致性 —— 工具的行为和接口经过统一设计
1.4 功能对比矩阵
┌────────────────────┬──────────────┬──────────────┬──────────────┐
│ 功能 │ Claude Code │ Codex CLI │ Hermes Agent │
├────────────────────┼──────────────┼──────────────┼──────────────┤
│ 代码生成/编辑 │ ✅ │ ✅ │ ✅ │
│ PR Review │ ✅ │ ✅ │ ✅ │
│ 沙箱安全 │ ❌ │ ✅ | 可选 ✅ │
│ Provider 切换 │ ❌ │ ❌ │ ✅ 20+ │
│ 持久记忆 │ 部分 ✅ │ ❌ │ ✅ │
│ 自我学习(Skills) │ ❌ │ ❌ │ ✅ │
│ 定时任务 │ ❌ │ ❌ │ ✅ │
│ 跨平台部署 │ 部分 │ 部分 │ ✅ 全平台 │
│ 开源 │ ❌ │ ✅ │ ✅ │
│ MCP 集成 │ ✅ │ ❌ │ ✅ │
│ 多 Agent 协作 │ 子 Agent ✅ │ ❌ │ ✅ │
│ 技能市场 │ ❌ │ ❌ │ ✅ Hub │
│ 本地模型支持 │ ❌ │ ❌ │ ✅ │
│ 浏览器自动化 │ 需 MCP │ ❌ │ ✅ 内置 │
│ Git 集成 │ ✅ │ ✅ │ ✅ │
│ CI/CD 集成 │ ✅ │ ✅ │ ✅ │
│ 成本控制 │ ✅ │ ✅ │ ✅ │
│ 企业级部署 │ ✅ │ 部分 │ ✅ │
└────────────────────┴──────────────┴──────────────┴──────────────┘二、自我学习:从经验到技能的进化之路
2.1 什么是 Skills 系统?
Hermes 最独特的能力是 Skills(技能)系统。简单来说,Skills 让 Hermes Agent 能够:
- 记录经验 —— 每次完成任务后,将最佳实践固化下来
- 创建技能 —— 把经验打包成可复用的 SKILL.md 模块
- 分享技能 —— 通过 Skill Hub 与社区共享
- 安装技能 —— 像安装 npm 包一样安装他人的经验
这和 Claude Code 的 CLAUDE.md 有本质区别:
- CLAUDE.md 是静态配置,需要手动编写和维护
- Hermes Skills 是动态学习,可以从实际任务中自动提炼
2.2 Skills 的实际工作流程
让我们通过一个完整的例子来理解 Skills 如何工作。
场景:你第一次让 Hermes 帮你做 Python 项目的 CI/CD 集成。
# 第一次:手动指导 Hermes 完成 CI/CD 配置
hermes run "帮我配置 GitHub Actions CI/CD,要求:
1. Python 3.11 环境
2. pytest 测试
3. 代码覆盖率 >= 80%
4. 安全扫描(bandit + safety)
5. 只有 main 分支发版时才构建 Docker 镜像"Hermes 执行完成后,你可以将这次成功的经验保存为 Skill:
# 将经验保存为可复用技能
hermes skills create ci-cd-python \
--name "Python CI/CD 流水线配置" \
--description "自动配置 Python 项目的 GitHub Actions CI/CD,
包含测试、覆盖率、安全扫描和 Docker 构建"生成的 SKILL.md 文件:
---
name: ci-cd-python
description: "Python CI/CD 流水线配置"
version: 1.0.0
author: your-name
tags: [ci-cd, python, github-actions, docker]
---
# Python CI/CD 流水线配置
## 适用场景
- 新建 Python 项目需要配置 CI/CD
- 将 CI/CD 从其他平台迁移到 GitHub Actions
- 标准化团队的 Python 项目构建流程
## 前置条件
- 项目在 GitHub 上
- 已有 requirements.txt 或 pyproject.toml
- Python >= 3.11
## 执行步骤
### 1. 检测项目结构
```bash
# 检查项目使用的依赖管理方式
if [ -f "pyproject.toml" ]; then
echo "使用 pyproject.toml"
elif [ -f "requirements.txt" ]; then
echo "使用 requirements.txt"
elif [ -f "setup.py" ]; then
echo "使用 setup.py"
else
echo "未找到依赖配置文件,需要先初始化"
fi
```
### 2. 生成 GitHub Actions 工作流
创建 `.github/workflows/ci.yml`:
```yaml
# ... (完整的 CI 配置)
```
### 3. 配置 Docker 构建
创建 `Dockerfile`:
```dockerfile
# ... (完整的 Dockerfile)
```
## 常见陷阱 (Pitfalls)
- ⚠️ 覆盖率阈值设为 80% 可能导致老旧项目 CI 失败,建议新项目设 80%,老项目设 60%
- ⚠️ bandit 会报告很多误报,建议配合 `-ll` 只报告高危问题
- ⚠️ Docker 构建时需要处理依赖缓存,否则构建会很慢
- ⚠️ GitHub Actions 的 `secrets.DOCKER_PASSWORD` 需要先配置
## 验证清单
- [ ] CI 在 PR 时自动运行
- [ ] 测试全部通过
- [ ] 覆盖率 >= 阈值
- [ ] 安全扫描无高危漏洞
- [ ] Docker 镜像成功推送到 Registry2.3 技能的安装与使用
其他开发者(或你在另一个项目中)可以直接安装这个技能:
# 从 Skill Hub 安装
hermes skills install ci-cd-python
# 或者从本地文件安装
hermes skills install ./my-skills/ci-cd-python/
# 安装后自动可用
hermes run "配置 CI/CD"
# Hermes 会自动匹配并应用 ci-cd-python 技能2.4 技能的组合与编排
Skills 不是孤立的,它们可以组合使用:
# 一个复杂的任务,需要多个技能协作
hermes run "为我的 Django 项目配置完整的 DevOps 流程"
# Hermes 会自动匹配并组合以下技能:
# 1. ci-cd-python -> CI/CD 流水线
# 2. docker-django -> Docker 化配置
# 3. deploy-aws -> AWS 部署
# 4. monitoring-setup -> 监控告警这种"乐高式"的技能组合是 Hermes 区别于其他 Agent 的核心竞争力。Claude Code 和 Codex 都需要在每次对话中重新描述完整需求,而 Hermes 的技能系统让 Agent 真正学会了"怎么做"。
2.5 自动学习模式
Hermes 还支持自动学习 —— 在任务完成后,Agent 可以自动将成功经验提炼为技能:
# 启用自动学习
hermes config set auto-learn true
# 之后的每次任务,Hermes 都会:
# 1. 记录任务类型和上下文
# 2. 评估任务完成质量
# 3. 如果质量达标,自动生成 SKILL.md 草稿
# 4. 提示用户确认或自动保存随着使用时间的增长,你的 Hermes Agent 会积累越来越多的技能,变得越来越"聪明"和高效。
三、跨平台:一套代码,随处运行
3.1 平台支持矩阵
┌────────────────────┬──────────┬──────────┬──────────┬──────────┐
│ 特性 │ Linux │ macOS │ Windows │ Docker │
├────────────────────┼──────────┼──────────┼──────────┼──────────┤
│ 原生安装 │ ✅ │ ✅ │ ✅ │ N/A │
│ 终端交互模式 │ ✅ │ ✅ │ ✅ (WSL) │ ✅ │
│ 后台服务模式 | ✅ | ✅ | ✅ (WSL) | ✅ |
│ 沙箱隔离 | ✅ | ✅ | 部分 | ✅ |
│ 文件系统操作 | ✅ | ✅ | ✅ | ✅ |
| Git 集成 | ✅ | ✅ | ✅ | ✅ |
│ 定时任务 | ✅ | ✅ | ✅ (schtasks) │ ✅ │
│ 浏览器自动化 | ✅ | ✅ | ✅ | ✅ |
│ 多实例并行 | ✅ | ✅ | ✅ (WSL) | ✅ |
│ 远程 SSH 控制 | ✅ | ✅ | ✅ | ✅ |
└────────────────────┴──────────┴──────────┴──────────┴──────────┘3.2 统一安装体验
无论什么平台,安装方式高度一致:
# Linux / macOS
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
# Windows (PowerShell)
Invoke-WebRequest -Uri "https://hermes-agent.nousresearch.com/install.ps1" | Invoke-Expression
# Docker
docker run -it nousresearch/hermes-agent:latest
# 安装后统一入口
hermes setup # 交互式配置
hermes doctor # 环境诊断
hermes run # 开始使用3.3 跨平台项目协作示例
一个团队在不同平台上使用 Hermes 的真实场景:
┌─────────────────────────────────────────────────────────────────┐
│ 跨平台协作场景 │
│ │
│ 开发者 A (macOS) 开发者 B (Linux) 开发者 C (Win) │
│ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ │
│ │ Hermes Agent │ │ Hermes Agent │ │ Hermes │ │
│ │ Claude Sonnet│ │ o3-mini │ │ Agent WSL │ │
│ │ + local llm │ │ + Groq │ │ DeepSeek │ │
│ └──────┬───────┘ └──────┬───────┘ └──────┬─────┘ │
│ │ │ │ │
│ └────────────────────────┼─────────────────────┘ │
│ │ │
│ ┌───────▼───────┐ │
│ │ Git 仓库 │ │
│ │ (GitHub) │ │
│ └───────┬───────┘ │
│ │ │
│ ┌───────▼───────┐ │
│ │ CI 服务器 │ │
│ │ (Linux) │ │
│ │ │ │
│ │ Hermes Agent │ │
│ │ 定时巡检 │ │
│ └───────────────┘ │
│ │
│ 所有开发者共享同一套 Skills: │
│ • ci-cd-python • code-review • security-audit │
│ • docker-setup • pr-template • changelog-gen │
└─────────────────────────────────────────────────────────────────┘每个开发者可以用自己偏好的模型和平台,但通过共享的 Skills 和 Git 仓库,保持了一致的工作流程和代码质量标准。
3.4 Docker 部署与云端运行
Hermes 的 Docker 支持让它可以轻松部署到任何云环境:
# 本地 Docker 运行
docker run -d \
--name hermes-agent \
-v ~/.config/hermes:/root/.config/hermes \
-v /path/to/project:/workspace \
-e OPENROUTER_API_KEY=$OPENROUTER_API_KEY \
nousresearch/hermes-agent:latest
# 云端部署 (示例: AWS EC2)
aws ec2 run-instances \
--image-id ami-0c55b159cbfafe1f0 \
--instance-type t3.medium \
--user-data file://hermes-bootstrap.sh
# 云端部署 (示例: GCP Compute Engine)
gcloud compute instances create hermes-runner \
--machine-type=e2-medium \
--image-family=ubuntu-2204-lts \
--metadata-from-file=startup-script=hermes-bootstrap.shDocker 部署特别适合:
- CI Runner —— 在云端按需启动 Hermes 执行批量任务
- 定时巡检 —— 长期运行的 Agent 实例,定期检查代码质量
- 团队共享 —— 标准化的 Agent 环境,消除"在我机器上能跑"的问题
3.5 远程 SSH 控制
Hermes 可以通过 SSH 控制远程服务器,这是很多 AI Agent 不具备的能力:
# 通过 SSH 管理远程服务器
hermes run "SSH 到 prod-server,检查以下事项:
1. 磁盘使用率是否超过 80%
2. 最近 24 小时是否有异常日志
3. 服务进程是否正常运行
4. 内存使用趋势" \
--ssh-host prod-server.example.com \
--ssh-user deploy这种能力让 Hermes 不仅是编程助手,还可以成为 运维助手 —— 自动巡检、故障排查、性能分析。
四、选型决策指南
基于前文的分析,这里给出一个实用的选型决策树:
你需要 AI 编程 Agent 吗?
│
├── 是
│
你的团队有合规/数据隐私要求?
│
┌─────────┴─────────┐
│ │
是 否
│ │
需要本地模型/数据不出境? 主要写代码?
│ │
┌─────┴─────┐ ┌─────┴─────┐
│ │ │ │
是 否 是 否
│ │ │ │
┌─────▼─────┐ ┌──▼──┐ ┌──▼──┐ ┌─────▼─────┐
│ Hermes + │ │ │ │ │ │ 需要自动化 │
│ Ollama │ │ │ │ │ │ 运维任务? │
│ (本地) │ │ │ │ │ └─────┬─────┘
└───────────┘ │ │ │ │ │
│ │ │ │ ┌──┴──┐
预算充足且 │ │ │ │ 是 否
想要最好 │ │ │ │ │ │
的编码体验 │ │ │ │ ┌──▼──┐┌▼──┐
│ │ │ │ │Hermes ││Claude│
┌─▼──┐┌▼──┐│┌───▼┐│ ││ Code │
│Claude││Codex││Codex ││ 跨平台││ 日常 │
│ Code ││ CLI ││ CI ││ 自动化││ 编码 │
│ 日常 ││ 批量││ 集成 ││ ││ │
│ 编码 ││ 处理││ 安全 ││ ││ │
└──────┘└─────┘└──────┘└───────┘└──────┘快速选择表
| 场景 | 推荐工具 | 理由 |
|---|---|---|
| 日常编码、Code Review | Claude Code | 交互体验好,模型能力强 |
| 批量处理、CI/CD 集成 | Codex CLI | 沙箱安全,自动化友好 |
| 多平台协作、技能复用 | Hermes Agent | 跨平台、Skills 系统 |
| 数据合规、本地部署 | Hermes + Ollama | 完全本地运行 |
| 运维自动化、远程管理 | Hermes Agent | SSH 控制、定时任务 |
| 混合使用 | 全部 | 各取所长 |
总结
Hermes Agent 不是一个简单的"能写代码的工具",而是一个完整的 AI 代理操作系统。
与 Claude Code 和 Codex CLI 相比,Hermes 的核心差异化在于:
- Provider 无关 —— 20+ 模型提供商随意切换,不被任何厂商锁定
- Skills 自我学习 —— 从经验到技能,Agent 越用越聪明,经验可分享可复用
- 真正的跨平台 —— Linux/macOS/Windows/Docker 一套代码全支持,云端部署开箱即用
- 丰富的内置工具集 —— 30+ 工具无需额外配置,浏览器自动化、定时任务、远程 SSH 开箱即用
- 开源生态 —— 完全开源,社区驱动的 Skill Hub,持续扩展
Hermes 最适合的场景是:
- 团队需要统一的 AI Agent 标准
- 希望在多个平台上保持一致的使用体验
- 需要通过技能复用沉淀团队经验
- 有数据合规要求或需要使用本地模型
- 需要定时任务、远程管理等扩展能力
下篇预告
下一篇将深入 Hermes Agent 的实际使用 —— 安装与 setup。我们将从零开始:一键安装脚本如何工作?hermes setup 交互式配置有哪些选项?hermes doctor 能帮你诊断哪些环境问题?如果你是第一次使用 Hermes,下一篇就是你的最佳起点。