OPEN AGENTS · HERMES AGENT · 会自我进化的开源智能体

Hermes Agent:越用越强的自进化智能体

Nous Research 的开源 Agent,口号是「The agent that grows with you」:它把你的使用经验沉淀成记忆和技能,下次直接复用。这篇带你装好它、接上模型、跑通第一次「学习循环」,并把自主权限的边界划清楚。

zsh — ~
$ curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
… Hermes Agent 已安装。运行 hermes setup --portal 开始配置
$ hermes setup --portal
✔ 模型供应商与 4 个 Tool Gateway 工具已就绪
$ hermes chat
> 把「整理 git log 写周报」的流程固化下来
✔ 已沉淀技能 ~/.hermes/skills/weekly-report/SKILL.md
本页目录

01

Hermes Agent 是什么:自带学习循环的开源 Agent

Hermes Agent 是 Nous Research 出品的免费开源 AI Agent(MIT 协议),macOS、Windows、Linux 都能跑。大多数 Agent 用完即忘,它的差异点在于内置学习循环:对话之外会周期性地做一次自我评审,把值得留的东西自动写进两套存储——持久记忆(你的偏好、环境事实、踩过的坑)和技能(可复用的操作流程,写成 SKILL.md,下次像命令一样调用)。

它同样是一台「可长期自主运行」的机器:通过网关接到 Telegram、Discord、Slack、WhatsApp、Signal、Email,定时任务用内置 cron,还能派生隔离子 Agent 并行干活。新版本支持完全本地跑开源模型(管理自己的 llama.cpp 运行时,或接 Ollama 等 OpenAI 兼容端点)——模型和记忆都在你机器上,数据不出门。

和仓库里的编码 Agent(Claude Code、Codex 那类)比,定位并不重叠:编码 Agent 围绕「一个仓库里的任务」设计,会话结束基本就散了;Hermes 围绕「一个长期跟着你的助手」设计——跨平台收发消息、跨会话记住你和项目、把重复劳动沉淀成技能。当然它也能读代码、跑命令、写文件,纯当编码助手用完全没问题,只是它的杀手锏在「记得住」。

出品方
Nous Research
开源协议
MIT
仓库 / 官网
github.com/NousResearch/hermes-agent · hermes-agent.nousresearch.com
当前版本
v0.22.x(写作时,以仓库 Releases 为准)
平台
macOS 12+ / Windows 10+ / Linux / WSL2 / Android(Termux)
数据目录
~/.hermes/
技能 / 记忆
~/.hermes/skills/ · ~/.hermes/memories/
版本迭代速度
极快,命令与配置以官方文档当前版为准
一句话理解它的分工:记忆里放「每次对话都要知道的事实」(常驻提示词),技能里放「按需加载的操作流程」(用时才展开)。学习循环做的事,就是把你的使用经验分流到这两处。

02

安装:脚本一条命令,桌面版双击

CLI 和桌面 App 共用同一套 Agent、技能与记忆,装一种即可,两种都装也不冲突。

Terminal · macOS / Linux / WSL2
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

# 验证 + 自检
hermes --version
hermes doctor
官方文档还覆盖 Nix/NixOS 与 Android(Termux)等安装方式,以安装页为准。装好后数据都在 ~/.hermes/。
升级与排障:版本迭代非常快,遇到怪问题先 hermes update 升级,再 hermes doctor --fix 自检配置;「以官方安装页与仓库 Releases 为准」在这里不是客套话。

03

第一次启动:接模型、说第一句话

Terminal · 最短路径
hermes setup --portal   # 交互向导:一次 OAuth 配好模型 + 网关工具
hermes chat             # 进入交互对话

> /status               # 会话信息 + 本地摘要
> /help skills          # 只看技能相关的帮助
> /quit
  • 01

    接一个模型供应商

    最快是 hermes setup --portal:一次 OAuth 同时拿到模型与 Tool Gateway 工具。也可以用 hermes model 交互选择 Nous Portal、OpenRouter、OpenAI 或任意 OpenAI 兼容端点。

  • 02

    在对话里试一个真实任务

    给它一件会重复做的事,比如「总结这个仓库最近一周的改动并写份周报」。工具调用默认会请求批准,先熟悉它的审批面板。

  • 03

    确认它记住了你

    退出重进后说「还记得我上次让你干什么吗」。它的长期记忆在会话开始时注入,跨会话生效;hermes journey 能看它学到了什么的时间线。

