首页 › tutorials › Claude Code六层记忆体系与个性化配置实战

Claude Code六层记忆体系与个性化配置深度实战

学习目标:掌握Claude Code从CLAUDE.md到Auto-Memory、MEMORY.md索引、Topic Files、settings.json权限体系、Hooks自动化的完整记忆与配置架构,学会构建一个"永不遗忘"的个性化AI编程助手。
适用人群:已安装Claude Code并完成过基本操作的开发者,希望将Claude Code从"一次性对话工具"升级为"长期团队伙伴"的中高级用户。
前置条件:已安装Claude Code CLI(npm install -g @anthropic-ai/claude-code),具备Git基本操作知识,至少有一个正在开发的项目。


一、为什么你需要理解Claude Code的记忆体系

大多数Claude Code用户停留在"打开终端→提问→得到答案→关闭"的阶段。他们每次启动都是一张白纸,反复告诉Claude同样的偏好、同样的项目结构、同样的代码规范。这不是工具的问题——是没有激活记忆系统。

根据MindStudio的分析,Claude Code实际上拥有六层记忆架构,从最基础的系统提示到跨工具共享记忆,每一层都有独特的职责和持久化策略。掌握这套体系,你的Claude Code将具备:

graph TB
    subgraph "Claude Code 六层记忆架构"
        L1["第1层: System Prompt<br/>内置系统指令"]
        L2["第2层: ~/.claude/CLAUDE.md<br/>用户全局偏好"]
        L3["第3层: 项目根目录/CLAUDE.md<br/>团队共享规范"]
        L4["第4层: 子目录/.claude/CLAUDE.md<br/>模块级上下文"]
        L5["第5层: Auto-Memory<br/>~/.claude/projects/记忆文件"]
        L6["第6层: Cross-Tool/AGENTS.md<br/>跨工具共享标准"]
    end
    L1 --> L2 --> L3 --> L4 --> L5 --> L6
    style L1 fill:#e8f5e9
    style L2 fill:#fff3e0
    style L3 fill:#e3f2fd
    style L4 fill:#f3e5f5
    style L5 fill:#fce4ec
    style L6 fill:#e0f7fa

二、第1-3层:CLAUDE.md基础体系

2.1 第1层——系统提示(不可修改,但可影响)

系统提示是Claude Code内置的启动指令,定义了Claude的身份、工具使用规则、安全边界等。普通用户无法直接修改这一层,但通过后续层的配置可以覆盖和补充系统提示的行为。

关键认知:系统提示设定了基础能力边界,CLAUDE.md等文件设定了个性化偏好。两者叠加,才是Claude Code的完整行为模式。

2.2 第2层——用户全局CLAUDE.md

这是个人专属的记忆层,位于 ~/.claude/CLAUDE.md。它对所有项目生效,适合存放:

实战:创建你的全局CLAUDE.md

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

# 创建全局 CLAUDE.md
cat > ~/.claude/CLAUDE.md << 'EOF'
# Global Preferences

## Language & Style
- 默认使用中文回复,代码注释用英文
- 回复简洁明了,避免冗长解释
- 代码/命令保持原文,说明用中文

## Coding Preferences
- 前端项目优先使用 TypeScript
- 后端API优先使用 Python FastAPI
- 测试框架优先使用 Vitest (前端) / pytest (后端)
- Git commit message 使用 Conventional Commits 规范

## Safety Rules
- 不要自动 git commit,只在明确要求时执行
- 始终先读取文件再编辑
- 不要提交 .env 等敏感文件
- 修改代码后主动运行测试验证
EOF

预期结果:此后任何项目中启动Claude Code,都会自动读取这些偏好。你可以验证:

# 在任意项目目录启动 Claude Code,然后输入:
claude
# 进入对话后输入:
# "我的编码偏好是什么?"
# Claude 会准确复述你配置的内容

2.3 第3层——项目级CLAUDE.md

这是团队共享的记忆层,位于项目根目录的 CLAUDE.md。它应该被提交到Git仓库,让所有团队成员的Claude Code共享同一套项目规范。

实战:为项目创建CLAUDE.md

# 在你的项目根目录
cd ~/my-project

cat > CLAUDE.md << 'EOF'
# Project: My E-Commerce Platform

