一、上下文文件:告诉 Agent「你是谁、在什么项目里」
1. 什么是上下文文件
Hermes 会自动发现并加载一些说明文件,用来描述「项目规则」和「Agent 人格」。分两类:
项目上下文文件:描述当前仓库/目录的规则约定
SOUL.md:描述这个 Hermes 实例的人格和沟通风格
2. 支持的上下文文件
3. 加载流程
启动加载(会话开始时):
从当前目录向上查找项目上下文文件(到 git root)
按
.hermes.md→AGENTS.md→CLAUDE.md→.cursorrules优先级只加载一种超过 20,000 字符会截断:保留前 70% 和后 20%
渐进加载(会话进行中):Agent 调用工具碰到文件路径时,会从路径所在目录向上查 5 层父目录,按优先级加载首个匹配的文件(超过 8,000 字符截断)。
重要经验:重要规则要放在文件开头或结尾,因为截断时保留的是头尾。
4. 安全扫描(防提示词注入)
Hermes 加载上下文文件前会做安全扫描,命中以下内容会阻止加载:
指令覆盖("ignore previous instructions")
欺骗行为("do not tell the user")
系统提示词覆盖
隐藏 HTML 注释 / 隐藏 div
凭证外泄(
curl ... $API_KEY)敏感文件读取(
cat .env)不可见字符(零宽空格等)
被阻止的文件位置会替换成 [BLOCKED: ... prompt injection ...]。
5. @ 上下文引用
对话中可以用 @file 和 @url 注入上下文:
@file:README.md 这个项目 README 写了什么?
@url:https://example.com/doc 根据这个文档回答配合 Tab 补全可以快速引用文件路径。
6. SOUL.md 与人格
SOUL.md 是 Agent 的「灵魂」,拼在系统提示词开头。默认在 ~/.hermes/SOUL.md。
适合写:语气、风格、直接程度、默认互动方式、不希望出现的表达。
不适合写:项目规则、文件路径(这些放 AGENTS.md)。
/personality 可以临时切换人格(不改 SOUL.md),内置 14 种:
二、持久记忆:跨会话记住关键信息
1. 记忆系统是什么
Hermes 有一套「有容量上限、由 Agent 自己维护」的记忆系统。它会跨会话保存你的偏好、项目环境、工具习惯,并在新会话开始时注入系统提示词。
记忆由两个文件组成,在 ~/.hermes/memories/:
2. 记忆长什么样
MEMORY (your personal notes) [67% — 1,474/2,200 chars]
User's project is a Rust web service at ~/code/myapi using Axum + SQLx
§
This machine runs Ubuntu 22.04, has Docker and Podman installed
§
User prefers concise responses, dislikes verbose explanations§ 分隔不同条目,标题显示容量占用。
3. memory 工具的用法
Agent 通过 memory 工具管理记忆,三个动作:
例子(Agent 内部调用):
memory(action="replace", target="memory",
old_text="dark mode",
content="User prefers light mode in VS Code, dark mode in terminal")4. 什么该记、什么不该记
该记:
用户偏好("用户喜欢 TypeScript")
环境事实("这台服务器跑 Debian 12 + PostgreSQL 16")
用户纠正("Docker 不要用 sudo,已在 docker 组")
项目约定("tabs、120 字符行宽")
显式要求("API key 每月轮换")
不该记:
太模糊的信息
能轻易重新查到的通用知识
大段代码、日志
临时任务状态、一次性路径
已写在 SOUL.md / AGENTS.md 里的内容
写法要点:写成陈述性事实,不是指令。
✓
User prefers concise responses✗
Always respond concisely
5. 记忆 vs 会话搜索
简单记:memory 存"以后经常要用的稳定事实",session_search 答"上次我们聊过啥"。
6. 外部记忆提供商(进阶)
内置记忆不够用的话,可以接入外部记忆提供商(同一时间只能启用一个):
hermes memory setup # 交互式配置
hermes memory status # 查看状态
hermes memory off # 关闭入门推荐 honcho 或 mem0;需要知识图谱、实体关系再考虑 hindsight;要混合检索、冲突检测看 retaindb 等。
评论区