OpenClaw 企业定制 私人订制工作流 优化运维 openclaw记忆优化 问题咨询解决 请加微信交流
Context Files是Hermes Agent的”项目记忆”机制。当你在一个项目目录里工作时,放一个特殊的文件,AI就能自动理解项目的背景、技术栈、约定俗成,不用每次重复说明。这篇讲清楚Context Files是什么、怎么用、以及最佳实践。
Context Files是什么
Context Files是放在项目目录里的特殊配置文件,告诉AI这个项目的情况。AI每次进入这个目录时会自动加载,获得项目上下文。
就像给AI一本”项目手册”,它翻开就知道这是什么项目、用什么技术、要注意什么。
核心文件:PROJECT.md
在项目根目录创建PROJECT.md:
touch PROJECT.md
# PROJECT.md 示例
## 项目概述
这是一个电商后端API,使用Python FastAPI开发。
## 技术栈
- Python 3.11
- FastAPI
- PostgreSQL
- Redis缓存
- Docker部署
## 项目结构
```
/app
/api # API路由
/core # 核心配置
/models # 数据库模型
/services # 业务逻辑
/tests # 测试
```
## 约定
- API路由统一返回JSON
- 使用async/await异步编程
- 所有配置从环境变量读取
- 数据库使用SQLAlchemy ORM
## 当前开发重点
正在开发用户积分系统,预计下周完成。
AI加载过程
用户进入项目目录
↓
Hermes自动发现PROJECT.md
↓
加载文件内容
↓
结合项目上下文回答问题
↓
如果用户问"怎么加积分接口"
AI就知道项目结构、技术栈、约定
给出精准的答案
多文件支持
可以创建多个上下文文件:
PROJECT.md # 项目概述
ARCHITECTURE.md # 架构说明
API.md # API文档
CONTRIBUTING.md # 开发指南
DEPLOYMENT.md # 部署说明
这些文件都会被自动加载。
配置文件路径
默认在项目根目录,也可以指定:
# config.yaml
context:
files:
- "PROJECT.md"
- "docs/ARCHITECTURE.md"
- ".hermes/project.md"
auto_discover: true # 自动发现
scan_depth: 3 # 扫描深度
全局Context Files
# 在~/.hermes/创建
~/.hermes/context/PROJECT.md # 全局项目模板
# 内容会被所有项目继承
自动发现机制
Hermes会自动扫描目录,找到Context Files:
context:
auto_discover:
enabled: true
patterns:
- "PROJECT.md"
- "CONTEXT.md"
- ".hermes/project.md"
- "README.md" # 如果包含项目描述也加载
exclude:
- "node_modules"
- ".git"
- "dist"
与Memory System的区别
| 对比项 | Memory System | Context Files |
|---|---|---|
| 存储位置 | ~/.hermes/memory/ | 项目目录内 |
| 内容类型 | 跨项目通用记忆 | 特定项目信息 |
| 生命周期 | 持久化,跨会话 | 跟随项目 |
| 加载方式 | AI主动召回 | 进入目录自动加载 |
两者互补:Context Files记住项目信息,Memory记住用户偏好和跨项目知识。
使用建议
- 项目特定信息 → Context Files
- 个人偏好和习惯 → Memory
- 代码约定和模式 → Context Files
- 用户背景和经历 → Memory
实际使用示例
新加入项目
# 第一步:创建Context File
cd ~/my-project
cat > PROJECT.md << 'EOF'
## 项目:电商API
## 技术:Python FastAPI + PostgreSQL
## 当前任务:开发积分系统
## 代码约定:使用async,配置放.env
EOF
# 第二步:问AI问题
用户:这个积分接口应该怎么设计?
AI自动理解项目背景:
- 知道用FastAPI
- 知道数据库用PostgreSQL
- 知道代码约定
给出符合项目风格的建议
代码审查
用户:帮我review一下这个模块
AI加载Context Files:
- 了解项目结构
- 了解代码约定
- 了解技术栈
给出符合项目风格的审查意见
添加新功能
用户:帮我加一个优惠券API
AI理解项目:
- RESTful约定
- FastAPI用法
- 数据库模型格式
直接生成符合项目风格的代码
模板系统
可以创建Context File模板:
# ~/.hermes/templates/project.md
## 项目概述
[项目名称] - [一句话描述]
## 技术栈
- [技术1]
- [技术2]
## 项目结构
```
[目录结构]
```
## 约定俗成
- [约定1]
- [约定2]
## 当前状态
- 当前开发阶段:[阶段]
- 正在进行:[任务]
- 遇到的问题:[问题]
# 使用模板创建项目上下文
hermes context init --template project
项目类型模板
针对不同项目类型有不同模板:
# Web应用
hermes context init --template web
# API服务
hermes context init --template api
# 数据科学
hermes context init --template datascience
# 前端项目
hermes context init --template frontend
进阶用法
分层上下文
# 项目级别
./PROJECT.md
# 模块级别
./services/PROJECT.md
# 子模块级别
./services/payment/PROJECT.md
AI会从外到内加载,越具体的越优先。
动态上下文
# 在PROJECT.md中引用其他文件
## 架构图
参见: docs/architecture.png
## API文档
参见: docs/api.md
上下文版本管理
# PROJECT.md可以加入版本
## 版本:1.2.3
## 更新日期:2024-01-15
## 更新内容:添加积分系统说明
最佳实践
- 保持简洁:不要写太长,200字以内最佳
- 重点突出:写清楚技术栈、目录结构、代码约定
- 及时更新:项目有变化时更新Context Files
- 结构化:用Markdown标题分清层次
避免的写法
# 太多细节
## 依赖版本
django==4.2.1
djangorestframework==3.14.0
psycopg2==2.9.9
# ... 50行依赖
# 正确做法
## 依赖
- Django 4.2
- DRF 3.14
- PostgreSQL 15
常见问题
Context Files不生效?
检查:1)文件名是否正确(PROJECT.md);2)是否在项目根目录;3)config里auto_discover是否开启。
文件太长了怎么办?
拆分成多个文件,或只保留最关键的信息。Context Files应该简洁。
多个项目上下文冲突?
切换目录时AI会自动更新上下文。明确告诉AI当前在哪个项目:/project use my-api
可以禁用自动发现吗?
可以:context.auto_discover.enabled: false,手动指定要加载的文件。
总结
Context Files是项目的"说明书",让AI快速了解项目背景。
核心价值:
- 一次配置,每次进入自动加载
- AI回答更精准,符合项目风格
- 新成员加入时快速上手
- 代码约定统一,减少沟通成本
建议每个项目都创建PROJECT.md。








暂无评论内容