## Tech Stack
- Frontend: Next.js 14 + TypeScript + Tailwind CSS
- Backend: Python 3.12 + FastAPI + SQLAlchemy 2.0
- Database: PostgreSQL 16
- Cache: Redis 7
- Queue: Celery + RabbitMQ

## Project Structure

src/ frontend/ # Next.js 应用 backend/ # FastAPI 应用 api/ # API路由 models/ # SQLAlchemy模型 services/ # 业务逻辑 schemas/ # Pydantic schemas shared/ # 共享类型和工具

## Code Conventions
- API 路由使用 RESTful 风格,版本化: /api/v1/
- 所有 API 必须有对应的 Pydantic schema 验证
- 数据库迁移使用 Alembic,禁止手动修改表结构
- 前端组件使用函数式组件 + Hooks
- 状态管理使用 Zustand,不用 Redux

## Testing Requirements
- 后端测试覆盖率目标: 80%
- 每个 API endpoint 必须有集成测试
- 前端使用 Testing Library + MSW mock

## Common Commands
- `make dev` - 启动开发环境
- `make test` - 运行所有测试
- `make lint` - 代码检查
- `make migrate` - 执行数据库迁移
EOF

关键原则:项目级CLAUDE.md应该包含让一个新加入的开发者(或AI)快速上手所需的一切信息。这包括技术栈、项目结构、编码规范、常用命令。

常见问题与解决方案:

问题 原因 解决方案
Claude忽略了CLAUDE.md中的规范 文件过大,关键信息被稀释 使用清晰的标题层级,将最关键的规则放在文件开头
不同开发者偏好冲突 全局CLAUDE.md和项目级冲突 项目级优先级更高,团队以项目级为准
CLAUDE.md过于冗长 把所有文档都塞进去 只写"规则"不写"教程",控制在200行以内

三、第4层:子目录级上下文与模块化记忆

大型项目中,不同模块可能需要不同的上下文。Claude Code支持在子目录中放置 .claude/CLAUDE.md 或 CLAUDE.md,提供更精细的上下文控制。

graph LR
    subgraph "项目目录结构"
        A["~/project/CLAUDE.md<br/>项目全局规范"]
        B["~/project/frontend/.claude/CLAUDE.md<br/>前端模块规范"]
        C["~/project/backend/.claude/CLAUDE.md<br/>后端模块规范"]
        D["~/project/backend/api/.claude/CLAUDE.md<br/>API模块规范"]
    end
    A --> B
    A --> C
    C --> D
    style A fill:#e3f2fd
    style B fill:#fff3e0
    style C fill:#e8f5e9
    style D fill:#f3e5f5

实战:为不同模块创建专属上下文

# 前端模块
mkdir -p ~/my-project/frontend/.claude
cat > ~/my-project/frontend/.claude/CLAUDE.md << 'EOF'
# Frontend Module Context

## Component Guidelines
- 使用 Server Components 为默认,只有需要交互时才用 'use client'
- 组件文件命名: PascalCase.tsx
- 自定义Hook文件命名: useCamelCase.ts
- 样式使用 Tailwind,禁止内联style属性

## Known Issues
- Next.js 14 的 revalidatePath 在某些场景下不生效,使用 router.refresh() 替代
- Zustand persist middleware 与 SSR 冲突,需要使用 dynamic import
EOF

# 后端模块
mkdir -p ~/my-project/backend/.claude
cat > ~/my-project/backend/.claude/CLAUDE.md << 'EOF'
# Backend Module Context

## API Design Rules
- 所有 endpoint 必须有 OAuth2 Bearer Token 认证
- 错误响应使用统一格式: {"error": {"code": "XXX", "message": "..."}}
- 分页使用 cursor-based pagination,不用 offset
- 响应时间超过500ms的查询必须加缓存

## Database Rules
- 禁止使用 SELECT *,必须明确列出字段
- 所有时间字段使用 UTC,前端负责时区转换
- 软删除使用 deleted_at 字段,不用 is_deleted 布尔值
EOF

加载机制:当你在 ~/my-project/backend/api/ 目录启动Claude Code时,它会按顺序加载:全局CLAUDE.md → 项目根CLAUDE.md → backend/.claude/CLAUDE.md → api/.claude/CLAUDE.md,层层叠加,越具体的层级越晚加载,优先级越高。


