Hermes Agent:Nous Research 打造的自我进化 AI 智能体

发布于:2026-04-13 · #AI #Agent #LLM #OpenClaw

Hermes Agent 是由 Nous Research 开发的开源自主 AI 智能体平台,其核心卖点是内置学习闭环——它能从经验中创建技能、在使用中自我改进、主动持久化知识、搜索自身历史对话,并跨会话构建对用户的深度理解模型。项目于 2026 年 2 月启动,仅 6 周内从内部原型发展到 27,000+ GitHub Star 的完整平台,当前版本 v0.8.0(2026年4月8日发布)。它不是绑定在编辑器或终端里的临时工具,而是一个常驻基础设施上的持久化个人智能体——可运行在 $5 的 VPS、GPU 集群或无服务器环境上,通过 Telegram、Discord、Slack 等 15+ 平台与你沟通。


从”会话工具”到”常驻智能体”的范式跃迁

当前 AI 智能体生态正在分化为两个物种:一种存活在终端或 IDE 中,打开即用、关闭即逝(如 Claude Code、Cursor);另一种永久驻留在你的基础设施上,在你睡觉时继续工作。Hermes Agent 属于后者。

它解决的核心问题是传统 AI 助手的三大局限:无跨会话记忆(每次对话从零开始)、无技能积累(重复解决相同问题)、无主动性(只能被动响应)。Hermes Agent 通过四层记忆系统、自动技能生成、定时任务调度和多平台消息网关,将 AI 助手从”工具”升级为”伙伴”。

适用场景包括:个人开发助手(跨项目持久记忆)、DevOps 自动化(定时报告与监控)、研究助手(跨论文搜索与总结)、团队协作代理(通过消息平台统一入口)、以及 RL 训练基础设施(为下一代工具调用模型生成训练轨迹)。


三层架构与核心代理循环

Hermes Agent 采用清晰的三层架构,将用户接口、核心智能体逻辑和执行后端分离。

第一层:入口层(Entry Points)

系统提供 6 种入口方式,所有入口共用同一个核心 AIAgent 类:

  • CLI(cli.py,约 8,500 行):基于 prompt_toolkit 的全功能 TUI,支持多行编辑、斜杠命令自动补全、对话历史、中断重定向和流式工具输出
  • 消息网关(gateway/run.py,约 7,500 行):长运行进程,支持 15+ 平台适配器(Telegram、Discord、Slack、WhatsApp、Signal、Matrix、Email、Home Assistant 等)
  • ACP 适配器(acp_adapter/):通过 stdio/JSON-RPC 为 VS Code、Zed、JetBrains 提供编辑器原生智能体
  • API 服务器:HTTP 程序化访问,支持 Open WebUI 集成
  • 批量运行器(batch_runner.py):用于 RL 训练的轨迹批量生成
  • Python 库:直接 import AIAgent 嵌入到自定义应用中

第二层:核心智能体(Core Agent)

中央编排引擎是 run_agent.py 中的 AIAgent 类(约 9,200 行),其核心对话循环如下:

Python
UTF-8|12 Lines|
# 简化的核心循环逻辑
while api_call_count < self.max_iterations and self.iteration_budget.remaining > 0:
    response = client.chat.completions.create(
        model=model, messages=messages, tools=tool_schemas
    )
    if response.tool_calls:
        for tool_call in response.tool_calls:
            result = handle_function_call(tool_call.name, tool_call.args, task_id)
            messages.append(tool_result_message(result))
        api_call_count += 1
    else:
        return response.content  # 无工具调用时返回最终响应

系统支持三种 API 模式:chat_completions(OpenAI 兼容,默认)、codex_responses(OpenAI Codex Responses API)、anthropic_messages(原生 Anthropic Messages API)。消息格式遵循 OpenAI 标准 {"role": "system/user/assistant/tool", ...},推理内容存储在 assistant_msg["reasoning"] 中。

CLI 和网关的关键架构差异在于:CLI 维持一个持久 AIAgent 实例;而网关为每条传入消息创建新的 AIAgent 实例,通过从 SQLite state.db 加载/保存对话历史实现持久化。

第三层:执行后端(Execution Backends)

  • 终端后端(6 种):Local、Docker、SSH、Daytona(无服务器持久化)、Modal(原生 SDK)、Singularity(HPC)
  • 浏览器后端(5 种):包括 Camoufox 反检测浏览器
  • MCP 动态工具服务器:支持 stdio 和 HTTP 传输

