上下文系统
AI 的表现好不好,很大程度取决于你给它什么上下文。Claude Code 的上下文系统分两层:系统级的环境信息,和用户级的项目记忆。
系统上下文
getSystemContext() 返回当前环境信息:
- Git 状态(分支、修改文件、最近提交)
- 操作系统信息
- 当前工作目录
- Shell 环境
结果会被 memoize 缓存,整个会话只计算一次。因为这些信息在一次会话中基本不变。
用户上下文:CLAUDE.md
这是 Claude Code 的"记忆系统"。getUserContext() 会从多个位置读取 CLAUDE.md 文件:
- 全局:
~/.claude/CLAUDE.md— 跨项目的通用偏好 - 项目根目录:
./CLAUDE.md— 项目级约定 - 项目配置:
.claude/CLAUDE.md— 项目配置目录 - 当前目录:
./CLAUDE.md— 子目录级覆盖
这些文件的内容会被注入到 AI 的系统提示词中,让 AI 理解项目的编码规范、架构约定、常用命令等。
实用技巧
在项目根目录放一个 CLAUDE.md,写上你的代码风格偏好、测试命令、部署流程,Claude Code 的表现会好很多。
React Context Providers
src/context/ 目录下有 9 个 Context Provider,管理 UI 状态:
| Provider | 职责 |
|---|---|
| FpsMetrics | 终端渲染帧率监控 |
| Mailbox | Actor 模式消息传递 |
| Notifications | 多优先级通知系统 |
| Stats | 指标收集和观察 |
| Voice | 语音输入状态 |
| Modal | 模态框管理 |
| Overlay | 覆盖层管理 |
缓存策略
- 系统上下文:会话级缓存,一次计算
- 用户上下文:检测文件修改时间戳,变了才重新读取
- Memory 目录:内容截断到 200 行上限
截断到 200 行这个设计很实际——CLAUDE.md 写太长了 AI 也消化不了,还浪费 token。