Hermes - AI Agent 运行时框架详细介绍
·
Hermes — AI Agent 运行时框架详细介绍
一、产品概述
Hermes 是 Nous Research 开源的可自部署个人 Agent 运行时框架。官方将其定位为 「self-improving autonomous agent」(可自我进化的自主智能体)。
它不是一个开箱即用的编码软件,也不等同于 Claude Code 这类执行工具。更准确的描述是:一个长期运行的个人 Agent 后台——它能记住你的项目背景、编码习惯和过往经验,让 AI 不再每次从零开始。
产品形态速览
| 维度 | 说明 |
|---|---|
| 产品形态 | 可自部署的 Agent 运行时框架 |
| 所属层级 | 个人 Agent 运行时层(工具链第 1 层) |
| 核心角色 | 给编码 Agent 补记忆、技能与自动化 |
| 是否可独立运行 | 否,需对接大模型(Claude/GPT 等)和执行工具 |
| 是否具备编码能力 | 不具备原生编码能力,底层编码依赖 Claude Code 等执行工具 |
| 开源性 | 开源(Nous Research) |
| 通俗类比 | 程序员的私人助理——帮程序员记东西、攒经验、跑后台 |
与 Claude Code 的关系
Hermes = 运行时增强层(记忆管理 + 技能沉淀 + 后台自动化)
Claude Code = 干活执行者(写代码 + 跑命令 + 修报错)
二者是调度从属关系,不是竞品。
一个负责"记住和调度",一个负责"落地执行"。
二、安装与部署
2.1 环境要求
- Node.js 18+
- 可访问大模型 API(如 Anthropic API)
- 本地 SQLite 支持(用于记忆存储)
2.2 部署步骤
# 第一步:拉取仓库
git clone https://github.com/nousresearch/hermes.git
cd hermes
npm install
# 第二步:配置 Hermes
cp config.example.yaml config.yaml
2.3 配置文件详解
修改 config.yaml 核心配置:
# 模型供应商配置
model_provider: anthropic
api_key: ${ANTHROPIC_API_KEY}
# 执行后端配置(指定底层谁来写代码)
executor_backend: claude-code
# 记忆系统配置
memory:
core_memory_files:
- MEMORY.md # 项目长期约定
- USER.md # 个人编码偏好
2.4 初始化核心记忆文件
Hermes 最核心的设计是三层结构化记忆。部署后首先要初始化两个硬上限核心记忆文件:
MEMORY.md(项目长期约定):
# MEMORY.md
项目:nodejs-user-server
技术栈:Node.js + Express + Mongoose
编码规范:必须写入参校验、try/catch、接口注释、单元测试
已有路由:/api/login /api/register
项目约定:所有接口返回格式为 {code, msg, data}
数据库:MongoDB,User 集合字段见 /models/user.js
USER.md(个人编码偏好):
# USER.md
缩进风格:2 空格
错误返回:统一返回 {code, msg, data},拒绝松散裸返回
命名规范:文件名 kebab-case,变量名 camelCase
测试框架:Jest,测试文件放在 __tests__/ 目录
Git 提交规范:遵循 Angular Commit Convention
三、核心设计详解
3.1 三层结构化记忆体系(最核心设计)
这是 Hermes 与原生编码工具最本质的区别:
| 记忆层级 | 存储方式 | 运作机制 | 解决的问题 |
|---|---|---|---|
| 第一层:核心置顶记忆 | MEMORY.md + USER.md(硬上限文件) | 每次会话自动注入上下文,作为最高权重信息 | 项目约定和用户偏好不丢失 |
| 第二层:会话检索记忆 | 历史对话全量存入本地 SQLite,通过 FTS5 全文检索按需召回 | 需要时才检索,不影响当前上下文容量 | 上下文溢出问题 |
| 第三层:技能化长期记忆 | 从执行经验中自动抽象标准化技能,存入技能库 | 同类任务直接触发已有技能 | 重复引导的浪费 |
为什么记忆要有硬上限?
- 置顶记忆要的是高权重、低噪声,不是越多越好
- 如果什么都往里塞,过期信息和临时结论会稀释真正重要的项目约定
- 没有上限的记忆系统,时间一长就会熵增,检索噪声变大
- 有界记忆,本质上是用容量换稳定性
3.2 自进化学习闭环
Hermes 支持从每次执行结果中自动总结经验、优化技能:
执行任务 → 记录过程与结果 → 提炼模式 → 存入技能库 → 下次同类任务自动复用
运行越久、同类任务处理越多,执行速度和准确率越高——这就是"自进化"的核心含义。
3.3 后台常驻与多端接入
| 能力 | 说明 |
|---|---|
| 后台 Daemon | 支持常驻运行,可配置定时任务、触发式任务 |
| 无人值守 | 定时巡检、自动部署、日志整理等自动化工作 |
| 多端接入 | CLI、Telegram、Slack 等多端接入,不限于本地终端 |
四、实操 Demo
场景:在已有用户模块上新增分页查询接口
# 第一步:启动后台常驻 Hermes
node index.js daemon
# 第二步:新开终端,下发任务
hermes chat "给用户接口新增分页查询用户列表接口"
执行过程演示
- 自动加载核心记忆:Hermes 自动注入 MEMORY.md 和 USER.md,无需重复讲解项目技术栈、编码规范
- 调度底层执行:自动调用 Claude Code 完成编码 + 自测
- 沉淀会话记忆:执行完毕自动将本次设计思路、踩坑点存入 SQLite 检索记忆
- 技能化沉淀:多次迭代后自动提炼「分页接口开发技能」存入技能库,同类任务速度越来越快
五、适用场景
✅ 最适合的场景
| 场景 | 原因 |
|---|---|
| 个人长期项目 | 跨会话记住项目背景和编码习惯,不用反复解释 |
| 自动化运维脚本 | 后台 daemon 常驻,定时执行巡检、部署 |
| 私人工作助理 | 记住你的偏好,处理日常开发任务 |
| 多端触达任务 | 通过 Telegram/Slack 远程下发任务 |
| 需要技能积累的项目 | 同类任务反复执行,越用越快 |
⚠️ 不适合的场景
| 场景 | 原因 |
|---|---|
| 多人强交付项目 | 偏单用户设计,每个人各有一套记忆,容易口径对不上 |
| 强合规项目 | 没有团队级权限、审计和协作机制 |
| 需要统一标准的团队 | 没有强制工程纪律,没有单一事实源 |
六、与其他工具的关系
6.1 Hermes vs Claude Code
| 维度 | Claude Code | Hermes |
|---|---|---|
| 层级 | 执行层 | 运行时增强层 |
| 能写代码吗 | ✅ 是 | ❌ 否(依赖 Claude Code) |
| 有记忆吗 | ❌ 无持久记忆 | ✅ 三层记忆体系 |
| 能后台常驻吗 | ❌ 会话即结束 | ✅ Daemon 后台运行 |
| 状态 | 偏无状态 | 有状态,积累经验 |
| 通俗角色 | 干活的程序员 | 程序员的私人助理 |
关系总结:增强与被增强,不是竞品。 Claude Code 负责一次次把任务做完,Hermes 负责把这些任务里的经验留下来。
6.2 Hermes + Claude Code 组合
这是最基础的双层组合——Claude Code 干活,Hermes 攒经验,适合单人长期维护项目。
但需注意:
- 记忆膨胀风险:建议每月清理一次核心记忆,只保留项目结构、长期约定和稳定经验
- 不适合多人:6 个人各用各的 Hermes,短期都快,联调时才发现接口定义、异常码、测试标准全不统一
七、优势与局限总结
优势
| 优势 | 说明 |
|---|---|
| 记忆能力强 | 三层记忆体系,跨会话持久化上下文,告别反复解释 |
| 自进化 | 越用越懂你,同类任务速度越来越快 |
| 后台自动化 | Daemon 常驻 + 定时任务,无人值守 |
| 本地化部署 | 隐私性好,数据不出本地 |
| 多端接入 | CLI / Telegram / Slack 均可触达 |
局限
| 局限 | 说明 |
|---|---|
| 不写代码 | 本身不负责底层编码推理,必须对接大模型和执行工具 |
| 偏单用户 | 没有团队级权限、审计和多人协作机制 |
| 缺工程纪律 | 没有强制 TDD、评审等质量门禁 |
| 记忆需治理 | 长期使用需要主动清理,避免记忆膨胀和污染 |
一句话总结
Hermes 是运行时增强层。Claude Code 负责执行动作,Hermes 负责沉淀记忆和经验。它的核心价值不是"写代码更快",而是"下次不用从零开始"。
更多推荐
所有评论(0)