在前面的 33 篇文章中,我们深入探讨了 Claude Code 和 Codex CLI 两大主流 AI 编程 Agent。它们各有特色:

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 的本质:

  1. 与 Claude Code/Codex 的差异 —— 不是功能的增减,而是架构哲学的不同
  2. 自我学习能力 —— Skills 系统如何让 Agent 从经验中进化
  3. 跨平台特性 —— 从本地终端到云端服务器,从 Linux 到 macOS,一套代码跑遍所有环境

一、与 Claude Code/Codex 的本质差异

1.1 架构哲学对比

三者最根本的差异不在于功能清单,而在于设计哲学

text
┌────────────────────────────────────────────────────────────────────┐
│                    三大 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 无关 的:

bash
# 一键切换不同的模型提供商
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 宕机时自动切换到备用
  • 合规要求 —— 某些行业要求数据不出境,可以用本地模型
  • 性能调优 —— 不同模型在不同任务上有不同表现,可以针对性选择
yaml
# ~/.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-mini

1.3 工具集 vs MCP:内置与外接的区别

Claude Code 通过 MCP Server 扩展能力,Codex 通过 exec 命令执行外部脚本。而 Hermes 采用了**内置工具集(Toolsets)**的设计:

bash
# 查看可用的工具集
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 功能对比矩阵

text
┌────────────────────┬──────────────┬──────────────┬──────────────┐
│ 功能               │ 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 能够:

  1. 记录经验 —— 每次完成任务后,将最佳实践固化下来
  2. 创建技能 —— 把经验打包成可复用的 SKILL.md 模块
  3. 分享技能 —— 通过 Skill Hub 与社区共享
  4. 安装技能 —— 像安装 npm 包一样安装他人的经验

这和 Claude Code 的 CLAUDE.md 有本质区别:

  • CLAUDE.md 是静态配置,需要手动编写和维护
  • Hermes Skills 是动态学习,可以从实际任务中自动提炼

2.2 Skills 的实际工作流程

让我们通过一个完整的例子来理解 Skills 如何工作。

场景:你第一次让 Hermes 帮你做 Python 项目的 CI/CD 集成。

bash
# 第一次:手动指导 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:

bash
# 将经验保存为可复用技能
hermes skills create ci-cd-python \
  --name "Python CI/CD 流水线配置" \
  --description "自动配置 Python 项目的 GitHub Actions CI/CD,
                 包含测试、覆盖率、安全扫描和 Docker 构建"

生成的 SKILL.md 文件:

markdown
---
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 镜像成功推送到 Registry

2.3 技能的安装与使用

其他开发者(或你在另一个项目中)可以直接安装这个技能:

bash
# 从 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 不是孤立的,它们可以组合使用:

bash
# 一个复杂的任务,需要多个技能协作
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 可以自动将成功经验提炼为技能:

bash
# 启用自动学习
hermes config set auto-learn true

# 之后的每次任务,Hermes 都会:
# 1. 记录任务类型和上下文
# 2. 评估任务完成质量
# 3. 如果质量达标,自动生成 SKILL.md 草稿
# 4. 提示用户确认或自动保存

随着使用时间的增长,你的 Hermes Agent 会积累越来越多的技能,变得越来越"聪明"和高效。

三、跨平台:一套代码,随处运行

3.1 平台支持矩阵

text
┌────────────────────┬──────────┬──────────┬──────────┬──────────┐
│ 特性               │ Linux    │ macOS    │ Windows  │ Docker   │
├────────────────────┼──────────┼──────────┼──────────┼──────────┤
│ 原生安装           │ ✅       │ ✅       │ ✅       │ N/A      │
│ 终端交互模式       │ ✅       │ ✅       │ ✅ (WSL) │ ✅       │
│ 后台服务模式       ||| ✅ (WSL) ||
│ 沙箱隔离           ||| 部分     ||
│ 文件系统操作       |||||
| Git 集成           |||||
│ 定时任务           ||| ✅ (schtasks) │ ✅  │
│ 浏览器自动化       |||||
│ 多实例并行         ||| ✅ (WSL) ||
│ 远程 SSH 控制      |||||
└────────────────────┴──────────┴──────────┴──────────┴──────────┘

3.2 统一安装体验

无论什么平台,安装方式高度一致:

bash
# 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 的真实场景:

text
┌─────────────────────────────────────────────────────────────────┐
│                    跨平台协作场景                                 │
│                                                                 │
│  开发者 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 支持让它可以轻松部署到任何云环境:

bash
# 本地 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.sh

Docker 部署特别适合:

  • CI Runner —— 在云端按需启动 Hermes 执行批量任务
  • 定时巡检 —— 长期运行的 Agent 实例,定期检查代码质量
  • 团队共享 —— 标准化的 Agent 环境,消除"在我机器上能跑"的问题

3.5 远程 SSH 控制

Hermes 可以通过 SSH 控制远程服务器,这是很多 AI Agent 不具备的能力:

bash
# 通过 SSH 管理远程服务器
hermes run "SSH 到 prod-server,检查以下事项:
  1. 磁盘使用率是否超过 80%
  2. 最近 24 小时是否有异常日志
  3. 服务进程是否正常运行
  4. 内存使用趋势" \
  --ssh-host prod-server.example.com \
  --ssh-user deploy

这种能力让 Hermes 不仅是编程助手,还可以成为 运维助手 —— 自动巡检、故障排查、性能分析。

四、选型决策指南

基于前文的分析,这里给出一个实用的选型决策树:

text
                    你需要 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 的核心差异化在于:

  1. Provider 无关 —— 20+ 模型提供商随意切换,不被任何厂商锁定
  2. Skills 自我学习 —— 从经验到技能,Agent 越用越聪明,经验可分享可复用
  3. 真正的跨平台 —— Linux/macOS/Windows/Docker 一套代码全支持,云端部署开箱即用
  4. 丰富的内置工具集 —— 30+ 工具无需额外配置,浏览器自动化、定时任务、远程 SSH 开箱即用
  5. 开源生态 —— 完全开源,社区驱动的 Skill Hub,持续扩展

Hermes 最适合的场景是:

  • 团队需要统一的 AI Agent 标准
  • 希望在多个平台上保持一致的使用体验
  • 需要通过技能复用沉淀团队经验
  • 有数据合规要求或需要使用本地模型
  • 需要定时任务、远程管理等扩展能力

下篇预告

下一篇将深入 Hermes Agent 的实际使用 —— 安装与 setup。我们将从零开始:一键安装脚本如何工作?hermes setup 交互式配置有哪些选项?hermes doctor 能帮你诊断哪些环境问题?如果你是第一次使用 Hermes,下一篇就是你的最佳起点。