密钥不放配置文件里:所有大写键名(如 OPENROUTER_API_KEY)都视为环境变量,hermes config set OPENROUTER_API_KEY sk-or-… 会写进 ~/.hermes/.env;非密钥配置统一在 ~/.hermes/config.yaml。

日常巡检:五个高频诊断命令

Terminal · 出问题先跑这一组
hermes status --full    # Agent、凭证、平台全量状态
hermes doctor --fix     # 配置与依赖体检,能修的直接修
hermes logs             # 看 / 过滤 agent、gateway、error 日志
hermes usage            # 当前账户的用量与限流窗口
hermes sessions list    # 历史会话都在,可续聊

还有一个网页版管理台:hermes dashboard,改配置、填密钥、管会话都在浏览器里点点就行。

长会话救急:压上下文,别硬扛

对话内 · 上下文管理
> /context            # 看上下文窗口被什么占了
> /compress 保留架构结论   # 手动压缩,可指定要留的重点
> /undo               # 撤掉最近一次问答再重问
> /new                # 彻底重开;记忆快照重新加载

04

记忆与技能:它靠什么「越用越懂你」

持久记忆:两份小文件

核心记忆就是 ~/.hermes/memories/ 下的两个文件:MEMORY.md(环境事实、项目约定、经验教训,上限约 2200 字符)和 USER.md(你的偏好与沟通风格,上限约 1375 字符)。它们在会话开始时冻结成快照注入提示词——会话中它写的新记忆立即落盘,但要到下一次会话才进提示词。历史会话则存在 SQLite(~/.hermes/state.db)里,用 FTS5 全文检索按需召回,几乎零 token 成本。

记忆是按 profile 隔离的:默认档案读 ~/.hermes/memories/,名为 work 的档案读 ~/.hermes/profiles/work/memories/。如果你发现它「忘了」某件事,先确认没切错档案,再直接 cat 那两个文件看它到底记没记。

Terminal · 直接查它的记忆
cat ~/.hermes/memories/MEMORY.md   # 它记了什么,一目了然
hermes memory setup                # 可选:接入外部语义记忆供应商
hermes journey                     # 学习时间线:哪些记忆/技能何时产生

技能:写成文件的流程

技能是目录 ~/.hermes/skills/<名字>/ 下的 SKILL.md:YAML frontmatter(name、description、version…)加正文(When to Use / Procedure / Pitfalls / Verification)。Agent 通过 skill_manage 工具自己创建和修改技能;/learn 能把本地文档、URL、笔记整本蒸馏成技能。技能走「渐进披露」:先看技能列表(约 3k token),用到哪个再加载哪个,不会撑爆上下文。

SKILL.md · 结构示意
---
name: weekly-report
description: 整理 git log 按固定格式产出周报
version: 1.0.0
---
## When to Use
用户要求整理一周改动 / 产出周报时。

## Procedure
1. git log --since="7 days ago" 取提交
2. 按 功能/修复/其他 分组 ……

## Pitfalls
merge 提交不要重复计数。

## Verification
 reports/ 下生成的文件能通过用户确认。

这是结构示意,不是它的某份真实文件;具体字段(platforms、requires_toolsets 等进阶项)以官方 Skills 文档为准。技能还可以带 references/、scripts/、templates/ 等子目录。

Terminal · 技能管理与审批
hermes skills list                 # 本地技能一览
hermes skills search <关键词>       # 从 Skills Hub 搜
hermes skills install <名>          # 安装(自动做安全扫描)

> /skills pending                  # 开 write_approval 后,待批的写入在这里
> /skills diff <id>                # 看它想改什么
> /skills approve <id>             # 批准落盘

学习循环:后台评审 + 策展器

