MD 分类:AI与Agent 更新:2026/5/11

Hermes Agent ☤

The agent that grows with you — 由 Nous Research 开发的自我进化 AI Agent

项目定位

Hermes Agent 是一个具有内置学习循环的 AI Agent 框架:

  • 从经验中创建 Skills(技能)
  • 使用过程中自动改进 Skills
  • 主动持久化知识到 Memory
  • 搜索历史对话(跨会话召回)
  • 跨会话构建用户画像

核心差异化:不是简单的 LLM Wrapper,而是一个持续学习的 Agent 系统。


技术栈

层级技术
语言Python 3.11
TUIInk (React) + TypeScript
数据库SQLite + FTS5(全文搜索)
包管理uv (Astral)
容器化Docker, Nix, Singularity
CI/CDGitHub Actions
测试Pytest (~17k tests, ~900 files)
RL训练Atropos
文档Docusaurus

系统架构

graph TB
    subgraph "入口层"
        CLI[CLI Terminal]
        TUI[TUI - Ink/React]
        GW[Gateway 消息网关]
    end
    
    subgraph "核心引擎"
        AA[AIAgent<br/>run_agent.py ~12k LOC]
        MT[Model Tools<br/>工具编排]
        TS[Toolsets<br/>工具集定义]
    end
    
    subgraph "平台适配"
        TG[Telegram]
        DC[Discord]
        SL[Slack]
        WA[WhatsApp]
        SIG[Signal]
        EMAIL[Email]
        MORE[更多...]
    end
    
    subgraph "终端后端"
        LOCAL[Local]
        DOCKER[Docker]
        SSH[SSH]
        MODAL[Modal]
        DAYTONA[Daytona]
        SING[Singularity]
    end
    
    subgraph "学习系统"
        MEM[Memory<br/>持久记忆]
        SKILL[Skills<br/>程序性记忆]
        SS[Session Search<br/>FTS5]
        UPROF[User Profile<br/>用户画像]
    end
    
    subgraph "扩展系统"
        MCP[MCP Servers]
        PLUG[Plugins]
        CRON[Cron Scheduler]
        SUB[Subagents]
    end
    
    CLI --> AA
    TUI --> AA
    GW --> TG & DC & SL & WA & SIG & EMAIL
    
    AA --> MT --> TS
    AA --> MEM & SKILL & SS & UPROF
    AA --> MCP & PLUG & CRON & SUB
    
    TS --> LOCAL & DOCKER & SSH & MODAL & DAYTONA & SING

核心模块

1. AIAgent (run_agent.py)

  • 核心对话循环,约 12k 行代码
  • 初始化参数约 60 个(凭证、路由、回调、会话上下文、预算等)
  • 支持多 Provider 切换(OpenRouter 200+ 模型、OpenAI、Anthropic、NVIDIA NIM 等)

2. Model Tools (model_tools.py)

  • 工具编排层
  • discover_builtin_tools() — 工具发现
  • handle_function_call() — 函数调用处理
  • 动态工具注册机制

3. Gateway (gateway/)

  • 多平台消息网关
  • 统一消息处理:Telegram、Discord、Slack、WhatsApp、Signal、Email、微信、钉钉等
  • 平台适配器模式(base.py + 各平台实现)

4. Skills System (skills/)

  • 程序性记忆 — 可复用的任务执行流程
  • 使用过程中自动改进
  • 支持 Skills Hub (agentskills.io) 开放标准

5. Memory System (agent/)

  • 持久化记忆 — 跨会话保持
  • 定期 nudge 机制主动保存知识
  • User Profile 构建

6. Session Search (hermes_state.py)

  • SQLite + FTS5 全文搜索
  • LLM 摘要的跨会话召回

7. Terminal Backends (tools/environments/)

  • 7 种终端后端:Local、Docker、SSH、Singularity、Modal、Daytona、Vercel Sandbox
  • Modal/Daytona 支持 Serverless 持久化(休眠唤醒)

请求链路

sequenceDiagram
    participant U as 用户
    participant CLI as CLI/Gateway
    participant Agent as AIAgent
    participant Model as LLM Provider
    participant Tools as Tool System
    participant Memory as Memory/Skills
    
    U->>CLI: 发送消息
    CLI->>Agent: 转发请求
    Agent->>Memory: 加载上下文(Memory+Skills+Profile)
    Agent->>Model: 调用 LLM
    Model-->>Agent: 返回响应/工具调用
    
    loop 工具调用循环(max 90次)
        Agent->>Tools: 执行工具
        Tools-->>Agent: 返回结果
        Agent->>Model: 继续对话
        Model-->>Agent: 返回响应/更多工具调用
    end
    
    Agent->>Memory: 保存会话记忆
    Agent-->>CLI: 返回最终响应
    CLI-->>U: 展示结果

