每个文件分别做什么?
"我跟 agent 说过一件事,它却忘了。""哪个文件才是 agent 的大脑?""我改了 SOUL.md——它怎么还不知道我的名字?"这些问题归根到底是一回事:Hermes Agent 由若干 markdown 文件塑造,而每个文件职责不同。本页把它们汇总在一处。想深入了解其中任何一个,可跳转阅读持久记忆、人格与 SOUL.md 和上下文文件。
总表
| 文件 | 存放内容 | 由谁写入 | agent 何时看到 | 存放位置 |
|---|---|---|---|---|
| SOUL.md | agent 的核心身份——人格、语气、沟通风格、风格上应避免之处 | 你。若文件不存在,Hermes 会自动生成一个起始文件;已有文件绝不会被覆盖 | 会话启动时,作为系统提示词的第 1 个槽位 | ~/.hermes/SOUL.md(自定义 home 时为 $HERMES_HOME/SOUL.md)——绝不在工作目录 |
| USER.md | 用户画像——你的名字、角色、偏好、沟通风格、期望 | agent,通过 memory 工具写入(你可以用 write_approval 把关保存,或用 hermes journey edit 编辑条目) | 会话启动时以冻结快照注入系统提示词 | ~/.hermes/memories/ |
| MEMORY.md | agent 的私人笔记——环境事实、项目约定、工具怪癖、学到的东西 | agent,通过 memory 工具(与 USER.md 相同的把关与编辑选项) | 会话启动时以冻结快照注入系统提示词 | ~/.hermes/memories/ |
| AGENTS.md | 项目指令、约定、架构——命令、端口、路径、仓库专属工作流 | 你(或项目的作者) | 启动时从你的工作目录加载进系统提示词;当 agent 进入子目录时,会渐进式发现嵌套副本 | 项目工作目录及子目录 |
| .hermes.md / HERMES.md | 项目指令,类似 AGENTS.md 但专属于 Hermes 且优先级最高 | 你 | 启动时加载进系统提示词(首个匹配项优先于 AGENTS.md) | 你的项目——向上查找直到 git 根目录 |
每个会话只加载一种项目上下文类型,首个匹配项胜出:.hermes.md → AGENTS.md → CLAUDE.md → .cursorrules。SOUL.md 始终作为 agent 身份独立加载——它不在这条优先级链中。完整列表(含 CLAUDE.md 和 .cursorrules 兼容性)见上下文文件。
一个好用的速记:
- SOUL.md 是 agent 是谁——如果它应随你到处走,就放在这里。
- USER.md 是你是谁——agent 替你维护它。
- MEMORY.md 是 agent 学到了什么——同样由它自己维护。
- AGENTS.md(或
.hermes.md)是项目需要什么——如果它属于某个项目,就放在这里。
"为什么它忘了我刚说的话?"
记忆(MEMORY.md 和 USER.md)在会话启动时作为一份冻结快照注入系统提示词——当 agent 在会话中途保存内容时,改动会立即写入磁盘,但在下次会话启动前不会出现在系统提示词中。这是有意为之:它为性能保留了 LLM 的前缀缓存,而工具响应始终展示实时状态,所以不会丢失任何东西——开启新会话,更新后的记忆就在那里。详见记忆如何出现在系统提示词中。
常见混淆
"我把关于自己的事实写进了 SOUL.md,但 USER.md 一直是空的"
SOUL.md 和 USER.md 是两套互不投喂的独立系统。SOUL.md 是由你直接编辑的人格文件——它塑造语气与身份,其内容会逐字作为提示词第 1 槽位注入。USER.md 属于持久记忆,由 agent 通过 memory 工具写入。如果你想让关于自己的事实进入 USER.md,就告诉 agent("记住我偏好简洁的回答"),它会自己保存——编辑 SOUL.md 不会填充记忆,记忆条目也不会改变人格。持久的语气与人格指引用 SOUL.md;偏好和画像事实交给记忆。参见SOUL.md 里该放什么? 与两个目标详解。
"我在会话中途告诉它我的名字,它却像从没听过一样"
如果 agent 把你的名字存进了记忆,那保存是成功的——可用 memory 工具的响应或 hermes journey list 检查。你看到的是上面的冻结快照规则:系统提示词不会在会话中途刷新,因此注入的记忆块仍显示会话启动时的状态。agent 在当前对话中仍能使用你告诉它的内容(它在上下文里),而保存的条目从下次会话起会进入系统提示词。会话运行期间你对 SOUL.md 或 AGENTS.md 的编辑同理:上下文在会话启动时组装,因此要重启会话才能接纳改动。
- 想改变 agent 说话方式?编辑
~/.hermes/SOUL.md——人格与 SOUL.md。 - 想让 agent 记住一个事实?直接告诉它——它会自己存入记忆。持久记忆。
- 想设定项目规则?在项目里放一个
AGENTS.md(或.hermes.md)——上下文文件。 - 需要临时改一下人格?用
/personality——它是会话级覆盖,无需改文件。
相关文档
- 持久记忆 —— MEMORY.md、USER.md、
memory工具、容量上限、write_approval - 人格与 SOUL.md —— SOUL.md 内容指引、
/personality预设、提示词栈 - 上下文文件 —— AGENTS.md、
.hermes.md、渐进式发现、安全扫描