上下文管理
学习如何有效管理上下文,在整个开发会话中与Claude Code保持高效、专注的对话。
理解上下文限制
Claude Code有上下文限制,会影响长时间对话:
- 每次对话的令牌限制
- 复杂代码库的内存约束
- 过多上下文的性能影响
上下文管理策略
1. 会话规划
将大任务分解为多个会话
- 在多个专注会话中规划主要功能
- 在单个会话中完成相关子任务
- 使用清晰的会话边界
2. 上下文重置技巧
何时重置
- 完成主要里程碑后
- 对话变得不专注时
- 开始无关任务前
- 达到上下文限制时
如何有效重置
# 用摘要开始新会话
claude --resume "已完成用户认证。现在实现仪表板功能。"
3. 信息优先级排序
保持上下文相关性
- 专注于当前任务文件
- 移除过时的讨论线程
- 优先考虑活跃代码部分
- 归档已完成工作的引用
有效的上下文模式
CLAUDE.md方法
创建持久上下文文件:
# 项目上下文
## 当前冲刺
- [ ] 用户仪表板实现
- [ ] 分析API集成
- [ ] 移动端响应式修复
## 关键文件
- `src/components/Dashboard/` - 主仪表板组件
- `src/api/analytics.ts` - 分析API客户端
- `src/hooks/useAnalytics.ts` - 分析数据钩子
## 重要决策
- 使用React Query进行数据获取
- 使用Material-UI作为组件库
- 启用TypeScript严格模式
## 已知问题
- 仪表板加载性能(在issue #123中跟踪)
- 小屏幕上移动菜单溢出
渐进式上下文构建
从宽泛开始,然后聚焦
- 从高层概览开始
- 缩小到特定模块
- 专注于当前任务
- 根据需要扩展上下文
上下文交接
会话之间
上一个会话使用JWT令牌完成了用户认证。
下一步:实现受保护路由和用户配置文件管理。
关键文件:src/auth/,src/components/Profile/
当前分支:feature/user-profiles
上下文组织技巧
1. 分层上下文
第1层:项目级别
- 整体架构
- 技术栈决策
- 编码标准
第2层:功能级别
- 功能需求
- 相关组件
- API端点
第3层:任务级别
- 具体实现细节
- 当前文件内容
- 下一步行动
2. 上下文锚定
使用参考点
- 具体文件路径
- 函数/类名称
- 配置部分
- 之前的决策
锚点示例
基于src/services/user.ts中的UserService模式,
实现具有类似错误处理的ProjectService。
3. 上下文压缩
需要时进行总结
- 将长讨论压缩为要点
- 提取决策理由
- 归档实现细节
- 只保留活跃上下文
上下文管理工具
1. CLAUDE.md文件
# 上下文跟踪器
## 会话目标
- [ ] 修复移动端响应式问题
- [ ] 添加用户偏好设置
- [ ] 更新文档
## 活跃文件
- src/components/MobileNav.tsx
- src/contexts/UserPreferences.tsx
- docs/user-guide.md
## 已做决策
- 使用localStorage存储用户偏好
- 在768px、1024px实现响应式断点
- 在设置面板添加深色模式切换
2. 会话书签
## 快速参考
- 主组件:`src/components/Dashboard/index.tsx:45`
- API端点:`src/api/routes.ts:127`
- 类型定义:`src/types/user.ts:12`
- 测试文件:`__tests__/Dashboard.test.tsx`
3. 上下文验证
定期检查
- 确认对当前目标的理解
- 验证文件位置和内容
- 验证关于项目状态的假设
- 随着项目发展更新上下文
最佳实践
应该做的
- 每个会话都以清晰的上下文开始
- 定期更新CLAUDE.md
- 使用具体的文件引用
- 总结复杂讨论
- 归档已完成的工作
不应该做的
- 让上下文在没有纠正的情况下偏移
- 包含无关的历史细节
- 假设Claude记住之前的会话
- 使用不必要的技术细节过载
- 跳过”快速”任务的上下文设置
上下文问题疑难解答
当Claude看起来困惑时
- 重置并重新聚焦:清楚地陈述当前目标
- 提供新上下文:分享相关文件内容
- 确认假设:验证项目状态理解
- 简化范围:分解复杂请求
当达到上下文限制时
- 总结进度:提取关键决策和下一步
- 开始新会话:使用带摘要的—resume
- 优先考虑内容:专注于立即相关的信息
- 归档细节:将已完成工作移至文档
下一步:方向修正 - 学习如何在Claude偏离轨道时进行课程纠正。
最后更新于: