跳转至

Hermes Agent 框架

Hermes Agent 是由 Nous Research 开发的开源 AI Agent 框架。它被设计为一个自我改进、持久化的 AI 助手,可以跨多个平台运行并从经验中学习。

什么是 Hermes Agent?

Hermes Agent 属于一类被称为**自主代理(Autonomous Agent)**的新型 AI 工具。与传统的聊天机器人只能回答问题不同,Hermes 可以:

  • 执行任务 — 运行 Shell 命令、读写文件、浏览网页
  • 从经验中学习 — 将可复用的流程保存为"技能(Skills)"
  • 记住上下文 — 跨会话保持持久化记忆
  • 随处运行 — 终端、Telegram、Discord、Slack、WhatsApp 等

核心差异

特性 传统聊天机器人 Hermes Agent
工具访问 ❌ 无 ✅ 68+ 内置工具
记忆 ❌ 每次重置 ✅ 跨会话持久化
学习 ❌ 静态 ✅ 从经验中创建技能
平台 ❌ 单一界面 ✅ 15+ 平台
可定制性 ❌ 有限 ✅ 完全控制

核心架构

1. Agent 循环

Hermes 的核心是**对话循环**:

┌─────────────────────────────────────────────────────────────┐
│                     Agent 循环                              │
├─────────────────────────────────────────────────────────────┤
│  1. 构建系统提示词                                          │
│     ├── 加载人设 (SOUL.md)                                  │
│     ├── 注入记忆                                            │
│     ├── 加载技能                                            │
│     └── 添加工具 Schema                                     │
│                                                             │
│  2. 调用 LLM                                               │
│     ├── 发送消息 + 工具 Schema                              │
│     └── 接收响应(文本或 tool_calls)                        │
│                                                             │
│  3. 处理响应                                                │
│     ├── 如果是 tool_calls → 执行工具 → 追加结果             │
│     └── 如果是文本 → 返回给用户                             │
│                                                             │
│  4. 循环直到完成或达到 max_turns                            │
└─────────────────────────────────────────────────────────────┘

2. 工具系统

Hermes 拥有 68+ 内置工具,按工具集组织:

工具集 工具 描述
terminal Shell 命令 执行 bash/zsh 命令
file read_file, write_file, patch 文件操作
web web_search, web_extract 网页访问
browser browser_navigate, browser_click 浏览器自动化
vision vision_analyze 图像分析
memory memory save/load 持久化记忆
skills skill_manage, skill_view 技能管理
delegation delegate_task 子代理生成
cronjob cronjob create/list 定时任务

3. 技能系统

技能是 Hermes 从经验中创建的**可复用流程**:

~/.hermes/skills/
├── devops/
│   ├── docker/
│   │   └── SKILL.md
│   └── kubernetes/
│       └── SKILL.md
├── programming/
│   ├── python-debugging/
│   │   └── SKILL.md
│   └── git-workflow/
│       └── SKILL.md
└── research/
    └── paper-analysis/
        └── SKILL.md

技能文件示例:

---
name: python-debugging
description: 有效调试 Python 应用程序
tags: [python, debugging, pdb]
---

# Python 调试指南

## 使用场景
- 应用崩溃
- 意外行为
- 性能问题

## 步骤
1. 阅读错误追踪信息
2. 使用 `pdb` 设置断点
3. 检查变量
4. 修复问题

## 常见陷阱
- 忘记导入模块
- 类型不匹配
- 偏移量错误

4. 记忆系统

Hermes 维护跨会话的**持久化记忆**:

# 用户档案(你是谁)
user:
  name: "Alice"
  role: "ML 工程师"
  preferences:
    language: "Python"
    editor: "VS Code"

# 记忆(环境事实)
memory:
  - "项目使用 PyTorch 2.0"
  - "部署在 AWS EC2"
  - "使用 pytest 测试"

记忆会注入到每次对话中,因此 Hermes 能记住: - 你的偏好和习惯 - 项目细节和约定 - 从过去会话中学到的经验

5. 多平台网关

同一个代理可以运行在多个平台上:

┌─────────────────────────────────────────────────────────────┐
│                    网关架构                                  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌──────────┐  ┌──────────┐  ┌──────────┐  ┌──────────┐  │
│   │ Telegram │  │ Discord  │  │  Slack   │  │ WhatsApp │  │
│   └────┬─────┘  └────┬─────┘  └────┬─────┘  └────┬─────┘  │
│        │             │             │             │         │
│        └─────────────┼─────────────┼─────────────┘         │
│                      │             │                       │
│                      ▼             ▼                       │
│              ┌───────────────────────────┐                 │
│              │        网关服务器         │                 │
│              │      (消息路由)         │                 │
│              └───────────┬───────────────┘                 │
│                          │                                 │
│                          ▼                                 │
│              ┌───────────────────────────┐                 │
│              │        Agent 核心         │                 │
│              │    (共享 Agent 循环)     │                 │
│              └───────────────────────────┘                 │
│                                                             │
└─────────────────────────────────────────────────────────────┘

工作原理:逐步解析

第 1 步:用户输入

当你发送消息时(通过终端、Telegram 等):

用户: "帮我调试这个 Python 脚本"

第 2 步:构建系统提示词