四、第5层:Auto-Memory自动记忆系统

这是Claude Code最强大的记忆能力——自动学习。当你在对话中发现Claude犯了错误,你纠正了它,它会自动将这个教训写入持久化文件,下次会话自动加载。

4.1 Auto-Memory的工作原理

Auto-Memory文件存储在 ~/.claude/projects/<project-hash>/ 目录下。Claude Code会在以下场景自动写入记忆:

4.2 MEMORY.md索引系统

MEMORY.md 是整个记忆系统的索引文件。Ian Paterson在他的实践中提出了一个成熟的架构:

~/.claude/projects/<project-hash>/
  MEMORY.md              # 索引文件:每个记忆文件一行摘要
  conventions.md         # 项目编码约定
  architecture.md        # 架构决策记录
  lessons-learned.md     # 犯过的错误和教训
  open-threads.md        # 未完成的工作线程
  user-preferences.md    # 用户偏好记录

MEMORY.md索引文件示例:

# Memory Index

- [编码约定](conventions.md) — 项目编码风格和命名规范
- [架构决策](architecture.md) — 重大架构选择和原因
- [经验教训](lessons-learned.md) — 犯过的错误和纠正记录
- [开放线程](open-threads.md) — 未完成任务和待讨论事项
- [用户偏好](user-preferences.md) — 用户表达的个人偏好

4.3 实战:构建完整的自动记忆系统

步骤1:创建记忆目录和索引

# 首先找到你项目的记忆目录
# Claude Code 会根据项目路径生成 hash
# 可以通过在项目中运行 claude 然后输入 "你把记忆存储在哪个目录?" 来确认

# 创建记忆目录(示例路径)
MEMORY_DIR="$HOME/.claude/projects/-home-user-my-project/memory"
mkdir -p "$MEMORY_DIR"

# 创建索引文件
cat > "$MEMORY_DIR/MEMORY.md" << 'EOF'
# Memory Index

- [编码规范](coding-standards.md) — 项目编码风格和命名规范
- [架构决策](architecture-decisions.md) — 重大技术选型和架构选择
- [经验教训](lessons-learned.md) — 犯过的错误和纠正方案
- [开放线程](open-threads.md) — 未完成的工作和待确认事项
- [用户偏好](user-preferences.md) — 用户的个人编码偏好
EOF

步骤2:创建Topic Files

# 编码规范记忆
cat > "$MEMORY_DIR/coding-standards.md" << 'EOF'
---
name: coding-standards
description: 项目编码风格和命名规范
metadata:
  type: project
---

# 编码规范

- Python 函数使用 snake_case 命名
- TypeScript 接口使用 PascalCase,以 I 开头
- 数据库表名使用 snake_case 复数形式
- API endpoint 使用 kebab-case

**Why:** 团队代码审查中反复出现命名不一致问题
**How to apply:** 创建新文件或函数时,先查阅此规范再命名
EOF

# 经验教训记忆
cat > "$MEMORY_DIR/lessons-learned.md" << 'EOF'
---
name: lessons-learned
description: 犯过的错误和纠正方案
metadata:
  type: feedback
---

# 经验教训

## 2026-06-10: Alembic迁移顺序问题
- **错误**: 直接修改了已提交的迁移文件,导致团队其他成员数据库不一致
- **纠正**: 已提交的迁移文件禁止修改,只能创建新的迁移来修正
- **相关**: [[coding-standards]]

## 2026-06-08: NextJS SSR hydration mismatch
- **错误**: 在 Server Component 中使用了 Date.now(),导致客户端hydration不匹配
- **纠正**: 时间相关操作必须在 Client Component 中执行,或通过 props 传入
EOF

步骤3:利用 /memory 命令管理记忆

在Claude Code对话中,你可以使用以下命令来管理记忆:

# 在Claude Code对话中
# 查看当前记忆状态
> "你现在有哪些记忆文件?"

# 手动添加记忆
> "记住:这个项目的数据库密码字段始终使用 bcrypt 哈希,不要用 MD5"

# 纠正行为并自动记录
> "你刚才用了 var 声明变量,记住这个项目一律使用 const/let,禁止 var"

# 查看特定记忆
> "你在 lessons-learned.md 中记录了什么?"

4.4 记忆维护策略

