不同类型记忆文件的实际内容、文件大小与 Token 关系、以及上下文长度对性能的影响
Claude Code 使用 多个独立的 md 文件 存储不同类型的记忆,而不是把所有东西塞进一个文件:
~/CLAUDE.md 或 ./CLAUDE.md
项目的核心记忆文件,定义项目概述、技术栈、编码规范、目录结构、命令脚本等。
~/.claude/projects/{id}/auto-memory.md
Claude 自动学习的记忆,存储重要决策、已知问题、解决方案记录。
./PLANNING.md
项目愿景、架构设计、技术选型、约束条件、成功指标、发展路线图。
./TASKS.md
任务追踪清单,按里程碑/冲刺组织,包含完成状态、优先级、负责人。
./.claude/rules/{name}.md
模块化规则集,按功能分类如 coding-standards.md、api-guidelines.md。
./PRD.md
产品需求文档,描述功能需求、用户故事、验收标准、非功能性需求。
# 项目愿景
核心使命:创建一个AI驱动的生产力教练,将15本影响力生产力书籍的精华,通过极简、美观的聊天界面,转化为个性化的可执行指导。
# 技术栈
- React 18+ / TypeScript / Vite / Tailwind CSS / Framer Motion
- Gemini 2.5 Pro API(2M+ token 上下文窗口)
- 部署:Vercel
# 架构流程
用户浏览器 → React 应用 → Serverless API → Gemini API
# 知识库(15本书)
| 序号 | 书名 | 核心主题 |
|------|------|----------|
| 1 | Atomic Habits | 习惯养成、系统 |
| 2 | Deep Work | 专注力、注意力管理 |
| 3 | The Power of Habit | 习惯回路、行为改变 |
| ... | ... | ... |
# 发展路线图
| 阶段 | 时间 | 内容 |
|------|------|------|
| Phase 1: MVP | 2-3 周 | 核心聊天界面、知识库集成 |
| Phase 2: 增强体验 | 1-2 周 | 跨会话历史、智能建议 |
| Phase 3: 高级功能 | 未来 | 用户账户、个性化学习路径 |
## Milestone 1: 工作原型 (Week 1)
- [x] 项目结构搭建
- [x] 知识库系统集成
- [x] 玻璃拟态设计系统
- [x] 核心 UI 组件 (GlassCard, GlassButton)
- [ ] 浏览器玻璃效果测试
- [ ] API 层开发 (Gemini)
## API 集成
- [ ] 安全 serverless 函数
- [ ] 错误处理与重试机制
- [ ] 限流保护
## 移动端优化
- [ ] 触摸交互优化
- [ ] 键盘布局适配
## Phase 2 (Week 4-5)
- [ ] 对话会话管理
- [ ] 性能优化
- [ ] 高级功能 (问题建议、快速操作)
## Project Overview
AI驱动的生产力教练应用,服务于希望提升效率的知识工作者。
核心功能是聊天式知识问答,优先保证:回复质量 > 用户体验 > 新功能。
## Tech Stack
- React 18+ / TypeScript (strict mode)
- Vite / Tailwind CSS / Framer Motion
- Gemini 2.5 Pro API
- Vercel 部署
禁止引入:
- Redux (无状态管理必要)
- styled-components (已用 Tailwind)
- jQuery
## Coding Conventions
- 函数不超过 50 行
- 组件不超过 150 行
- 每个文件只导出一个组件
- 条件分支使用早期返回
- 禁止遗留死代码和注释掉的代码
## Architecture
- src/components/ — 可复用 UI 组件
- src/lib/ — 工具函数和共享逻辑
- src/features/ — 业务逻辑模块
- src/app/ — 页面和路由
## Commands
- npm run dev — 开发服务器
- npm run build — 生产构建
- npm run lint — 代码检查
## Safety Rules
除非明确要求,否则不要:
- 修改 API 密钥或环境变量
- 重构超过 3 个文件
- 引入新的第三方依赖
- 修改数据库 schema
## File Usage
- Always read PLANNING.md at start of conversation
- Check TASKS.md before starting work
- Mark completed tasks in TASKS.md immediately
# Coding Standards
## TypeScript
- 使用 strict mode
- 禁止使用 any 类型,使用 unknown 代替
- 优先使用 const,必要时使用 let
- 接口命名使用 PascalCase
- 函数命名使用 camelCase
## React
- 使用函数组件 + Hooks
- 组件文件名使用 PascalCase.tsx
- 提取可复用的 UI 到 components/
- 业务逻辑提取到 hooks/ 或 lib/
## CSS / Tailwind
- 优先使用 Tailwind 工具类
- 复杂样式使用 CSS 变量
- 避免内联样式
## Git Commits
- feat: 新功能
- fix: 修复 bug
- docs: 文档更新
- style: 代码格式
- refactor: 重构
- test: 测试
- chore: 构建/工具
# Auto Memory
# Last updated: 2026-05-07
## 重要决策
- 选择 Gemini 2.5 Pro 而非 GPT-4:原因:2M token 上下文窗口更适合知识库打包
- 采用玻璃拟态设计:参考 Apple iOS 设计语言
- 知识库直接打包进 React:避免 RAG 复杂度
## 已知问题
- 移动端触摸事件需要额外处理
- Tailwind 玻璃效果在某些 Android 浏览器不支持
- Gemini API 有速率限制,需要实现重试机制
## 解决方案记录
- 玻璃效果兼容性:使用 @supports 特性检测
- API 重试:使用指数退避策略,最多重试 3 次
- 包体积优化:使用 dynamic import 懒加载知识库
## 用户偏好
- 用户偏好简洁的回复,避免冗长的解释
- 用户经常忘记运行测试,需要在提交前提醒
Claude Code 的上下文窗口是 200,000 tokens,但这并不意味着你可以无限塞内容:
拖动滑块查看不同文件大小对上下文的影响
📊 总计:14 KB ≈ ~3,500 tokens
💡 200,000 token 上下文窗口 ≈ 150,000 中文字符 ≈ 150 页文档
| 文件大小 | 估算 Token 数 | 占上下文比例 | 建议 |
|---|---|---|---|
| < 1 KB | ~250 tokens | 0.1% | 太简略,补充内容 |
| 1-5 KB | 250-1,250 tokens | 0.1-0.6% | ✅ 理想范围 |
| 5-10 KB | 1,250-2,500 tokens | 0.6-1.3% | 良好,注意精简 |
| 10-50 KB | 2,500-12,500 tokens | 1.3-6.3% | ⚠️ 开始影响对话空间 |
| > 50 KB | > 12,500 tokens | > 6.3% | ❌ 建议拆分或精简 |
响应质量最佳,模型注意力分布均匀
"中间迷失"效应开始显现
对话历史被大幅压缩
| 组成部分 | Token 数 | 占比 | 说明 |
|---|---|---|---|
| 系统提示 | ~20,000 | 10% | Anthropic 内置的基础行为定义 |
| CLAUDE.md 等记忆文件 | ~10,000 | 5% | 项目记忆,通常 1-5KB |
| Auto Memory | ~5,000 | 2.5% | 自动学习的知识 |
| MCP 工具定义 | 900-51,000 | 0.5-25% | 取决于配置的 MCP 服务数量 |
| 自动压缩缓冲区 | ~33,000 | 16.5% | 用于压缩对话历史的预留空间 |
| 可用对话空间 | ~114,000 | 57% | 实际可用于对话的 token |
会,但影响有限。
Claude Code 的上下文窗口是 200,000 tokens,CLAUDE.md 通常只有 1-5KB(约 250-1,250 tokens),只占上下文的 0.1-0.6%。
真正影响速度的是:
💡 最佳实践:保持 CLAUDE.md 在 3-5KB 以内,让对话历史有足够的空间。
"Middle Lost"(中间迷失) 是 LLM 的一个特性:模型对上下文开头和结尾的信息注意力最强,中间部分的信息容易被降权。
在 150K tokens 时,Claude Code 的响应质量开始下降,即使上下文窗口还有 50K tokens 的余量。
💡 解决策略:
/compact 命令压缩对话历史当上下文使用量达到 64-75%(约 128,000-150,000 tokens)时,Claude Code 会自动触发压缩机制:
⚠️ 注意:自动压缩可能在任务中途打断你。建议在逻辑断点手动执行 /compact。
不会,反而是优化策略。
Claude Code 采用递归向上加载机制:
💡 模块化设计的好处:
| 维度 | ✅ 推荐 | ❌ 避免 |
|---|---|---|
| 文件数量 | 按功能拆分(CLAUDE.md + rules/) | 所有内容塞进一个 CLAUDE.md |
| 文件大小 | 每个文件 1-5KB | 单个文件超过 50KB |
| 内容位置 | 重要规则放在文件开头 | 规则散落在文件各处 |
| 规则表述 | "函数不超过 50 行" | "写高质量代码" |
| 自动记忆 | 让 Claude 自动学习重要决策 | 从不更新 auto-memory |
| 上下文管理 | 定期 /compact 压缩 | 让对话无限增长 |