每轮对话结束后,后台会跑一次自我评审:把值得沉淀的内容写成记忆或技能(提示词里表现为「💾 Memory updated」这类通知),频率用 memory.nudge_interval / skills.creation_nudge_interval 调节;/refine 让它立刻评审一轮。后台还有一个策展器(curator)负责技能的日常维护——去重、瘦身、修错,hermes curator lock <技能> 可以把重要技能设为只读,防止它越改越歪。

长期自主:网关、cron 与 Bot 模式

把常驻的 hermes gateway 接上任意消息平台,它就是一个 24 小时在线的助手;/heartbeat 与 /loop 让它在空闲时定期自检推进;Bot 模式把多个 profile 变成一群「有独立模型、记忆、技能和人设(SOUL.md)的 Bot」,各自挂各自的 cron 例行任务。自主运行的安全阀在下面第 07 节展开。

Terminal · 自主化的最小骨架
hermes profile create   # 一个 profile 就是一个 Bot 的全部家当
hermes gateway start    # 常驻网关,接管各消息平台的收发
hermes cron list        # 例行任务一览(Bot 的任务带 bot:<名> 前缀)

# config.yaml 里与自主运行相关的安全阀
approvals.single_query_mode: deny    # 一次性请求默认拒绝自动执行
agent.bot_mode_protocol: on          # Bot 群聊协议(默认开)

05

速查表:概念、命令、操作、配置一张表

这块能搜。忘了某个入口直接搜 技能、记忆、模型 这样的词。

概念是什么
长期记忆 MEMORY.md~/.hermes/memories/ 下,约 2200 字符(≈800 token),每次会话开始注入
用户画像 USER.md你的偏好与沟通风格,约 1375 字符(≈500 token)
冻结快照记忆在会话开始时注入并固定;会话内新写入只落盘,下次会话生效
会话检索 FTS5~/.hermes/state.db(SQLite)全文检索历史会话,按需召回、零 token 成本
外部语义记忆hermes memory setup 接入(Mem0、Honcho 等),与内置记忆并行不替代
技能 SKILL.md~/.hermes/skills/<名>/SKILL.md,YAML frontmatter + When to Use/Procedure/Pitfalls/Verification
学习循环每轮后台自我评审,自动沉淀记忆/技能;/refine 立即触发一次
策展器 curatorhermes curator 后台维护技能质量;curator lock 把技能设为只读
写审批 write_approvalmemory.write_approval / skills.write_approval 开启后,写入先进 ~/.hermes/pending/ 待批
profile 档案~/.hermes/profiles/<名>/,独立配置、模型、记忆、技能、凭证;SOUL.md 定人设
网关 gatewayhermes gateway 把 Agent 常驻接到 Telegram / Discord / Slack / WhatsApp / Signal / Email
沙箱 terminal命令执行后端:local / Docker / SSH / Singularity / Modal 等五种
子 Agent隔离的并行工作流;/bg 把任务丢到后台会话,/agents 看活跃任务
journey 时间线hermes journey(别名 learning / memory-graph):它学到的记忆与技能的成长记录
渐进披露技能按需加载:列表约 3k token → 展开单个 SKILL.md → 再读其参考文件
SOUL.md每个 profile 的人设文件;Bot 的性格、口吻、行为边界都写在这里

06

实战:亲手跑通一次「长出技能」

目标是让它把一件你每周都做的事固化成技能。全程不到半小时,做完你就理解了记忆、技能、审批三件事如何咬合。

第一步:把任务交给它

Terminal
hermes chat

> 看看这个仓库最近一周的 git log,按「功能/修复/其他」分类,
  写成一份周报存到 reports/ 目录。以后每周一都按这个格式来。

它会探索仓库、跑 git 命令、写文件——每一步都要你在终端里批准。这是正常节奏,先让它把事情做完。

第二步:让它复盘,触发评审

对话内
> /refine 把刚才的流程整理成可复用的技能

# 也可以什么都不打:每轮结束的后台评审会自动做这件事

它会从这次经历里提炼「步骤 + 坑 + 验证方法」——技能沉淀的是经验而不是流水账,这正是它和「导出聊天记录」的区别。

第三步:检查与批准落盘

Terminal · 审批与查看
> /skills pending            # 开了 write_approval 时,待批写入在这里
> /skills diff <id>          # 逐行看它想写什么
> /skills approve <id>