Hermes 构建包含以下内容的系统提示词:

你是 Hermes Agent,一个 AI 助手...

## 记忆
- 用户是 Python 开发者
- 项目使用 FastAPI

## 可用技能
- python-debugging: 调试 Python 应用
- git-workflow: Git 最佳实践

## 可用工具
- terminal: 运行 Shell 命令
- file: 读写文件
- vision: 分析图像

第 3 步:调用 LLM

Hermes 使用以下参数调用 LLM:

{
  "model": "claude-sonnet-4",
  "messages": [
    {"role": "system", "content": "..."},
    {"role": "user", "content": "帮我调试这个 Python 脚本"}
  ],
  "tools": [...]
}

第 4 步:工具执行

如果 LLM 请求工具:

{
  "tool_calls": [{
    "name": "terminal",
    "arguments": {
      "command": "python script.py 2>&1"
    }
  }]
}

Hermes 执行它并返回结果:

{
  "role": "tool",
  "content": "Traceback (most recent call last):\n  File \"script.py\", line 5\n    ..."
}

第 5 步:生成响应

LLM 基于工具输出生成响应:

Agent: "我找到问题了!第 5 行有语法错误..."

核心概念

1. 自我改进

Hermes 通过创建技能来学习:

用户: "你是怎么修复那个 bug 的?"
Agent: "让我把这个保存为技能..."
→ 创建 ~/.hermes/skills/debugging/syntax-error.md
→ 下次自动加载这个技能

2. 上下文压缩

当对话变长时,Hermes 会压缩上下文:

原始: 100 条消息
压缩后: 20 条消息 + 摘要

这使得对话可管理,同时不丢失重要信息。

3. 任务委派

Hermes 可以生成子代理进行并行工作:

delegate_task(
    goal="研究 GRPO 论文",
    context="查找最新的 GRPO 论文...",
    toolsets=["web", "file"]
)

4. 凭证池

多个 API 密钥自动轮换:

# ~/.hermes/.env
OPENROUTER_API_KEY_1=sk-...
OPENROUTER_API_KEY_2=sk-...
OPENROUTER_API_KEY_3=sk-...

Hermes 在它们之间轮换以避免速率限制。

架构图

┌─────────────────────────────────────────────────────────────┐
│                    Hermes Agent 架构                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                   用户界面层                         │   │
│  │  终端 │ Telegram │ Discord │ Slack │ WhatsApp        │   │
│  └─────────────────────┬───────────────────────────────┘   │
│                        │                                   │
│                        ▼                                   │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                   网关层                             │   │
│  │           (消息路由和平台适配器)                    │   │
│  └─────────────────────┬───────────────────────────────┘   │
│                        │                                   │
│                        ▼                                   │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                  Agent 核心                          │   │
│  │  ┌─────────────────────────────────────────────┐    │   │
│  │  │             对话循环                         │    │   │
│  │  │  构建提示 → 调用 LLM → 处理响应             │    │   │
│  │  └─────────────────────────────────────────────┘    │   │
│  │                        │                            │   │
│  │  ┌─────────────────────┼─────────────────────┐     │   │
│  │  │                     ▼                     │     │   │
│  │  │  ┌─────────────────────────────────────┐  │     │   │
│  │  │  │           工具调度                   │  │     │   │
│  │  │  │  terminal │ file │ web │ browser │ …  │  │     │   │
│  │  │  └─────────────────────────────────────┘  │     │   │
│  │  └───────────────────────────────────────────┘     │   │
│  └─────────────────────────────────────────────────────┘   │
│                        │                                   │
│  ┌─────────────────────┼─────────────────────┐             │
│  │                     ▼                     │             │
│  │  ┌─────────────────────────────────────┐  │             │
│  │  │          持久化存储                  │  │             │
│  │  │  记忆 │ 技能 │ 会话 │ 配置          │  │             │
│  │  └─────────────────────────────────────┘  │             │
│  └───────────────────────────────────────────┘             │
│                                                             │
└─────────────────────────────────────────────────────────────┘

使用场景

1. 软件开发

用户: "构建一个用户管理的 REST API"
Agent: 
1. 创建项目结构
2. 编写 FastAPI 代码
3. 添加数据库模型
4. 编写测试
5. 设置 CI/CD

2. 研究

用户: "分析最近关于机器人强化学习的论文"
Agent:
1. 搜索 arXiv
2. 下载论文
3. 提取关键发现
4. 创建总结报告

3. 系统管理

用户: "为我的服务器设置监控"
Agent:
1. 安装 Prometheus
2. 配置 Grafana 仪表板
3. 设置告警
4. 记录配置过程

与其他框架的比较

特性 Hermes Agent Claude Code AutoGPT
自我改进技能
持久化记忆
多平台 ✅ 15+ ❌ 仅终端 ❌ 仅网页
提供商无关 ✅ 20+ ❌ 仅 Anthropic ✅ OpenAI
开源 ✅ MIT ❌ 专有 ✅ MIT
本地模型

快速开始

安装

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

首次运行

# 交互式聊天
hermes

# 单次查询
hermes chat -q "法国的首都是哪里?"

# 设置向导
hermes setup

配置

# 查看配置
hermes config

# 编辑配置
hermes config edit

# 更改模型
hermes model

下一步

资源