记忆系统不是"写入就忘记"的,需要定期维护:

flowchart TD
    A[会话开始] --> B[加载 MEMORY.md 索引]
    B --> C[按需加载相关 Topic Files]
    C --> D[正常工作]
    D --> E{犯错被纠正?}
    E -->|是| F[写入 lessons-learned.md]
    E -->|否| G{发现新模式?}
    G -->|是| H[更新对应 Topic File]
    G -->|否| I{会话结束?}
    F --> I
    H --> I
    I --> J[精简过时记忆]
    J --> K[更新 MEMORY.md 索引]
    K --> A

    style A fill:#e8f5e9
    style F fill:#fce4ec
    style H fill:#fff3e0
    style K fill:#e3f2fd

维护最佳实践:

  1. 定期清理:每周检查一次记忆文件,删除已过时的条目
  2. 合并相似记忆:多个小记忆合并为一个综合记忆
  3. 验证引用:确保 [[link]] 引用的目标文件存在
  4. 控制总量:每个Topic File控制在50行以内,MEMORY.md索引不超过20条

五、第6层:跨工具共享记忆(AGENTS.md)

随着AI编程工具的多样化(Claude Code、Cursor、Windsurf、GitHub Copilot等),AGENTS.md 作为跨工具的开放标准应运而生。它由社区推动,定义了一套所有AI编程工具都能读取的通用指令格式。

CLAUDE.md vs AGENTS.md 对比:

特性 CLAUDE.md AGENTS.md
适用范围 仅Claude Code 所有支持该标准的AI工具
功能深度 支持Claude特有功能 仅包含通用指令
优先级 在Claude Code中优先 作为跨工具兼容层
维护成本 需单独维护 一次编写,多工具生效

实战:创建AGENTS.md

cat > ~/my-project/AGENTS.md << 'EOF'
# Agent Instructions

## Build & Test
- Build: `make build`
- Test: `make test`
- Lint: `make lint`

## Code Style
- Python: Follow PEP 8, use type hints
- TypeScript: Strict mode, no any types
- Commits: Conventional Commits format

## Architecture
- Monorepo with frontend/ and backend/
- API versioning: /api/v1/
- Database: PostgreSQL with Alembic migrations

## Safety
- Never drop database tables in production
- Always use parameterized queries
- Never commit .env files
EOF

六、settings.json权限与安全配置体系

记忆系统解决了"AI怎么记住",权限系统解决了"AI能做什么"。两者配合,才是一个完整的个性化配置。

6.1 settings.json层级

Claude Code的settings.json同样遵循层级覆盖原则:

graph TB
    subgraph "settings.json 配置层级"
        S1["企业管理级<br/>(由管理员统一下发)"]
        S2["用户全局级<br/>~/.claude/settings.json"]
        S3["用户项目级<br/>~/.claude/projects/.../settings.json"]
        S4["项目共享级<br/>.claude/settings.json"]
        S5["本地覆盖级<br/>.claude/settings.local.json"]
    end
    S1 --> S2 --> S3 --> S4 --> S5
    style S1 fill:#ffcdd2
    style S2 fill:#fff3e0
    style S3 fill:#e8f5e9
    style S4 fill:#e3f2fd
    style S5 fill:#f3e5f5

优先级从高到低:企业管理 → 本地覆盖 → 项目共享 → 用户项目级 → 用户全局级。越具体的场景优先级越高。

6.2 实战:配置安全的权限体系

# 用户全局设置 — 定义基础安全策略
mkdir -p ~/.claude
cat > ~/.claude/settings.json << 'EOF'
{
  "permissions": {
    "allow": [
      "Bash(git status*)",
      "Bash(git diff*)",
      "Bash(git log*)",
      "Bash(npm test*)",
      "Bash(npm run lint*)",
      "Bash(make test*)",
      "Bash(python -m pytest*)",
      "Read(*)"
    ],
    "deny": [
      "Bash(rm -rf /)",
      "Bash(sudo *)",
      "Bash(curl * | bash)",
      "Bash(wget * | bash)"
    ]
  }
}
EOF

# 项目级设置 — 项目特定的权限
mkdir -p ~/my-project/.claude
cat > ~/my-project/.claude/settings.json << 'EOF'
{
  "permissions": {
    "allow": [
      "Bash(docker compose up*)",
      "Bash(docker compose down*)",
      "Bash(make migrate*)",
      "Bash(make seed*)"
    ]
  },
  "env": {
    "DATABASE_URL": "postgresql://localhost:5432/myproject_dev"
  }
}
EOF

# 本地覆盖 — 个人开发环境特定配置(不提交Git)
cat > ~/my-project/.claude/settings.local.json << 'EOF'
{
  "env": {
    "DATABASE_URL": "postgresql://localhost:5432/myproject_local"
  }
}
EOF

# 确保本地配置不被提交
echo ".claude/settings.local.json" >> ~/my-project/.gitignore

6.3 权限模式详解

Claude Code的权限控制支持三种模式:

模式 行为 适用场景
allow 自动批准,不询问 安全的只读操作、测试命令
deny 永久拒绝,不可覆盖 危险操作、sudo命令
默认(不配置) 每次询问用户 不确定的操作

配置技巧:

{
  "permissions": {
    "allow": [
      "Bash(git *)",           // 允许所有 git 命令
      "Bash(npm run test*)",   // 允许测试相关命令
      "Bash(npm run lint*)",   // 允许 lint 相关命令
      "Bash(npx tsc --noEmit)", // 允许类型检查
      "Bash(docker compose *)", // 允许 docker compose 操作
      "Read(*)",               // 允许读取任何文件
      "Write(src/**)"          // 允许写入 src 目录下的文件
    ],
    "deny": [
      "Bash(sudo *)",          // 禁止 sudo
      "Bash(chmod 777*)",      // 禁止危险权限修改
      "Write(.env*)",          // 禁止修改环境变量文件
      "Write(**/secrets/**)"   // 禁止修改 secrets 目录
    ]
  }
}

七、Hooks:自动化记忆与行为控制

Hooks是Claude Code的事件钩子系统,允许你在特定事件发生时自动执行脚本。这为记忆系统提供了自动化维护能力。

7.1 Hooks事件类型

Hook事件 触发时机 典型用途
PreToolUse 工具调用前 拦截危险操作、注入上下文
PostToolUse 工具调用后 记录操作日志、更新记忆
Notification 通知发送时 自定义通知方式
Stop 对话结束时 自动保存会话摘要

7.2 实战:用Hooks自动维护记忆

# 在项目 .claude/settings.json 中添加 hooks 配置
cat > ~/my-project/.claude/settings.json << 'EOFJSON'
{
  "permissions": {
    "allow": [
      "Bash(git *)",
      "Bash(make *)",
      "Read(*)"
    ]
  },
  "hooks": {
    "Stop": [
      {
        "type": "command",
        "command": "bash .claude/hooks/save-session-summary.sh"
      }
    ],
    "PostToolUse": [
      {
        "type": "command",
        "command": "bash .claude/hooks/log-tool-usage.sh",
        "matcher": "Write|Edit"
      }
    ]
  }
}
EOFJSON

创建Hook脚本:

mkdir -p ~/my-project/.claude/hooks

# 会话结束时的摘要保存脚本
cat > ~/my-project/.claude/hooks/save-session-summary.sh << 'SCRIPT'
#!/bin/bash
# 记录会话结束时间
TIMESTAMP=$(date +"%Y-%m-%d %H:%M")
echo "- 会话结束于 $TIMESTAMP" >> .claude/session-log.md
SCRIPT
chmod +x ~/my-project/.claude/hooks/save-session-summary.sh

# 文件修改日志脚本
cat > ~/my-project/.claude/hooks/log-tool-usage.sh << 'SCRIPT'
#!/bin/bash
# 读取 stdin 中的工具调用信息
INPUT=$(cat)
FILE=$(echo "$INPUT" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('tool_input',{}).get('file_path','unknown'))" 2>/dev/null || echo "unknown")
TIMESTAMP=$(date +"%Y-%m-%d %H:%M")
echo "- [$TIMESTAMP] 修改文件: $FILE" >> .claude/file-changes-log.md
SCRIPT
chmod +x ~/my-project/.claude/hooks/log-tool-usage.sh

八、实战案例:构建完整的个性化配置

现在让我们把所有层级整合起来,为一个真实项目构建完整的记忆和配置体系。

8.1 项目背景

假设你有一个全栈电商平台项目 shop-platform,技术栈为 Next.js + FastAPI + PostgreSQL。