Python 生态为主的技术栈

Hermes Agent 的技术选型体现了现代 Python 工程的最佳实践:

组件技术选型
主语言Python 3.11+
包管理uv(Astral 出品,替代 pip/poetry)
数据库SQLite(WAL 模式 + FTS5 全文搜索)
CLI 框架Rich(面板/横幅)+ prompt_toolkit(交互输入)
API 客户端openai ≥2.21、anthropic ≥0.39、httpx
数据验证Pydantic ≥2.12
配置解析PyYAML
模板引擎Jinja2
重试逻辑tenacity
Web 工具exa-py(搜索)、firecrawl-py(抓取)、parallel-web
文档系统Docusaurus(website/ 目录)
测试框架Pytest(3,289+ 测试)
可选依赖Node.js(浏览器工具/WhatsApp 适配器)

依赖通过 pyproject.toml 管理,提供 [all]、[messaging]、[tts-premium]、[voice]、[dev] 等可选依赖组。入口点注册为 hermes = hermes_cli.main:main。


四层记忆系统与自我进化的技能机制

Hermes Agent 最具差异化的能力来自其四层记忆架构和自动技能生成机制。

记忆层级

第一层:提示词记忆(Prompt Memory)。MEMORY.md(约 2,200 字符)存储持久事实(环境、项目惯例、变通方案),USER.md(约 1,375 字符)存储用户画像(偏好、沟通风格)。两者在会话启动时作为冻结快照注入系统提示词。条目以 § 分隔,由 MemoryStore 类管理,内置安全检测(防后门注入、零宽 Unicode 字符)。

第二层:会话档案(Session Archive)。SQLite 数据库 ~/.hermes/state.db 使用 WAL 模式支持并发访问,FTS5 全文搜索跨所有消息内容。支持会话谱系追踪(压缩前后的父子关系),自定义重试机制防止写入竞争。

第三层:技能(Procedural Memory)。这是 Hermes 的核心创新——技能是从经验中自动创建的可复用 Markdown 文档。当智能体完成复杂任务(5+ 工具调用、错误恢复、用户纠正)后,自动通过 skill_manage 工具创建技能文件。技能遵循渐进式披露模式:默认只在系统提示词中包含名称和摘要,完整内容按需加载以最小化 token 消耗。技能兼容 agentskills.io 开放标准,可跨 Hermes、Claude Code、Cursor、Codex 共享。

第四层:外部记忆提供者(可选)。8 个可插拔提供者——Honcho、OpenViking、Mem0、Hindsight、Holographic、RetainDB、ByteRover、Supermemory。激活后自动注入上下文到提示词、在每轮前预取相关记忆、在会话结束时提取记忆。

48+ 工具与工具集系统

工具系统采用自注册模式:每个工具文件在导入时通过 tools/registry.py 的 register() 函数注册,model_tools.py 的 _discover_tools() 触发发现。当前注册 48+ 工具,组织为 20+ 工具集(web、terminal、file、browser、vision、delegation、code_execution、mcp 等)。

关键工具包括:delegate_task(子代理委托,最多 3 个并发、深度限制 2)、execute_code(Python 沙箱,JSON-RPC 通信,300 秒超时)、session_search(FTS5 全文搜索历史会话)、11 个浏览器自动化工具、以及通过 MCP 动态注册的外部工具。

MCP 集成(约 2,200 行)

MCP(Model Context Protocol)客户端是 Hermes 的重要扩展点,配置示例:

YAML
UTF-8|8 Lines|
mcp_servers:
  github:
    command: "npx"
    args: ["-y", "@modelcontextprotocol/server-github"]
    env:
      GITHUB_PERSONAL_ACCESS_TOKEN: "ghp_xxx"
    tools:
      include: [create_issue, list_issues, search_code]

支持 stdio 和 HTTP 两种传输协议,自动工具发现与注册,MCP OAuth 2.1 PKCE 认证,OSV 恶意软件扫描,以及 Hermes 反向暴露为 MCP 服务器(供其他智能体调用)。


模型无关但与 Hermes 生态深度协同

Hermes Agent 明确不绑定任何特定模型——这是其核心设计原则之一。通过 hermes model 命令可以零代码切换 18+ 推理提供者:OpenRouter(200+ 模型)、Nous Portal(400+ 模型)、OpenAI、Anthropic、Hugging Face、DeepSeek、xAI、Ollama 等。

但它与 Nous Research 的 Hermes 模型系列有天然的协同关系。Nous Portal 是 Nous Research 自己的推理 API(portal.nousresearch.com),支持 Hermes-4-70B、Hermes-4-405B、Hermes 3 405B、DeepHermes-3 8B 等模型,新用户获得 $5 免费额度。v0.8.0 还将 Xiaomi MiMo v2 Pro 作为免费层辅助模型。

更深层的协同在于 Atropos RL 训练管线。Hermes Agent 同时是个人助手和研究基础设施——它可以批量生成代理轨迹(ShareGPT 格式),通过 GRPO(Group Relative Policy Optimization)配合 LoRA 适配器训练下一代工具调用模型。三组件架构包括:Atropos(轨迹 API 服务器)、Tinker(训练服务处理模型权重)、Environments(定义任务和奖励函数)。这意味着 Hermes Agent 的使用数据可以直接反哺 Hermes 模型系列的迭代。

此外,独立项目 hermes-agent-self-evolution 使用 DSPy 和 GEPA(Genetic Evolution of Prompt Architectures)对 Hermes 的提示词、技能和代码进行进化优化,这是一篇 ICLR 2026 Oral 论文的研究成果。


代码结构:模块化但高度内聚

Text
UTF-8|44 Lines|
hermes-agent/
├── run_agent.py              # AIAgent 核心对话循环 (~9,200 行)
├── cli.py                    # HermesCLI 交互式终端 (~8,500 行)
├── model_tools.py            # 工具发现、Schema 收集、调度分派
├── toolsets.py               # 工具集分组与平台预设
├── hermes_state.py           # SQLite 会话存储 (FTS5)
├── hermes_constants.py       # 路径常量 (HERMES_HOME)
├── batch_runner.py           # 批量轨迹生成
│
├── agent/                    # 智能体内部模块
│   ├── prompt_builder.py     # 系统提示词组装 (SOUL.md + 记忆 + 技能 + 上下文)
│   ├── context_compressor.py # 对话压缩算法
│   ├── auxiliary_client.py   # 辅助 LLM (视觉/摘要/压缩)
│   ├── memory_manager.py     # 记忆管理编排
│   └── subdirectory_hints.py # 渐进式子目录发现
│
├── hermes_cli/               # CLI 子命令
│   ├── main.py               # 入口点 (~5,500 行)
│   ├── runtime_provider.py   # 提供者→API模式+凭据 路由
│   ├── setup.py              # 交互式设置向导 (~3,100 行)
│   ├── skin_engine.py        # CLI 主题引擎 (7 内置皮肤)
│   └── commands.py           # 斜杠命令注册表
│
├── tools/                    # 工具实现 (48+ 工具)
│   ├── registry.py           # 中央注册表 (无依赖)
│   ├── delegate_tool.py      # 子代理委托
│   ├── mcp_tool.py           # MCP 客户端 (~2,200 行)
│   ├── terminal_tool.py      # 终端编排
│   ├── file_tools.py         # 文件操作
│   ├── browser_tool.py       # 浏览器自动化 (11 工具)
│   └── environments/         # 6 种终端后端
│
├── gateway/                  # 消息网关
│   ├── run.py                # GatewayRunner (~7,500 行)
│   ├── session.py            # 会话持久化
│   └── platforms/            # 15+ 平台适配器
│
├── cron/                     # 定时调度
├── acp_adapter/              # 编辑器集成 (ACP)
├── plugins/memory/           # 记忆提供者插件
├── environments/             # RL 训练环境
├── skills/                   # 内置技能
├── optional-skills/          # 可选技能
└── tests/                    # Pytest (~3,289 测试)