cat ~/.hermes/skills/weekly-report/SKILL.md   # 成品长这样,随时手改

第四步:下次当命令用

Terminal · 技能即命令
hermes chat

> /weekly-report 本周重点写后端性能优化

# 复盘时间线,看它这段时间学会了什么
hermes journey
进阶玩法:用 hermes bundles create 把多个技能捆成一个 /<bundle> 命令;把周报类例行任务挂到 /cron 或网关平台,让它每周一自动交作业——这就是「长期自主」的最小可用形态。

第五步:把例行任务挂上 cron

对话内 · 定时自动化
> /cron add 每周一早上九点,跑 weekly-report 技能并把周报发给我

> /cron list        # 所有例行任务、下次触发时间
> /cron pause <id>  # 出门前先按下暂停

cron 也能在会话外管理(hermes cron status / runs)。挂定时任务的前提是把审批与沙箱想清楚——见下一节坑一。

07

避坑:自主性是双刃剑

坑一:自主权限的边界没想清楚

/yolo 跳过危险命令审批,/approvals off 全放行——配合常驻网关和 cron,等于让它 24 小时无人值守地在你机器上执行东西。默认档位是安全的:一次性请求默认拒绝自动执行(approvals.single_query_mode: deny),写审批默认关闭但建议打开(memory.write_approval / skills.write_approval)。把它的「放行层级」记成三道闸:

第一道:工具审批
跑命令、改文件默认弹审批;/approvals manual → smart → off 逐级放开
第二道:写入审批
memory.write_approval / skills.write_approval,管住它对记忆和技能的改写
第三道:全局急停
hermes pause 一键冻结所有 cron 与网关轮次,hermes resume 恢复

养成两个习惯:

Terminal · 安全阀
hermes pause      # 全局急停:cron、网关轮次全部暂停
hermes resume     # 恢复

> /approvals smart   # 长期自主前至少用 smart,别一上来就 off
一条硬线:给 Bot 挂 cron 之前,先在手动模式下完整跑过同样的任务,并确认沙箱后端(Docker / SSH 等隔离环境)配置好了——别让自主任务直接跑在裸机上。

坑二:记忆膨胀

MEMORY.md 有 2200 字符硬上限,写满了工具会报错并要求它「先删再加」;但更隐蔽的问题是记了没用的——过期结论、一次性事实慢慢挤占常驻 token。定期做三件事:hermes journey list 看沉淀了什么、journey delete <id> 清掉过时项、直接手编 ~/.hermes/memories/MEMORY.md(它就是普通 Markdown)。改完记忆记得 /new 开新会话,新快照才生效。

坑三:技能质量退化

自进化系统的通病:技能越写越多、越写越肥,坏技能还会被后续修改放大。官方自带的防线要知道:尺寸警戒线(正文过大约 24k 字符会触发 oversized-body 告警)、引用膨胀(references 超过 60 个文件告警)、内容扫描(skills.guard_agent_created)与安装时安全扫描。你要做的是三招:

Terminal · 技能保质
hermes skills audit      # 体检:找出有问题的技能
hermes curator status    # 策展器在维护什么
hermes curator lock <技能>  # 核心技能设为只读,不许它乱改

坑四:本地小模型 vs 云端模型的能力差

本地跑开源模型很香(数据不出机器),但别高估小模型:官方排障文档明确提示,30B 以下的小模型经常「嘴上说保存了」,实际根本没调用工具——这是幻觉,不是记忆丢失,先查 /memory pending 和技能目录。官方对本地配置的底线是:显存 8 GB 起跑小模型、16 GB 跑 27–35B 高质量档、量化别低于 4-bit、上下文至少 64K。务实做法是混合:主力任务用云端强模型,后台评审(auxiliary.background_review)这类低成本环节交给本地小模型。

08

进阶方向与官方资源

下一步去哪:想让它完全离线工作,先看 ollama.html 把本地模型跑起来,再回 hermes 配 local_runtime 或 Ollama 端点;想研究国产开源模型驱动的工程化脚手架,翻 deepseek-harness.html。

09

收尾:照着勾一遍

0 / 5

已复制