8.2 完整配置文件结构

shop-platform/
├── CLAUDE.md                          # 第3层:项目共享记忆
├── AGENTS.md                          # 第6层:跨工具兼容
├── .claude/
│   ├── settings.json                  # 项目权限配置
│   ├── settings.local.json            # 本地覆盖(不提交Git)
│   └── hooks/
│       ├── save-session-summary.sh    # 会话结束Hook
│       └── log-tool-usage.sh         # 操作日志Hook
├── frontend/
│   ├── .claude/
│   │   └── CLAUDE.md                  # 第4层:前端模块上下文
│   └── ...
├── backend/
│   ├── .claude/
│   │   └── CLAUDE.md                  # 第4层:后端模块上下文
│   └── ...
~/.claude/
├── CLAUDE.md                          # 第2层:用户全局偏好
├── settings.json                      # 用户全局权限
└── projects/
    └── -home-user-shop-platform/
        └── memory/
            ├── MEMORY.md              # 记忆索引
            ├── coding-standards.md    # 编码规范
            ├── architecture.md        # 架构决策
            ├── lessons-learned.md     # 经验教训
            └── user-preferences.md    # 用户偏好

8.3 完整配置脚本

以下是一个一键配置脚本,创建上述所有文件:

#!/bin/bash
# claude-code-setup.sh — 一键配置 Claude Code 完整记忆体系
# 使用方法: bash claude-code-setup.sh /path/to/your/project

PROJECT_DIR="${1:-$(pwd)}"
PROJECT_NAME=$(basename "$PROJECT_DIR")

echo "🧠 为项目 $PROJECT_NAME 配置 Claude Code 记忆体系..."

# === 第2层:用户全局偏好 ===
mkdir -p ~/.claude
if [ ! -f ~/.claude/CLAUDE.md ]; then
  cat > ~/.claude/CLAUDE.md << 'EOF'
# Global Preferences

## Language
- 默认使用中文回复,代码注释用英文
- 代码/命令保持原文,说明用中文

## Coding Style
- TypeScript strict mode
- Python type hints required
- Conventional Commits

## Safety
- 不要自动 git commit
- 始终先读取文件再编辑
- 不要提交敏感文件
- 修改代码后主动运行测试
EOF
  echo "✅ 创建全局 CLAUDE.md"
fi

# === 用户全局权限 ===
if [ ! -f ~/.claude/settings.json ]; then
  cat > ~/.claude/settings.json << 'EOF'
{
  "permissions": {
    "allow": [
      "Bash(git status*)",
      "Bash(git diff*)",
      "Bash(git log*)",
      "Bash(npm test*)",
      "Bash(npm run lint*)",
      "Bash(python -m pytest*)",
      "Read(*)"
    ],
    "deny": [
      "Bash(sudo *)",
      "Bash(rm -rf /)"
    ]
  }
}
EOF
  echo "✅ 创建全局 settings.json"
fi

# === 第3层:项目级 CLAUDE.md ===
cat > "$PROJECT_DIR/CLAUDE.md" << EOF
# Project: $PROJECT_NAME

## Tech Stack
- 在此处填写你的技术栈

## Project Structure
- 在此处描述项目结构

## Code Conventions
- 在此处定义编码规范

## Common Commands
- 在此处列出常用命令
EOF
echo "✅ 创建项目 CLAUDE.md"

# === 项目权限配置 ===
mkdir -p "$PROJECT_DIR/.claude"
cat > "$PROJECT_DIR/.claude/settings.json" << 'EOF'
{
  "permissions": {
    "allow": [
      "Bash(make *)",
      "Bash(docker compose *)"
    ]
  }
}
EOF
echo "✅ 创建项目 settings.json"

# === AGENTS.md 跨工具兼容 ===
cat > "$PROJECT_DIR/AGENTS.md" << 'EOF'
# Agent Instructions

## Build & Test
- 在此处填写构建和测试命令

## Code Style
- 在此处定义通用代码风格

## Safety
- 在此处定义安全规则
EOF
echo "✅ 创建 AGENTS.md"