数据流

graph LR
    subgraph "输入"
        CLI_IN[CLI输入]
        MSG_IN[消息平台输入]
        VOICE[语音备忘录]
    end
    
    subgraph "处理"
        PARSE[解析]
        CONTEXT[上下文组装]
        LLM[LLM推理]
        TOOLS[工具执行]
    end
    
    subgraph "存储"
        CONFIG[config.yaml]
        MEMORY[MEMORY.md]
        SESSION[SQLite Sessions]
        SKILLS[Skills文件]
    end
    
    subgraph "输出"
        TEXT[文本响应]
        TTS[语音合成]
        CRON_OUT[Cron任务]
    end
    
    CLI_IN & MSG_IN & VOICE --> PARSE --> CONTEXT --> LLM --> TOOLS
    
    CONFIG --> CONTEXT
    MEMORY --> CONTEXT
    SESSION --> CONTEXT
    SKILLS --> CONTEXT
    
    TOOLS --> SESSION
    LLM --> MEMORY
    
    LLM --> TEXT & TTS & CRON_OUT

核心设计思想

1. 闭环学习 (Closed Learning Loop)

经验 → 技能创建 → 使用中改进 → 持久化 → 跨会话复用
  • 不是无状态的问答,而是持续积累的系统
  • Skills 自动从复杂任务中提取
  • Memory 定期 nudge 保存

2. 平台无关 (Platform Agnostic)

  • 单一 Gateway 进程支持所有平台
  • 适配器模式,易于扩展新平台
  • CLI 和消息平台共享命令体系

3. Provider 无关 (Provider Agnostic)

  • 支持 200+ 模型(通过 OpenRouter)
  • hermes model 一键切换,无代码改动
  • 无厂商锁定

4. 环境抽象 (Environment Abstraction)

  • 7 种终端后端统一接口
  • 从 $5 VPS 到 GPU 集群,从本地到 Serverless
  • Daytona/Modal 实现休眠唤醒,闲置零成本

5. 安全优先 (Security First)

  • 命令审批机制
  • DM 配对
  • 容器隔离
  • Profile 隔离(多用户/多场景)

6. 可扩展性 (Extensibility)

  • Plugin 系统(Memory、Context Engine、Model Providers 等)
  • MCP 协议集成
  • Skills 开放标准 (agentskills.io)
  • Cron 调度器

关键目录结构

hermes-agent/
├── run_agent.py          # AIAgent 核心类 (~12k LOC)
├── model_tools.py        # 工具编排
├── toolsets.py           # 工具集定义
├── cli.py                # CLI 交互 (~11k LOC)
├── hermes_state.py       # SQLite 会话存储 (FTS5)
├── agent/                # Agent 内部实现
├── hermes_cli/           # CLI 子命令
├── tools/                # 工具实现 (auto-discovered)
│   └── environments/     # 终端后端
├── gateway/              # 消息网关
│   └── platforms/        # 平台适配器
├── plugins/              # 插件系统
├── skills/               # 内置 Skills
├── cron/                 # 调度器
├── environments/         # RL 训练环境 (Atropos)
├── ui-tui/               # Ink TUI
└── tests/                # 测试 (~17k tests)

安装与使用

快速安装

# Linux/macOS/WSL2/Termux
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

# Windows PowerShell
irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1 | iex

常用命令

hermes              # 启动交互式 CLI
hermes model        # 选择 LLM Provider 和模型
hermes tools        # 配置启用的工具
hermes gateway      # 启动消息网关
hermes setup        # 完整设置向导
hermes update       # 更新到最新版本
hermes doctor       # 诊断问题

Tradeoff 分析

优势代价
闭环学习,持续进化系统复杂度高
多平台统一入口Gateway 维护成本
Provider 无关需要适配不同 API 格式
7种终端后端环境测试矩阵大
17k+ 测试CI 时间长
安全机制完善用户体验有审批摩擦

可复用模式

  1. 适配器模式 — Gateway 平台适配、终端后端适配
  2. 注册表模式 — 工具自动发现 (registry.py)
  3. Profile 隔离 — 多用户/多场景配置隔离
  4. 闭环学习 — 经验→技能→改进→持久化
  5. FTS5 搜索 — SQLite 全文搜索 + LLM 摘要
  6. Nudge 机制 — 主动提醒 Agent 保存知识

值得学习的重点

  1. Agent 架构设计 — 如何构建可持续学习的 Agent 系统
  2. 工具系统设计 — 自动发现、动态注册、工具集管理
  3. 多平台统一 — 一套代码支持 10+ 消息平台
  4. 安全模型 — 命令审批、容器隔离、Profile 隔离
  5. 测试策略 — 17k 测试的 CI/CD 实践
  6. RL 集成 — Atropos 训练环境设计

相关链接


关联笔记