在 AI 编码工具和 Cursor 会话之间管理上下文

在使用 AI 编码助手时,最大的挑战之一是在会话和工具之间保持上下文。Cursor 提供了多种机制来保留和共享项目上下文,确保您的 AI 助手始终拥有所需的信息。本指南涵盖上下文管理的最佳实践。
上下文问题
在使用 AI 工具时,您经常面临以下挑战:
- 会话失忆:每次新聊天都是从头开始,没有之前工作的记忆
- 工具切换:在 Cursor、Claude、ChatGPT 或其他工具之间移动会丢失上下文
- 团队共享:团队成员需要访问相同的项目上下文
- 上下文漂移:在长时间会话中,AI 会丢失对原始目标的跟踪
解决方案 1:AGENTS.md - 项目宪法
在您的仓库根目录中创建一个 AGENTS.md 文件。这是所有 AI 工具的单一事实来源。
AGENTS.md 的结构
# 项目:MyApp
## 概述
简要描述此项目的功能及其技术栈。
## 技术栈
- 前端:React 18 + TypeScript + Tailwind CSS
- 后端:Node.js + Express + PostgreSQL
- 测试:Jest + React Testing Library
- 构建:Vite
## 项目结构
src/ components/ # 可复用的 UI 组件 pages/ # 路由级页面 hooks/ # 自定义 React 钩子 utils/ # 辅助函数 types/ # TypeScript 类型 api/ # API 客户端函数
## 构建与测试命令
```bash
npm run dev # 启动开发服务器
npm run build # 生产构建
npm run test # 运行测试
npm run lint # 运行 ESLint
编码标准
- 使用带钩子的函数组件
- 遵循现有的文件组织方式
- 为所有新功能编写测试
- 使用 TypeScript 严格模式
关键决策
- 使用 React Query 进行服务器状态管理
- JWT 令牌存储在 httpOnly cookie 中
- 使用共享类型包的 Monorepo 结构
### 在 Cursor 中引用 AGENTS.md
在每次新聊天开始时:
阅读 AGENTS.md 并帮助我实现 [功能]。遵循所有编码标准并使用现有模式。
## 解决方案 2:Cursor 特定规则
为 Cursor 特定的指南创建 `.cursor/rules/`:
```markdown
---
description: '项目特定的 Cursor 行为'
globs: ['**/*.ts', '**/*.tsx']
alwaysApply: true
---
# Cursor 指南
## 在进行更改之前
1. 阅读 AGENTS.md 以获取项目上下文
2. 检查现有的类似实现
3. 遵循已建立的模式
## 代码生成偏好
- 生成带有显式类型的 TypeScript
- 为公共 API 包含 JSDoc 注释
- 使用现有的错误处理模式
## 测试要求
- 始终为新功能建议测试
- 使用 React Testing Library 进行组件测试
- 使用 MSW 模拟 API 调用
解决方案 3:使用 MCP 的会话内存
使用 MCP(模型上下文协议)服务器实现持久内存:
设置内存 MCP
添加到您的 Cursor MCP 设置中:
{
"mcpServers": {
"memory": {
"command": "npx",
"args": ["-y", "@cursor-memory/server"]
}
}
}
使用内存
存储重要事实:
请记住,我们正在使用 PostgreSQL,其中 users 表包含:
- id (UUID, 主键)
- email (唯一, 已索引)
- created_at (时间戳)
- preferences (JSONB)
在未来的会话中回忆:
你还记得我们的数据库架构吗?
解决方案 4:CONTRACT.md 模式
对于复杂项目,使用定义不变量的契约文件:
# 项目契约
## 不变量(绝不违反)
1. 所有 API 响应必须包含一个 `success` 布尔值
2. 用户 ID 始终是 UUID,绝不使用整数
3. 密码绝不记录或在响应中返回
## 架构规则
1. 领域逻辑位于 `src/domain/`
2. API 路由仅委托给服务
3. 数据库访问仅通过仓库模式
## 当前冲刺目标
- 实现用户认证
- 添加密码重置流程
- 设置电子邮件通知
在每次有意义的更改后更新此文件。
解决方案 5:会话摘要
在每次会话结束时,创建一个摘要:
# 会话摘要:2026-06-22
## 已完成
- [x] 设置 JWT 认证中间件
- [x] 创建登录和注册端点
- [x] 使用 bcrypt 添加密码哈希
## 进行中
- [ ] 电子邮件验证流程(已开始,需要测试)
## 下一步
1. 实现带令牌过期的密码重置
2. 为认证端点添加速率限制
3. 编写集成测试
## 修改的关键文件
- src/middleware/auth.ts (新建)
- src/routes/auth.ts (新建)
- src/services/auth.ts (新建)
- src/models/user.ts (已修改)
## 做出的决策
- 使用 15 分钟 JWT 过期时间配合刷新令牌
- 将刷新令牌存储在 Redis 中
将其保存为 docs/session-summaries/YYYY-MM-DD.md。
解决方案 6:使用 Markdown 的跨工具上下文
在工具之间切换时,使用标准化的上下文格式:
# 上下文转移
## 当前任务
实现用户个人资料页面
## 相关文件
- src/pages/Profile.tsx
- src/components/UserForm.tsx
- src/api/users.ts
## 当前状态
- 个人资料页面骨架已创建
- UserForm 组件需要验证
- API 端点 /api/users/me 返回正确数据
## 阻碍
- 需要决定图像上传方法
## 下一步操作
添加表单验证和提交处理程序
将其复制到任何 AI 工具中以无缝继续。
最佳实践总结
应该做的
- 在项目开始时创建 AGENTS.md
- 架构更改时更新 AGENTS.md
- 使用 Cursor 规则获取工具特定的指南
- 在关闭前总结每个会话
- 使用 MCP 内存存储持久事实
- 对所有上下文文件使用版本控制
不应该做的
- 不要仅依赖 AI 的会话内存
- 不要将上下文保存在外部笔记(Obsidian/Notion)中而不同步
- 不要让上下文文件过时
- 不要在多个文件中重复信息
快速入门清单
对于新项目:
- 使用项目概述创建
AGENTS.md - 为 Cursor 行为设置
.cursor/rules/ - 配置 MCP 内存服务器
- 为架构不变量创建
CONTRACT.md - 设置
docs/session-summaries/目录 - 将所有上下文文件添加到版本控制