# === 第5层:Auto-Memory 记忆系统 ===
# 生成项目路径hash(简化版本)
PROJECT_HASH=$(echo -n "$PROJECT_DIR" | sha256sum | cut -c1-16)
MEMORY_DIR="$HOME/.claude/projects/-${PROJECT_HASH}/memory"
mkdir -p "$MEMORY_DIR"

cat > "$MEMORY_DIR/MEMORY.md" << 'EOF'
# Memory Index

- [编码规范](coding-standards.md) — 项目编码风格和命名规范
- [架构决策](architecture.md) — 重大技术选型和架构选择
- [经验教训](lessons-learned.md) — 犯过的错误和纠正方案
- [用户偏好](user-preferences.md) — 用户的个人编码偏好
EOF

# 创建空Topic Files
for topic in coding-standards architecture lessons-learned user-preferences; do
  cat > "$MEMORY_DIR/${topic}.md" << EOF
---
name: ${topic}
description: ${topic} 记忆文件
metadata:
  type: project
---

# ${topic}

(此文件将在使用过程中由Claude自动填充)
EOF
done
echo "✅ 创建记忆系统 ($MEMORY_DIR)"

# === .gitignore 更新 ===
if [ -f "$PROJECT_DIR/.gitignore" ]; then
  if ! grep -q ".claude/settings.local.json" "$PROJECT_DIR/.gitignore"; then
    echo -e "\n# Claude Code local settings\n.claude/settings.local.json" >> "$PROJECT_DIR/.gitignore"
  fi
else
  echo ".claude/settings.local.json" > "$PROJECT_DIR/.gitignore"
fi
echo "✅ 更新 .gitignore"

echo ""
echo "🎉 配置完成!你的 Claude Code 现在具备:"
echo "  📝 全局用户偏好(跨项目生效)"
echo "  📋 项目共享规范(团队协作)"
echo "  🔒 安全权限体系(防止误操作)"
echo "  🧠 自动记忆系统(跨会话学习)"
echo "  🔗 跨工具兼容(AGENTS.md)"
echo ""
echo "下一步:在项目目录运行 'claude' 开始使用"

8.4 验证配置是否生效

cd ~/shop-platform
claude

在Claude Code对话中执行以下验证:

# 验证1:检查记忆加载
> "请列出你当前加载的所有CLAUDE.md文件的内容摘要"

# 验证2:检查偏好识别
> "我的全局编码偏好是什么?"

# 验证3:检查权限生效
> "运行 sudo apt update"  
# 预期:被deny规则拦截

# 验证4:检查自动记忆
> "记住:这个项目的所有API返回都必须包含request_id字段"
# 然后关闭会话,重新打开
> "关于API返回你记住了什么?"
# 预期:能回忆起刚才的要求

九、进阶技巧:记忆系统的工程化实践

9.1 记忆衰减与优先级管理

不是所有记忆都同等重要。建议使用优先级标记:

# 在 Topic File 的 frontmatter 中添加优先级
---
name: critical-security-rules
description: 安全相关的重要规则
metadata:
  type: feedback
  priority: critical
---

# 安全规则

- 所有用户输入必须经过验证和清洗
- 禁止在日志中记录敏感信息

9.2 记忆版本管理

将 CLAUDE.md 和 .claude/settings.json 纳入Git版本管理:

# 提交项目级配置到Git
git add CLAUDE.md AGENTS.md .claude/settings.json
git commit -m "feat: add Claude Code memory and permission configuration"

这样做的好处是: - 团队一致性:所有成员共享相同的AI配置 - 变更追溯:可以看到AI指令的演变历史 - 冲突解决:使用Git的标准merge流程处理配置冲突

9.3 记忆与其他AI工具的协同

通过AGENTS.md桥接多个AI工具:

graph LR
    subgraph "开发者工作流"
        A["CLAUDE.md<br/>Claude Code 专属"]
        B["AGENTS.md<br/>跨工具通用"]
        C[".cursorrules<br/>Cursor 专属"]
        D[".github/copilot<br/>Copilot 专属"]
    end

    B --> A
    B --> C
    B --> D

    E["统一编码规范<br/>统一安全规则<br/>统一构建命令"] --> B

    style B fill:#e0f7fa
    style E fill:#fff9c4

9.4 常见陷阱与应对

陷阱1:记忆膨胀

# 错误示范:在CLAUDE.md中写教程
CLAUDE.md (500行,包含完整的React教程)

