Akshay 详细拆解了 Hermes Agent 的 ~/.hermes 文件夹结构。理解这个布局是把 Hermes 从黑盒变成可定制系统的关键。
配置层
config.yaml —— 所有非秘密配置的单一真相源:模型选择、终端后端、工具启用、MCP 服务器。
env/ —— 存放 API keys 和 bot tokens。
auth.json —— 存储 OAuth 凭证。
身份层
SOUL.md —— 占据 system prompt 的 slot #1,在一切其他内容之前加载。定义 Agent 是谁:个性、语调、沟通风格、硬性限制。Agent 写的、创建的、记住的一切都必须经过这层身份过滤器。
知识记忆层
memories/ 包含两个精简文件:
- MEMORY.md (2,200 字符) —— 项目约定、工具 quirks、经验教训
- USER.md (1,375 字符) —— 用户画像
两者在会话开始时作为冻结快照注入 system prompt。当它们填满时,Agent 自动整合:合并条目、删除冗余、只保留密集有用的内容。
能力层
skills/ —— 学习循环的所在地。每个技能是自包含能力:
- SKILL.md(流程说明)
- references/(Agent 阅读的文档)
- scripts/(可执行辅助脚本)
技能来源三处:Hermes 自带、通过 hub/ 从技能中心下载、Agent 在会话中自行创建。
Hermes 自带 687 个技能,横跨 18 个类别。任何 GitHub 仓库都可作为自定义 tap 添加。
运行时状态层
sessions/ —— 存储各平台的会话元数据。
state.db —— 支持 tier 2 记忆的 SQLite 数据库,带 FTS5 索引。让"三周前我们讨论了什么?"在 CLI 和消息界面间真正可工作。
自动化层
cron/ —— 存放调度任务。jobs.json 定义任务,output/ 存放输出。网关守护进程每 60 秒 tick 一次,在隔离会话中运行到期任务。用 plain English 描述调度,Hermes 自动转换。
扩展 + 可观测性层
plugins/、hooks/、skins/ —— 用户定制的表面区域。
logs/ —— agent.log、gateway.log、errors.log 用于调试。
为什么这很重要
你不会手动编辑大多数文件。但知道这个布局意味着你精确理解身份、记忆、技能、自动化和状态存在哪里,以及它们如何连接。
这不是一个工具的配置文件夹。这是一个完整的 Agent 操作系统的文件系统视图。