首页 › tutorials › Claude Code上下文工程:记忆到会话全实战

Claude Code上下文工程:从CLAUDE.md到会话管理全链路实战

概述

本教程面向已掌握Claude Code基本操作的初中级开发者,系统讲解Claude Code的上下文工程体系——从CLAUDE.md多层配置、自动记忆、AGENTS.md协作,到会话恢复、上下文压缩、Git Worktree并行开发,帮助你构建"永不失忆"的AI编程工作流。

适合人群:有1-3个月Claude Code使用经验,经常遇到"AI忘记上下文"、"长会话性能下降"、"多项目配置混乱"等问题的开发者。

学习目标: - 理解Claude Code五层上下文架构,精准控制AI行为 - 掌握CLAUDE.md的分层配置与最佳实践 - 学会会话管理、上下文压缩、并行开发的完整工作流


前置条件


第一章:理解Claude Code的五层上下文架构

Claude Code并不是每次对话都"从零开始"。它拥有一套精心设计的分层上下文系统,每一层都有不同的作用域和生命周期。

1.1 五层架构全景

┌─────────────────────────────────────────────┐
│           Layer 5: System Prompt             │  ← Anthropic内置,不可修改
├─────────────────────────────────────────────┤
│     Layer 4: Global CLAUDE.md               │  ← ~/.claude/CLAUDE.md
│         (跨项目通用偏好)                      │
├─────────────────────────────────────────────┤
│     Layer 3: Project CLAUDE.md              │  ← 项目根目录/CLAUDE.md
│         (项目级规范和指令)                     │
├─────────────────────────────────────────────┤
│     Layer 2: Directory CLAUDE.md            │  ← 子目录/CLAUDE.md
│         (模块/包级定制指令)                    │
├─────────────────────────────────────────────┤
│     Layer 1: Auto Memory                    │  ← ~/.claude/memory/
│         (会话中自动/手动记录的持久记忆)          │
└─────────────────────────────────────────────┘

1.2 各层加载顺序与优先级

Claude Code启动时按以下顺序加载上下文:

flowchart TD
    A[启动 claude] --> B[加载 System Prompt<br/>内置工具定义与安全规则]
    B --> C[加载 Global CLAUDE.md<br/>~/.claude/CLAUDE.md]
    C --> D[加载 Project CLAUDE.md<br/>项目根目录]
    D --> E[扫描 Directory CLAUDE.md<br/>当前工作子目录的所有父级]
    E --> F[加载 Auto Memory<br/>~/.claude/memory/*.md]
    F --> G[恢复会话上下文<br/>如果使用 --continue/--resume]
    G --> H[就绪,等待用户输入]

    style B fill:#ff6b6b,color:#fff
    style C fill:#ffa502,color:#fff
    style D fill:#2ed573,color:#fff
    style E fill:#1e90ff,color:#fff
    style F fill:#a55eea,color:#fff
    style G fill:#747d8c,color:#fff

关键规则: - 下层覆盖上层:如果Project CLAUDE.md与Global CLAUDE.md冲突,Project级别生效 - 所有层级累加:不冲突的指令会在所有层级生效 - Directory级支持嵌套:从根目录到当前目录,每一级都可以有CLAUDE.md

1.3 查看当前加载的上下文

在Claude Code会话中,使用内置命令检查上下文状态:

# 在Claude Code交互模式中输入
> /context

# 或者通过状态栏查看当前Token使用情况
# 底部状态栏会显示: "Context: 12.4K/200K tokens"

第二章:Global CLAUDE.md — 你的个人编程人格

2.1 创建与位置

# 确保目录存在
mkdir -p ~/.claude

# 创建全局配置文件
# 路径: ~/.claude/CLAUDE.md

2.2 推荐配置模板

# Global Preferences

## 语言与风格
- 默认使用中文回复,代码注释用英文
- 回复简洁明了,避免冗长解释
- 使用中文标题和描述,代码/命令保持原文

## 代码风格
- TypeScript: 使用严格模式,优先函数式组件
- Python: 遵循PEP 8,类型注解全覆盖
- 优先使用 const,避免 var
- 单文件不超过 300 行

## 工作流规则
- 始终先读取文件再编辑,不要盲目修改
- 修改代码后主动运行测试验证
- 不要自动 git commit,只在明确要求时执行
- 优先编辑现有文件而非创建新文件

## 禁止事项
- 不要提交 .env、credentials 等敏感文件
- 不要添加不必要的注释或文档
- 不要引入未请求的新依赖

2.3 最佳实践

做: - 放通用偏好(语言、风格、个人工作流) - 放跨项目的禁止事项 - 保持精简(50行以内,每个Token都算数)

不做: - 不要放项目特定配置(应放Project CLAUDE.md) - 不要放会频繁变更的内容 - 不要写长篇大论的说明

2.4 常见问题

Q: Global CLAUDE.md在所有项目都生效吗? A: 是的,包括临时目录。适合放"不要自动commit"这类通用规则。

Q: 文件编码有要求吗? A: 必须使用UTF-8编码。


第三章:Project CLAUDE.md — 项目级AI契约

3.1 核心结构

一个完善的Project CLAUDE.md应包含以下模块:

# 项目名称: my-saas-app

## 技术栈
- Next.js 15 (App Router)
- TypeScript 5.4 (strict mode)
- Prisma ORM + PostgreSQL
- Tailwind CSS + shadcn/ui
- Vitest + Playwright

## 项目结构

src/ ├── app/ # Next.js App Router页面 ├── components/ # React组件 │ ├── ui/ # shadcn/ui基础组件(不要修改) │ └── features/ # 业务组件 ├── lib/ # 工具函数和共享逻辑 ├── server/ # 服务端逻辑 └── tests/ # 测试文件

## 关键命令
- `npm run dev` — 启动开发服务器
- `npm run build` — 生产构建
- `npm run test` — 运行单元测试
- `npm run test:e2e` — 运行E2E测试
- `npm run lint` — ESLint检查
- `npm run db:migrate` — 数据库迁移
- `npm run db:seed` — 填充测试数据

## 代码规范
- 组件文件用 PascalCase: `UserProfile.tsx`
- 工具函数用 camelCase: `formatDate.ts`
- 测试文件与源文件同目录: `UserProfile.test.tsx`
- API路由用 kebab-case: `api/user-profile/route.ts`

## 架构决策
- Server Components为默认,只在需要交互时使用 Client Components
- 数据获取通过Server Actions,不使用客户端fetch
- 使用Zod做运行时类型校验
- 错误处理统一使用 error.tsx 边界

## 禁止事项
- 不要修改 src/components/ui/ 下的文件(shadcn/ui管理)
- 不要在客户端组件中直接访问数据库
- 不要使用 any 类型
- 不要创建新的环境变量(复用现有的)

3.2 高级技巧:模块化拆分

对于大型项目,可以用@import语法引用外部文件:

# Project: enterprise-dashboard

## 核心指令
@import ./docs/ai-conventions/coding-style.md
@import ./docs/ai-conventions/architecture.md
@import ./docs/ai-conventions/database-rules.md

## 技术栈
- React 19 + Vite
- ...

3.3 Directory级CLAUDE.md实战

在复杂项目的关键子目录放置CLAUDE.md,提供局部的精确指导:

my-saas-app/
├── CLAUDE.md                    ← 项目级配置
├── src/
│   ├── components/
│   │   ├── CLAUDE.md            ← 组件开发规范
│   │   └── ui/
│   │       └── CLAUDE.md        ← "不要修改此目录文件"
│   ├── server/
│   │   └── CLAUDE.md            ← 服务端安全规则
│   └── tests/
│       └── CLAUDE.md            ← 测试编写规范

示例:src/components/CLAUDE.md

# 组件开发规范

## 创建新组件前检查
1. 确认 shadcn/ui 没有现成组件可复用
2. 确认 features/ 目录下没有类似组件
3. 参考 README.md 中的组件清单

## 组件模板
- 使用函数声明(不用箭头函数)
- Props接口定义在组件文件顶部
- 导出使用命名导出(不用default export)

示例:src/server/CLAUDE.md

# 服务端安全规则

## 绝对禁止
- 在API路由中直接使用SQL字符串拼接
- 在日志中输出用户密码或Token
- 跳过中间件认证检查

## 必须遵守
- 所有数据库查询通过Prisma Client
- 敏感操作记录审计日志
- 响应数据使用select限制字段,不返回完整记录

第四章:Auto Memory — 让AI拥有持久记忆

4.1 自动记忆机制

Claude Code拥有两种互补的记忆系统:

特性 CLAUDE.md Auto Memory
加载时机 会话启动时 会话启动时
谁来编写 你手动维护 AI自动/手动创建
作用域 按文件位置决定 全局(跨项目)
生命周期 随项目/全局 永久,直到手动删除
适合内容 规则、规范 决策记录、偏好发现

4.2 触发记忆写入

在对话中明确要求Claude记住某些内容:

# 方式1:直接指令
> 记住:这个项目使用 pnpm 而不是 npm

# 方式2:使用斜杠命令
> /remember 项目使用prisma而不是typeorm做ORM

# 方式3:在对话总结时要求记忆
> 这次重构完成了用户模块的迁移,
> 记住:UserService已经从Class改为了函数式风格

4.3 手动管理记忆文件

# 查看记忆目录
ls ~/.claude/memory/

# 典型文件结构
# ~/.claude/memory/
# ├── preferences.md        ← 个人偏好
# ├── project-decisions.md  ← 项目决策记录
# └── lessons-learned.md    ← 经验教训

最佳实践 — 记忆文件内容模板:

# preferences.md
- 偏好使用函数式编程风格
- 喜欢用describe/it而非test()写测试
- 项目commit信息用中文
- 偏好ES Modules而非CommonJS

# project-decisions.md
- [2026-05-28] my-saas-app: 选用Prisma替代TypeORM,因为类型安全更好
- [2026-05-29] my-saas-app: API层采用tRPC而非REST,减少类型重复
- [2026-05-30] shared: 所有项目统一使用pnpm + turborepo

4.4 记忆清理策略

# 定期审查记忆(建议每月一次)
cat ~/.claude/memory/*.md

# 删除过时记忆
rm ~/.claude/memory/outdated-decision.md

# 或者让Claude帮你清理
> 回顾 ~/.claude/memory/ 目录下的所有记忆文件,
> 删除与当前项目无关或已经过时的条目

第五章:AGENTS.md — 团队协作的上下文标准

5.1 CLAUDE.md vs AGENTS.md

2026年,AI编程工具生态正在收敛到一个共同模式:项目根目录放一个Markdown文件,为AI提供上下文。Claude Code使用CLAUDE.md,OpenAI Codex使用AGENTS.md。

兼容性策略:同时维护两个文件,确保Claude Code和Codex用户都能获得完整上下文。

flowchart LR
    A[AGENTS.md<br/>Codex/GitHub Copilot] -->|读取| C[AI Agent]
    B[CLAUDE.md<br/>Claude Code] -->|读取| C
    D[.cursorrules<br/>Cursor] -->|读取| E[Cursor IDE]

    F[推荐策略:<br/>维护统一源文件] --> G[用脚本同步<br/>AGENTS.md ↔ CLAUDE.md]

    style F fill:#2ed573,color:#fff
    style G fill:#2ed573,color:#fff

5.2 双文件同步方案

#!/bin/bash
# sync-ai-config.sh — 同步AI配置文件
# 以CLAUDE.md为主文件,自动生成AGENTS.md

if [ -f "CLAUDE.md" ]; then
  # 复制并添加Codex特有的header
  echo "# This file is auto-synced from CLAUDE.md" > AGENTS.md
  echo "# Last synced: $(date)" >> AGENTS.md
  echo "" >> AGENTS.md
  tail -n +1 CLAUDE.md >> AGENTS.md
  echo "✅ AGENTS.md synced from CLAUDE.md"
fi

第六章:会话管理 — 永不断线的AI协作

6.1 三种会话恢复方式

flowchart TD
    A[需要恢复之前的会话] --> B{场景选择}
    B -->|刚退出<br/>想继续| C[--continue<br/>恢复最近一次会话]
    B -->|找特定<br/>历史会话| D[--resume<br/>交互式选择历史会话]
    B -->|知道<br/>会话ID| E[--resume SESSION_ID<br/>精确恢复指定会话]

    C --> F[完整恢复对话历史<br/>+ 文件状态快照]
    D --> F
    E --> F

    F --> G{会话是否完整?}
    G -->|是| H[继续工作]
    G -->|上下文被压缩| I[检查关键决策<br/>是否被保留]
    I --> H

    style C fill:#2ed573,color:#fff
    style D fill:#1e90ff,color:#fff
    style E fill:#a55eea,color:#fff

6.2 --continue:延续上次对话

# 最简单的恢复方式,自动加载最近的会话
claude --continue

# 带新提示恢复,相当于在原对话末尾追加
claude --continue "继续完成用户认证模块的测试"

# 也可以用简写
claude -c

6.3 --resume:选择历史会话

# 交互式列出历史会话,用方向键选择
claude --resume

# 也可以用简写
claude -r

# 如果知道会话ID,直接指定
claude --resume abc123def456

交互式选择界面示例:

? Select a session to resume:
❯ 2026-05-31 09:15 "重构用户模块" (1h 23m ago)
  2026-05-30 16:42 "添加支付集成" (16h ago)
  2026-05-30 11:08 "修复登录Bug #234" (1d ago)
  2026-05-29 14:30 "数据库Schema迁移" (2d ago)

6.4 会话命名最佳实践

# 启动时给会话命名(使用--session-name)
claude --session-name "feat/user-auth"

# 在会话中也可以命名
# 使用 /name 命令
> /name feat/user-auth

命名规范建议:

feat/xxx     ← 新功能开发
fix/xxx      ← Bug修复
refactor/xxx ← 代码重构
docs/xxx     ← 文档更新
test/xxx     ← 测试编写
infra/xxx    ← 基础设施变更

6.5 检查点机制

Claude Code在对话过程中自动创建检查点(checkpoint),保存文件状态快照:

# 查看当前会话的检查点列表
> /checkpoints

# 回滚到指定检查点
> /undo  # 回滚最近一次变更

# 查看会话历史中的文件变更
> /diff

6.6 常见问题与解决方案

问题 原因 解决方案
--continue报错"No previous session" 从未在此项目创建过会话 正常,直接启动新会话
恢复会话后AI"忘记"之前的内容 上下文压缩已触发 检查CLAUDE.md是否包含关键决策
会话列表为空 会话存储在项目本地 确保在正确的项目目录运行
长会话响应变慢 Token接近200K上限 使用/compact手动压缩或启动新会话

第七章:上下文压缩 — 突破Token限制

7.1 自动压缩机制

Claude Code拥有200K Token的上下文窗口。当Token使用接近上限时(约95%,即190K Token),会自动触发上下文压缩:

sequenceDiagram
    participant U as 用户
    participant CC as Claude Code
    participant CM as 压缩管理器

    Note over U,CM: 正常对话阶段
    U->>CC: 写代码 / 读文件 / 运行命令
    CC->>CC: Token计数持续增长

    Note over CC: Token达到~190K (95%)
    CC->>CM: 触发自动压缩
    CM->>CM: 保留: 系统提示 + CLAUDE.md + 最近10轮对话
    CM->>CM: 压缩: 早期对话历史 → 摘要
    CM-->>CC: 压缩完成,释放Token空间

    Note over U,CM: 压缩后继续对话
    U->>CC: 继续工作(无感知)

7.2 手动控制压缩

# 在对话中手动触发压缩
> /compact

# 带自定义提示的压缩(指导AI保留什么)
> /compact 保留所有关于数据库Schema的讨论和决策

# 通过环境变量控制压缩阈值
export CLAUDE_CODE_AUTO_COMPACT_THRESHOLD=0.8  # 在80%时触发

7.3 压缩友好型对话策略

策略一:关键决策及时写入CLAUDE.md

# 不好的做法:只在对话中讨论
> 我们用Redis做缓存吧,TTL设5分钟...

# 好的做法:讨论后写入持久层
> 确认使用Redis做缓存,TTL=300s。
> 请把这个决策写入CLAUDE.md的"架构决策"部分

策略二:用"里程碑总结"保护关键信息

# 每完成一个重要阶段,要求AI做总结
> 现在我们完成了用户模块重构,请总结:
> 1. 做了哪些变更
> 2. 关键决策及理由
> 3. 待办事项
> 把总结写入 ~/.claude/memory/milestone-user-module.md

策略三:拆分长会话

# 与其用一个超长会话做所有事
# 不如按阶段拆分

# 会话1:分析和规划
claude --session-name "plan/user-module-refactor"

# 会话2:执行重构(带前序上下文)
claude --session-name "refactor/user-module" \
  -p "读取plan/user-module-refactor的决策记录,开始执行重构"

# 会话3:测试和验证
claude --session-name "test/user-module" \
  -p "验证用户模块重构后的测试覆盖"

第八章:Git Worktree — 并行开发的终极武器

8.1 为什么需要Worktree

当你在Claude Code中同时处理多个任务时,会遇到一个核心矛盾:一个Claude Code会话只能在一个目录下工作。Git Worktree解决了这个问题——它允许你在同一个仓库中同时检出多个分支到不同目录。

flowchart TD
    A[主仓库: main分支<br/>~/projects/my-app] --> B[Worktree 1: feat/auth<br/>~/.claude/worktrees/auth]
    A --> C[Worktree 2: fix/payment-bug<br/>~/.claude/worktrees/payment]
    A --> D[Worktree 3: docs/api-v2<br/>~/.claude/worktrees/docs]

    E[Claude Session 1<br/>在Worktree 1工作] -.-> B
    F[Claude Session 2<br/>在Worktree 2工作] -.-> C
    G[Claude Session 3<br/>在Worktree 3工作] -.-> D

    style E fill:#ff6b6b,color:#fff
    style F fill:#1e90ff,color:#fff
    style G fill:#2ed573,color:#fff

8.2 在Claude Code中使用Worktree

# 方式1:使用Claude Code内置的Worktree支持
# 在会话中输入
> /worktree

# 或在启动时指定
# Claude Code会自动创建隔离的worktree
# 方式2:手动管理Git Worktree(更灵活)

# 从main创建新分支的worktree
cd ~/projects/my-app
git worktree add ../my-app-auth feat/auth
git worktree add ../my-app-payment fix/payment-bug

# 在不同终端启动独立的Claude Code会话
# 终端1
cd ~/projects/my-app-auth && claude --session-name "feat/auth"

# 终端2  
cd ~/projects/my-app-payment && claude --session-name "fix/payment"

8.3 Worktree工作流最佳实践

# 1. 按功能创建worktree
git worktree add ../feature-branch feature/xxx

# 2. 启动Claude Code开发
cd ../feature-branch && claude

# 3. 完成后合并回主仓库
cd ~/projects/my-app
git merge feature/xxx

# 4. 清理worktree
git worktree remove ../feature-branch

8.4 并行Agent模式

使用Claude Code的Task工具(Subagent)实现更高级的并行开发:

# 在主会话中分派并行子任务
> 使用并行子Agent完成以下任务:
> Agent 1: 在 src/api/ 目录下实现用户CRUD接口
> Agent 2: 在 src/tests/ 目录下编写对应的测试用例
> Agent 3: 更新 src/db/schema.prisma 添加User模型
> 
> 三个Agent同时工作,互不干扰

Claude Code会自动为每个子任务创建独立的Agent实例,它们各自拥有独立的上下文空间,避免相互干扰。


第九章:完整实战 — 为真实项目配置上下文工程

9.1 项目场景

假设你正在开发一个TypeScript全栈SaaS应用,需要为整个团队配置完整的上下文工程体系。

9.2 第一步:配置全局层

# ~/.claude/CLAUDE.md
cat > ~/.claude/CLAUDE.md << 'EOF'
# Global Preferences

## 语言与风格
- 默认中文回复,代码注释英文
- 简洁明了,避免冗余

## 通用规则
- 始终先读取文件再编辑
- 修改后主动运行测试
- 不自动commit
- 优先编辑而非新建文件
- 不提交敏感文件

## 跨项目代码风格
- TypeScript strict mode
- 优先函数式风格
- 文件不超过300行
EOF

9.3 第二步:配置项目层

# 项目根目录
cd ~/projects/my-saas-app

cat > CLAUDE.md << 'EOF'
# Project: SaaS Dashboard

## 技术栈
- Next.js 15 (App Router, Server Components)
- TypeScript 5.4 (strict)
- Prisma + PostgreSQL
- Tailwind CSS + shadcn/ui
- Vitest + Playwright
- pnpm (monorepo with turborepo)

## 项目结构

apps/ ├── web/ # Next.js前端 ├── api/ # Hono API服务 └── admin/ # 管理后台 packages/ ├── shared/ # 共享类型和工具 ├── ui/ # 共享组件库 └── config/ # 共享配置

## 关键命令
- `pnpm dev` — 启动所有服务
- `pnpm build` — 构建检查
- `pnpm test` — 运行所有测试
- `pnpm lint` — 代码检查
- `pnpm db:migrate` — 数据库迁移

## 架构决策
- Server Components为默认选择
- 数据获取用Server Actions
- Zod做运行时校验
- 统一错误边界处理

## 禁止事项
- 不修改 packages/ui/ (独立发布)
- 不使用 any 类型
- 不在客户端直连数据库
- 不新增环境变量
EOF

9.4 第三步:配置目录层

# API服务目录
cat > apps/api/CLAUDE.md << 'EOF'
# API Service Rules

## 路由规范
- RESTful风格,资源用复数名词
- 每个路由文件对应一个资源
- 使用Hono的中间件链处理认证、日志

## 安全规则
- 所有路由必须经过auth中间件
- 响应数据使用select限制字段
- 敏感操作记录审计日志

## 测试
- 每个路由至少2个测试: 成功+失败
- 使用vitest的describe/it结构
EOF

# 前端应用目录
cat > apps/web/CLAUDE.md << 'EOF'
# Web Frontend Rules

## 组件规范
- 默认Server Component
- 需要交互时标记'use client'
- Props接口定义在文件顶部
- 使用命名导出

## 样式规范
- 优先使用Tailwind类
- 复杂样式用cn()合并
- 响应式优先移动端
EOF

9.5 第四步:初始化记忆系统

mkdir -p ~/.claude/memory

cat > ~/.claude/memory/project-decisions.md << 'EOF'
# Project Architecture Decisions

## 2026-05-28: 选择Hono替代Express
- 理由:更好的TypeScript支持和Edge Runtime兼容性
- 影响:API层全部使用Hono的API风格

## 2026-05-29: Prisma替代Drizzle
- 理由:团队更熟悉Prisma,迁移工具更成熟
- 影响:所有数据库操作通过Prisma Client

## 2026-05-30: Monorepo结构确定
- 工具:turborepo + pnpm workspaces
- 布局:apps/ + packages/ 两层结构
EOF

9.6 第五步:创建同步脚本

cat > scripts/sync-ai-config.sh << 'SCRIPT'
#!/bin/bash
# 同步CLAUDE.md到AGENTS.md,确保多AI工具兼容
PROJECT_ROOT="$(git rev-parse --show-toplevel)"

sync_file() {
  local src="$1"
  local dst="$2"
  if [ -f "$src" ]; then
    {
      echo "# Auto-synced from CLAUDE.md"
      echo "# Updated: $(date -u +%Y-%m-%dT%H:%M:%SZ)"
      echo ""
      cat "$src"
    } > "$dst"
    echo "  ✅ $dst synced"
  fi
}

echo "🔄 Syncing AI config files..."
sync_file "$PROJECT_ROOT/CLAUDE.md" "$PROJECT_ROOT/AGENTS.md"
find "$PROJECT_ROOT" -name "CLAUDE.md" -not -path "*/node_modules/*" | while read -r f; do
  dir=$(dirname "$f")
  sync_file "$f" "$dir/AGENTS.md"
done
echo "✨ Done!"
SCRIPT

chmod +x scripts/sync-ai-config.sh

9.7 最终项目结构验证

# 完整的上下文工程文件布局
tree -a -I 'node_modules|.git' --charset=ascii ~/projects/my-saas-app/ -P '*CLAUDE.md|AGENTS.md|memory*'

# 预期输出:
# .
# |-- CLAUDE.md                    ← 项目级AI配置
# |-- AGENTS.md                    ← Codex兼容(自动同步)
# |-- apps/
# |   |-- api/
# |   |   |-- CLAUDE.md            ← API服务规范
# |   |   +-- AGENTS.md
# |   +-- web/
# |       |-- CLAUDE.md            ← 前端组件规范
# |       +-- AGENTS.md
# |-- packages/
# |-- scripts/
# |   +-- sync-ai-config.sh       ← 同步脚本
# +-- ~/.claude/
#     |-- CLAUDE.md                ← 全局配置
#     +-- memory/
#         +-- project-decisions.md ← 决策记忆

第十章:上下文工程工作流全景图

flowchart TB
    subgraph 启动阶段
        S1[打开终端] --> S2[cd 进入项目目录]
        S2 --> S3{恢复旧会话?}
        S3 -->|是| S4[claude --resume]
        S3 -->|否| S5[claude --session-name feat/xxx]
        S4 --> S6[上下文加载完成]
        S5 --> S6
    end

    subgraph 工作阶段
        S6 --> W1[Claude读取多层CLAUDE.md]
        W1 --> W2[按规范执行任务]
        W2 --> W3{重要决策?}
        W3 -->|是| W4[写入CLAUDE.md或Memory]
        W3 -->|否| W5[继续工作]
        W4 --> W5
        W5 --> W6{需要并行任务?}
        W6 -->|是| W7[使用Task工具分派子Agent]
        W6 -->|否| W8{Token接近上限?}
        W7 --> W8
        W8 -->|是| W9[/compact 手动压缩]
        W8 -->|否| W2
        W9 --> W2
    end

    subgraph 收尾阶段
        W2 --> E1{任务完成?}
        E1 -->|是| E2[总结关键决策]
        E2 --> E3[更新CLAUDE.md]
        E3 --> E4[写入Memory]
        E4 --> E5[退出会话]
    end

    style S4 fill:#2ed573,color:#fff
    style S5 fill:#1e90ff,color:#fff
    style W4 fill:#ffa502,color:#fff
    style W7 fill:#a55eea,color:#fff
    style W9 fill:#ff6b6b,color:#fff

第十一章:上下文工程检查清单

每次启动新项目时,使用以下检查清单确保上下文工程到位:

项目启动检查

日常维护检查(每周)

会话管理检查


第十二章:常见陷阱与排错指南

陷阱1:CLAUDE.md过大

症状:每次启动慢,Token消耗高,AI忽略部分指令

解决方案:

# 检查文件大小
wc -l CLAUDE.md
# 如果超过100行,考虑拆分到子目录CLAUDE.md

# 将详细规范移到子目录
mv detailed-api-rules → apps/api/CLAUDE.md
mv detailed-frontend-rules → apps/web/CLAUDE.md

陷阱2:记忆污染

症状:AI在项目A中使用项目B的约定

解决方案:

# 审查全局记忆
grep -r "项目B的约定" ~/.claude/memory/

# 项目特定的决策应该写在项目CLAUDE.md,
# 而不是全局memory中

陷阱3:压缩后丢失关键信息

症状:长会话中AI突然"忘记"之前的决策

解决方案:

# 在对话早期就要求AI记录重要决策
> 每当我们做出架构决策时,立即写入CLAUDE.md

# 定期手动压缩,保留关键内容
> /compact 保留所有Schema设计和API接口相关的讨论

陷阱4:Worktree冲突

症状:多个Worktree的分支merge时出现大量冲突

解决方案:

# 确保每个Worktree操作不同的文件区域
# 在CLAUDE.md中明确划分职责

# apps/web/CLAUDE.md
echo "本模块只操作 apps/web/ 下的文件" >> apps/web/CLAUDE.md

# apps/api/CLAUDE.md  
echo "本模块只操作 apps/api/ 下的文件" >> apps/api/CLAUDE.md

实战案例:一个完整的上下文工程项目模板

以下是一个可以直接复制使用的中型项目上下文配置:

# ~/.claude/CLAUDE.md (Global - 30行)
---

默认中文回复。代码注释英文。
TypeScript strict mode。函数式优先。
先读后改。改后跑测。不自动commit。
不提交敏感文件。不新建文件除非必要。
# ~/project/CLAUDE.md (Project - 60行)
---

# 项目: taskflow-app
技术栈: Next.js 15 + TypeScript + Prisma + PostgreSQL
包管理: pnpm
测试: vitest + playwright

关键命令:
- pnpm dev | build | test | lint | db:migrate

架构: App Router + Server Actions + Zod校验
禁止: 不用any | 不改ui/目录 | 不直连数据库
# ~/project/src/features/CLAUDE.md (Directory - 15行)
---

每个功能一个文件夹: components + actions + types + test
Server Component优先 | 需要交互才用Client Component
Props用interface | 导出用命名导出

这个三层结构的总Token消耗约800-1000 Token,仅占200K上下文窗口的0.5%,却能提供精确的行为指导。


延伸阅读


训练营适用性评估

维度 评估
适合训练营类型 Claude Code进阶训练营、AI编程效率提升营
建议教学时长 3小时(含实操练习)
实操占比 60%(文件配置 + 会话管理 + Worktree)
前置知识要求 Claude Code基本操作、Git基础
课后练习建议 为自己的真实项目配置完整的三层CLAUDE.md + Memory系统

参考来源

  1. How Claude remembers your project - Claude Code Docs — 官方CLAUDE.md与Auto Memory完整参考文档
  2. CLAUDE.md vs AGENTS.md vs MEMORY.md - Amit Ray — AI配置文件层级体系对比分析
  3. Claude Code & Agent Memory: Best Practices for 2026 - Orchestrator — 分层记忆架构深度解读与最佳实践
  4. Context Compaction Research - badlogic/gist — 上下文压缩机制跨工具对比研究
  5. Claude Code --continue and --resume Guide — 会话恢复与管理的完整实战指南

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入