维护咨询 大模型部署 问题解决 技能定制 大模型训练
为什么同一个AI,在A项目里表现很聪明,在B项目里却很蠢?
答案是上下文管理。你给AI多少背景信息,决定了它能做出多准确的判断。
Hermes的Context系统包括多层机制:Context Files(项目级上下文)、Context Compression(上下文压缩)、Context Caching(上下文缓存)。理解这三个机制,才能真正发挥Hermes的能力。
## Context Files:项目级上下文
Context Files是Hermes在启动时自动扫描并加载的配置文件。它们决定了AI对当前项目的理解深度。
自动扫描的上下文文件:
SOUL.md # AI人格定义(最高优先级)
AGENTS.md # 项目整体说明和目标
.cursorrules # Cursor IDE的代码规范(Hermes也用)
CLAUDE.md # Claude官方的项目说明
修道院.your-repo-specific-terms # 项目专属术语表
修道院/*.md # 项目根目录下的所有Markdown文档
这些文件在Hermes启动时自动被扫描、处理(安全扫描+长度截断)、注入到系统提示词里。
—
## Context的加载顺序
Hermes的Context Files按以下顺序组装系统提示词:
第一槽:SOUL.md(AI身份)
定义AI是谁,是整个系统的根基。这个槽位的内容不会被Context Files里的同名内容覆盖。
第二槽:AGENTS.md(项目上下文)
描述项目是什么、要解决什么问题、有什么特殊约定。Hermes在项目目录存在时自动加载。
第三槽:Skills索引
已安装的Skills列表,帮助AI了解它能用什么工具。
第四槽:上下文文件
.cursorrules、CLAUDE.md等项目配置文件,定义具体的编码规范、工作流程。
—
## AGENTS.md怎么写
AGENTS.md是给AI看的项目说明书。写得好不好,直接影响AI在项目里的表现。
# AGENTS.md 示例
## 项目背景
这是一个Python的数据分析工具,用于处理电商平台的销售数据。
主要用户是运营团队,数据来源是MySQL数据库。
## 核心任务
1. 每日销售数据汇总报表
2. 爆款商品识别和预警
3. 用户复购率分析
## 数据规范
- 所有金额以"分"为单位存储,输出时转换为"元"
- 日期格式统一为 YYYY-MM-DD
- 缺失值用 None,不要用 0 或空字符串
## 代码风格
- 使用类型注解(type hints)
- 函数文档字符串用Google风格
- 优先使用pandas而不是原生Python处理数据
## 注意事项
- 不要直接修改原始数据文件
- 所有输出保存到 output/ 目录
- 涉及用户数据的操作需要日志记录
有了这份说明,AI在项目里做任何操作都会遵循这些规范。
—
## Context Compression:上下文压缩
当对话变长,Hermes会自动压缩上下文,保持在模型上下文窗口限制内。
压缩策略:
Hermes使用`context_compressor.py`里的算法,对历史对话进行智能压缩:
– 保留关键决策点(用户明确的选择、确认)
– 保留工具调用的结果摘要(不保留完整输出)
– 压缩相邻的重复信息
– 系统提示词和Skills索引不做压缩
压缩的触发条件:
当剩余上下文空间低于阈值(通常是上下文窗口的20%),压缩机制自动触发。用户不会收到通知,但AI的响应可能会开始变得”健忘”——忘记很久之前的细节。
避免压缩影响精度的方法:
把重要的项目背景写成AGENTS.md而不是依赖对话传递。文件里的内容不会被压缩,只有对话历史会被压缩。
—
## Context Caching:上下文缓存
Hermes支持Anthropic的Prompt Caching机制,可以把系统级内容(Skills、工具定义、长的上下文文件)缓存起来,减少每次API调用的token消耗。
缓存的内容:
Skills索引和元数据
工具定义(schema)
长Context Files(如上面的AGENTS.md示例)
系统提示词框架
缓存的更新时机:
当Skills安装、更新或删除时,缓存自动失效并重建。AGENTS.md修改后也会触发相关缓存的更新。
对成本的影响:
对于长的对话(多轮交互),Context Caching可以显著降低API费用——因为系统级内容不需要每次都重新发送。
—
## .cursorrules怎么用
.cursorrules原本是Cursor编辑器的功能,但Hermes也支持读取并遵循其中的代码规范。
# .cursorrules 示例
## 技术栈
- Node.js + TypeScript
- Express + Prisma ORM
- PostgreSQL数据库
## 代码规范
- 路由处理器放在 controllers/ 目录
- 业务逻辑放在 services/ 目录
- 数据库模型放在 models/ 目录
- 每个文件不超过200行
## API设计原则
- RESTful风格
- 统一错误响应格式:{ error: string, code: number }
- 认证使用JWT,放在Authorization header里
## 测试要求
- 核心业务逻辑必须有单元测试
- 测试文件放在 __tests__/ 目录
- 使用Jest框架
Hermes在项目目录发现.cursorrules后,会自动加载并要求AI遵循其中的规范。
—
## 常见问题
Q:AGENTS.md和SOUL.md有什么区别?
A:SOUL.md定义AI是谁(性格、身份),AGENTS.md定义这个项目是什么(背景、目标、约定)。一个是人的设定,一个是项目的说明书。
Q:Context文件太多会影响启动速度吗?
A:会。每个Context文件都需要读取、处理、注入。文件太多或太大(超过截断阈值)会略微增加启动时间。保持Context文件精简(AGENTS.md建议500字以内)是好的实践。
Q:压缩后的对话AI会忘记什么?
A:会忘记压缩前的对话细节,但不会忘记项目背景(AGENTS.md)、编码规范(.cursorrules)和AI人格(SOUL.md)。这也是为什么重要信息要写成文件而不是靠对话传递。
Q:可以禁用Context Compression吗?
A:可以在config.yaml里调整压缩行为的激进程度,但没有完全禁用的选项。上下文窗口是有限的,压缩是必要的机制。
—
## 相关文章








暂无评论内容