文件依赖链清晰:tools/registry.py(零依赖)→ tools/*.py(导入时自注册)→ model_tools.py(触发发现)→ run_agent.py/cli.py/batch_runner.py。


两分钟快速上手

安装(Linux/macOS/WSL2,无需前置依赖):

Bash
UTF-8|1 Line|
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

安装脚本自动处理 Python、Node.js、所有依赖和 hermes 命令注册。

配置与首次运行:

Bash
UTF-8|7 Lines|
hermes setup                          # 交互式设置向导(模型、终端、网关)
hermes chat                           # 启动交互式对话
hermes chat -q "总结最近的 PR"          # 一次性查询
hermes chat --model anthropic/claude-sonnet-4.6  # 指定模型
hermes chat --toolsets web,terminal    # 选择工具集
hermes -c                             # 恢复上次会话
hermes -p work                        # 使用 "work" 配置文件

开发者安装:

Bash
UTF-8|6 Lines|
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv venv --python 3.11
source venv/bin/activate
uv pip install -e ".[all,dev]"

核心配置文件位于 ~/.hermes/config.yaml(Schema 版本 10),支持环境变量替换 ${VAR_NAME}。关键配置项包括模型/提供者选择、终端后端类型、压缩策略、记忆限制、委托子代理参数、MCP 服务器列表等。API 密钥存储在 ~/.hermes/.env 中。

消息网关通过 hermes gateway run 启动,支持 systemd 服务安装(hermes gateway install)。定时任务通过 hermes cron create "every 1h" "检查邮件并总结" 配置。


与主流智能体框架的关键差异

Hermes Agent 的定位在智能体生态中独树一帜——它既不是框架也不是库,而是一个完整的、可部署的智能体应用。

与 LangChain 相比,LangChain 是构建自定义 LLM 管线的模块化工具箱,提供对每个提示词和链的细粒度控制,但一个基础 RAG 聊天机器人就需要 100-500+ 行代码。Hermes 是开箱即用的完整智能体,自带记忆、技能和消息网关。

与 AutoGPT 相比,AutoGPT 专注于自主任务分解和 Web 交互。Hermes 专注于跨会话记忆和技能积累。官方文档称两者是”互补的方法”。

与 Claude Code 相比,Claude Code 是出色的会话内编码智能体,但本质上是会话绑定的。Hermes 是常驻服务器的持久化智能体,跨会话记忆和多平台可达。值得注意的是,Hermes 可以将 Claude Code 作为子代理调用,结合两者优势。

与 OpenAI Codex CLI 相比,Codex CLI 有优秀的 token 效率和内核级沙箱,但记忆仅基于会话历史而非活的知识图谱。Hermes 在此基础上增加了始终在线的编排层,且可导入 Codex CLI 凭据。

最直接的竞争对手是 OpenClaw(原 Clawdbot,345,000+ Star)——同为”持久化个人智能体”赛道,但 OpenClaw 基于 TypeScript、拥有更大社区(5,700+ 技能),Hermes 则在自我改进技能、RL 训练集成、终端后端多样性(6 种 vs OpenClaw 的 2 种)上占优。Hermes 内置 hermes claw migrate 迁移工具,战略性地在 OpenClaw 披露 9 个 CVE 时发布。


六周内从内部原型到 27,000 Star 的爆发式增长

Hermes Agent 展现了 2026 年开源 AI 项目前所未有的发展速度。项目于 2026 年 2 月作为 Nous Research 内部项目启动,v0.1.0 是未公开的初始基础。首个公开版本 v0.2.0(2026年3月12日)即包含 216 个合并 PR、63 位贡献者、119 个已解决 Issue。此后以近乎每周一个大版本的节奏迭代:

v0.2.0 至 v0.8.0 的 8 个大版本在约 6 周内发布,项目当前拥有 27,000+ Star、3,500+ Fork、242+ 贡献者。核心开发者 @teknium1 在单个版本周期内提交了 157 个 PR。社区生态包括 awesome-hermes-agent(资源列表)、autonovel(自主小说写作管线,100k+ 字)、hermes-workspace(Web 界面,500+ Star)、mission-control(编排仪表板,3,700+ Star)等。

项目采用 MIT 许可证,活跃的 Discord 社区用于 Bug 报告和功能讨论。Skills Hub(agentskills.io)提供跨智能体技能市场。从发展轨迹看,Hermes Agent 正在快速成为”常驻式 AI 智能体”赛道的领先选手,其自我进化机制和 RL 训练集成为开源智能体开发提供了独特的研究价值。

结语:为什么 Hermes Agent 值得关注

Hermes Agent 的核心创新不在于某个单一功能,而在于它将持久记忆、程序化技能、多平台可达性和 RL 训练基础设施整合为一个内聚的系统。大多数智能体框架要么是开发者工具箱(LangChain),要么是会话内助手(Claude Code),要么是自主执行器(AutoGPT)。Hermes Agent 是第一个将”智能体即长期运行的服务”理念完整落地的开源实现——它在你不使用时休眠,在你需要时通过任何消息平台唤醒,并且每次交互都让它变得更聪明。对于研究者而言,其 Atropos RL 管线和 GEPA 进化优化提供了从”使用智能体”到”训练更好智能体”的完整闭环。