每个文件分别做什么?

"我跟 agent 说过一件事,它却忘了。""哪个文件才是 agent 的大脑?""我改了 SOUL.md——它怎么还不知道我的名字?"这些问题归根到底是一回事:Hermes Agent 由若干 markdown 文件塑造,而每个文件职责不同。本页把它们汇总在一处。想深入了解其中任何一个,可跳转阅读持久记忆、人格与 SOUL.md 和上下文文件。

总表

文件存放内容由谁写入agent 何时看到存放位置
SOUL.mdagent 的核心身份——人格、语气、沟通风格、风格上应避免之处你。若文件不存在,Hermes 会自动生成一个起始文件;已有文件绝不会被覆盖会话启动时,作为系统提示词的第 1 个槽位~/.hermes/SOUL.md(自定义 home 时为 $HERMES_HOME/SOUL.md)——绝不在工作目录
USER.md用户画像——你的名字、角色、偏好、沟通风格、期望agent,通过 memory 工具写入(你可以用 write_approval 把关保存,或用 hermes journey edit 编辑条目)会话启动时以冻结快照注入系统提示词~/.hermes/memories/
MEMORY.mdagent 的私人笔记——环境事实、项目约定、工具怪癖、学到的东西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、渐进式发现、安全扫描