5.1.6 如何让 AI 记住你的项目——上下文管理策略
一句话破题
AI 的"记忆"是有限的,有效组织和投喂上下文是高效协作的关键。
理解 AI 的"记忆"限制
AI 并不真的"记住"你的项目。每次对话,它只能看到:
- 当前对话历史(有 token 数量限制)
- 你主动提供的文件内容
- 工具读取的代码片段
上下文管理的三个层次
层次一:项目级上下文
在项目根目录创建一个 CONTEXT.md 或 AI_INSTRUCTIONS.md 文件:
markdown
# 项目概述
这是一个博客系统,使用 Next.js 16 + Prisma + PostgreSQL
# 技术规范
- 使用 App Router,不使用 Pages Router
- 样式统一使用 Tailwind CSS
- 数据库操作统一使用 Prisma
- API 遵循 RESTful 规范
# 目录结构
- app/:页面和 API 路由
- components/:可复用组件
- lib/:工具函数
- prisma/:数据库 schema
# 代码规范
- 组件使用 PascalCase 命名
- 文件使用 kebab-case 命名
- 优先使用服务器组件层次二:模块级上下文
在复杂模块目录下创建 README.md:
markdown
# 用户认证模块
## 功能
- 邮箱密码登录
- 第三方 OAuth(GitHub、Google)
- JWT Token 管理
## 相关文件
- app/api/auth/:认证相关 API
- lib/auth.ts:认证工具函数
- middleware.ts:路由保护层次三:任务级上下文
每次对话开始时,提供当前任务的上下文:
当前任务:实现文章搜索功能
相关文件:
- app/api/posts/route.ts(已有文章列表 API)
- prisma/schema.prisma(Post 模型)
需求:在 GET /api/posts 接口增加 search 参数,
支持按标题和内容模糊搜索实用技巧
1. 使用 @ 引用文件
在 Cursor 等 AI IDE 中,使用 @文件名 快速引入上下文:
@schema.prisma @route.ts
请在这个基础上添加分类功能2. 创建上下文快照
在重要节点保存当前状态的描述:
markdown
## 2024-01-15 状态快照
### 已完成
- 用户注册登录
- 文章 CRUD
- 基本 UI
### 进行中
- 评论功能
### 待开始
- 搜索
- RSS3. 分段投喂
如果上下文太长,分成多次投喂:
第一次:我要给你介绍一下项目背景...
第二次:这是相关的数据模型...
第三次:现在请帮我实现这个功能...常见问题
Q:AI 忘记了之前说过的内容怎么办?
A:重新提供关键信息,或者在新对话开始时先总结之前的进展。
Q:项目太大,AI 无法理解全貌怎么办?
A:只提供与当前任务相关的文件,不需要让 AI 了解整个项目。
Q:如何判断上下文是否足够?
A:如果 AI 的回答明显偏离预期,很可能是上下文不足。补充相关信息后重试。