# 正确示范:只写规则
CLAUDE.md (50行,精炼的规则和命令)

应对:定期审查CLAUDE.md,把"教程"内容移到项目Wiki,CLAUDE.md只保留规则。

陷阱2:循环引用

# 错误示范
file-a.md 引用 [[file-b]]
file-b.md 引用 [[file-a]]
# 导致上下文窗口浪费

# 正确示范
使用 MEMORY.md 作为单一索引,避免直接交叉引用

陷阱3:过于宽松的权限

# 危险示范
{
  "permissions": {
    "allow": ["Bash(*)"]  // 允许所有命令
  }
}

# 安全示范
{
  "permissions": {
    "allow": [
      "Bash(git status*)",
      "Bash(npm test*)",
      "Read(*)"
    ],
    "deny": [
      "Bash(sudo *)",
      "Bash(rm -rf *)"
    ]
  }
}

十、整体工作流程全景图

flowchart TB
    Start["启动 Claude Code"] --> LoadGlobal["加载 ~/.claude/CLAUDE.md<br/>用户全局偏好"]
    LoadGlobal --> LoadProject["加载 项目/CLAUDE.md<br/>项目共享规范"]
    LoadProject --> LoadSub["加载 子目录/.claude/CLAUDE.md<br/>模块级上下文"]
    LoadSub --> LoadMemory["加载 MEMORY.md + Topic Files<br/>自动记忆系统"]
    LoadMemory --> LoadSettings["加载 settings.json<br/>权限配置"]
    LoadSettings --> Ready["🚀 准备就绪"]

    Ready --> Work["正常工作"]
    Work --> Decision{需要权限?}
    Decision -->|已allow| AutoExec["自动执行"]
    Decision -->|已deny| Reject["拒绝执行"]
    Decision -->|未配置| AskUser["询问用户"]

    AutoExec --> Work
    Reject --> Work
    AskUser --> Work

    Work --> Error{犯错被纠正?}
    Error -->|是| SaveMemory["写入 Auto-Memory"]
    Error -->|否| End{会话结束?}
    SaveMemory --> End
    End -->|是| HookRun["运行 Stop Hooks"]
    HookRun --> Save["保存会话摘要"]
    Save --> Done["✅ 会话结束<br/>记忆已持久化"]

    style Start fill:#e8f5e9
    style Ready fill:#c8e6c9
    style Done fill:#a5d6a7
    style SaveMemory fill:#fce4ec
    style Reject fill:#ffcdd2

十一、配置速查表

配置项 文件位置 作用范围 提交Git
用户全局偏好 ~/.claude/CLAUDE.md 所有项目 ❌
用户全局权限 ~/.claude/settings.json 所有项目 ❌
项目共享规范 项目根/CLAUDE.md 当前项目 ✅
项目权限配置 项目/.claude/settings.json 当前项目 ✅
项目本地覆盖 项目/.claude/settings.local.json 当前项目 ❌
模块级上下文 子目录/.claude/CLAUDE.md 子目录 ✅
自动记忆 ~/.claude/projects/.../memory/ 当前项目 ❌
跨工具兼容 项目根/AGENTS.md 所有AI工具 ✅
Hook脚本 项目/.claude/hooks/ 当前项目 ✅

十二、延伸阅读


参考来源

  1. Claude Code Best Practices — Anthropic官方文档 — 官方推荐的上下文工程和记忆管理最佳实践
  2. Claude Code Memory Levels Explained: 6 Layers — MindStudio — 六层记忆架构的深度技术分析
  3. Claude Code Memory System: MEMORY.md — Ian Paterson — MEMORY.md索引系统和Topic Files的完整设计方案
  4. Complete Guide to Claude Code Permissions — ClaudeCodeLab — settings.json权限配置与Hooks实现实战
  5. CLAUDE.md Best Practices: The Complete 2026 Guide — dev.to — CLAUDE.md编写最佳实践和AGENTS.md对比

训练营适用性评估:本教程适合"AI编程工具进阶训练营"(中级),预计教学时长4-5小时(含动手实操2-3小时)。建议学员在课前完成Claude Code的基本安装和首次使用,课中重点实操第六至八节的完整配置案例。可用于企业内训场景,帮助团队统一AI编程工具的使用规范。

[!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学通信知识星球海报-扫码加入