AI_ClaudeCode_1_核心概念
前言
Github:https://github.com/HealerJean
一、Claude Code 工作原理
1、Claude Code 到底是什么
核心定义:Claude Code 是终端运行的 AI 智能代理助手,不只是简单聊天写代码,而是能自主完成:读文件、改代码、跑命令、查网络、修 Bug、重构项目、运行测试、管理 Git 等全流程工程任务。
和普通代码助手最大区别
- 普通助手:只看当前单个文件,一问一答
Claude Code:看整个项目全目录,懂代码依赖、项目架构、Git 状态,自主循环执行任务、自我验证纠错
核心架构-由两大核心驱动:
- 推理模型:理解代码、拆解任务、做决策(
Sonnet/Opus - 执行工具:读文件、改代码、跑命令、搜网络、查语法错误
Claude Code就是把大模型 + 内置工具 + 上下文管理封装成可自主干活的编程智能体。
2、核心重点:代理循环(Agentic Loop)—— 一切功能的底层引擎
1)代理循环三阶段
任何任务都会走 收集上下文 → 采取行动 → 验证结果 循环,可重复迭代,直到任务完成。
收集上下文:扫描项目结构、读取代码、加载 CLAUDE.md、读取 Git 状态、加载自动内存、理解需求和项目规则。
采取行动:自主选择工具:读文件 / 编辑代码 / 执行命令 / 搜索网络 / 启动子代理,拆解多步骤自动执行。
验证结果:运行测试、检查报错、对比预期效果;不合格就回到前两步重新修改,自动纠错。
2)不同任务的循环差异
-
单纯查问题 / 问代码规范:只走收集上下文就结束
-
修 Bug / 小功能开发:三阶段循环多次
-
大型重构 / 架构调整:大量验证、多轮迭代
二、扩展功能
1、核心基础认知
1)什么是 Claude Code 扩展层
ClaudeCode本身自带代码推理模型 + 内置工具(文件读写、搜索、命令执行、网络访问),能完成基础编码任务;扩展层是自定义能力,用来:
- 固化项目 / 团队约定知识
- 接入外部服务、数据库、IM、浏览器
- 封装可复用工作流
- 事件自动化、任务隔离并行
- 打包多仓库复用 / 市场分发
2)触发 & 落地顺序
不用一次性配置所有功能,按遇到问题再添加的节奏:
| 触发时机 | 添加 |
|---|---|
Claude 两次出错约定或命令 |
将其添加到 CLAUDE.md |
| 您一直在输入相同的提示来启动任务 | 封装为 Skill |
| 您第三次将相同的剧本或多步骤过程粘贴到聊天中 | 将其捕获为 skill |
需要外部数据库 / Slack / 浏览器 |
接入 MCP |
| 多仓库复用整套配置 | 打包为 Plugin |
| 多文件检索 / 任务太占上下文 | 通过 subagent 路由它 |
| 您希望每次都发生某事而无需询问,比如想自动触发格式化、校验、通知 | 配置 Hooks |
2、VS
1)CLAUDE.md vs Skill
两者都存储说明,但它们的加载方式和用途不同。
| 方面 | CLAUDE.md | Skill |
|---|---|---|
| 加载 | 每个会话,自动 | 按需 |
| 可以包含文件 | 是,使用 @path 导入 |
是,使用 @path 导入 |
| 可以触发工作流 | 否 | 是,使用 /<name> |
| 最适合 | 全局固定规则、项目约定 | 参考文档、可复用工作流 |
2)Skills vs subagents
| 纬度 | Skill | Subagent |
|---|---|---|
| 本质 | 知识 / 操作手册 | 隔离任务工作者 |
| 它是什么 | 可重用的说明、知识或工作流 | 具有自己上下文的隔离工作者 |
| 关键优势 | 在上下文之间共享内容 | 上下文隔离。工作单独进行,仅返回摘要 |
| 上下文窗口影响 | 添加到您的主窗口 | 使用具有自己输入和输出令牌的单独窗口 |
| 最适合 | 参考材料、可调用的工作流 | 读取许多文件的任务、并行工作、专门的工作者 |
3)Subagent vs Agent team
两者都并行化工作,但它们在架构上不同:
| 纬度 | Subagent |
Agent team |
|---|---|---|
| 架构 | 隶属于主会话 | 独立会话,团队互通 |
| 通信 | 仅向主代理报告结果 | 代理间点对点发消息 |
| 最适合 | 仅结果重要的专注任务 | 需要讨论和协作的复杂工作 |
| 令牌成本 | 较低:结果摘要返回到主上下文 | 较高:每个队友是一个单独的 Claude 实例 |
4)Hook vs Skill
| 维度 | Hook | Skill |
|---|---|---|
| 触发方式 | 生命周期事件自动触发 | 手动 / AI 匹配触发 |
| 执行逻辑 | 固定脚本,无推理 | 可自主推理执行多步骤 |
| 适用 | 强制自动化、安全护栏 | 业务工作流、参考知识 |
3、按功能的上下文成本
| 功能 | 何时加载 | 加载内容 | 上下文成本 |
|---|---|---|---|
CLAUDE.md |
会话开始 | 完整内容 | 每个请求 |
Skills |
会话开始 + 使用时 | 启动时的描述,使用时的完整内容 | 低(每个请求的描述)* |
MCP |
会话开始 | 工具名称;完整架构按需 | 低,直到使用工具 |
Code intelligence |
文件编辑后和按需 | 编辑后的诊断;符号查找时的位置信息 | 低;减少其他地方的文件读取 |
Subagents |
生成时 | 具有指定 skills 的新鲜上下文 |
与主会话隔离 |
Hooks |
触发时 | 无(外部运行) | 零,除非 hook 返回额外上下文 |
节约成本:
-
CLAUDE.md精简到 200 行,冗余移到Skills -
不常用
Skill加disable-model-invocation: true,零开销 -
多文件检索优先用
Subagent,不占主会话上下文 -
固定自动化逻辑放 Hooks,零上下文消耗
-
超大代码库开启
Code intelligence,减少文件读取
4、扩展功能详细解释
1)CLAUDE.md:持久会话上下文
核心作用:每次会话自动加载,全局持久生效,存放项目固定规则、约定、命令,无需每次重复叮嘱 Claude。
适用场景:项目技术栈、包管理器规范、提交规则、禁止修改目录、构建 / 测试命令、编码强制约定。
使用技巧:Claude 两次违背约定,直接把规则补进 CLAUDE.md,不要每次聊天口头纠正。
关键特性
- 会话启动全自动加载
- 可通过
@path导入其他规则文件 - 不能主动触发工作流命令
- 建议控制在 200 行以内,冗余内容拆到 Skills
a、实战案例(项目根目录 CLAUDE.md 模板)
# 项目基础约定
## 技术栈
React18 + TypeScript + Vite + TailwindCSS
## 包管理器
统一使用 pnpm,禁止使用 npm/yarn
## 构建&测试命令
- 本地启动:pnpm dev
- 打包:pnpm build
- 单测:pnpm test
- 代码校验:pnpm lint
## 目录约束
- 禁止修改:node_modules/、dist/、.env、public/静态资源
- 业务代码统一放在 src/ 下
## 编码规范
- 组件使用函数式组件,禁止class组件
- 所有接口请求必须加异常捕获
- 变量使用小驼峰,常量全大写
2) Skills:可复用知识 & 可调用工作流
核心作用:最灵活的扩展,markdown 格式文件,存放参考文档、操作流程、任务清单;支持手动 /deploy 调用或 Claude 自动匹配加载。
适用场景:API 文档、代码审查清单、部署流程、调试剧本、团队风格指南。
关键特性
- 按需加载,非会话常驻
- 支持
/技能名手动触发 - 可被
Subagent预加载 - 分参考型(给知识)、操作型(执行流程)
目录位置:.claude/skills/xxx.md
使用技巧:
- 添加
disable-model-invocation: true,仅手动调用,Claude不会自动加载,节省上下文、避免误触发。
a、代码审查 Skill(.claude/skills/code-review.md)
使用:Claude会话输入 /code-review 或直接说 帮我审查本次代码变更。
---
name: code-review
description: 代码质量审查,输入review即可触发,检查安全、性能、规范
---
# 代码审查清单
## 安全检查
- 禁止硬编码密钥、接口地址
- 入参必须做参数校验
## 性能检查
- 避免循环内重复请求
- 大列表必须做虚拟滚动
## 规范检查
- 遵循项目TS类型定义
- 新增函数必须写注释
b、部署自动化 Skill
---
name: deploy
description: 项目打包部署流程,输入/deploy执行
---
# 部署步骤
1. 执行 pnpm lint 校验代码
2. 执行 pnpm build 打包
3. 检查dist目录是否生成成功
4. 输出部署完成提示
3)Subagents :隔离子代理
核心作用:独立隔离上下文的任务分身,单独运行推理、读取大量文件,只返回摘要结果,不污染主会话上下文。
适用场景:多文件源码调研、批量文件分析、并行子任务、不想让中间日志占满主对话。
关键特性
- 独立上下文窗口,不占用主会话令牌
- 只返回最终摘要,隐藏中间过程
- 可预加载指定
Skills - 适合:读几十份文件、大范围检索、专项核查
a、实战用法1:会话直接指令:
用 subagent 帮我全局搜索所有axios请求,整理统一封装点
b、实战用法2:自定义 Subagent 配置(agents/file-analyze.md)
---
name: file-analyzer
description: 批量文件分析子代理
model: haiku
tools: ["Read","Grep","Glob"]
---
帮我遍历src下所有ts文件,统计接口数量、未加类型定义的函数,汇总成精简报告
4)Agent teams :代理团队
核心作用:多个独立 Claude Code 会话组成团队,互相发消息、共享任务、自主协作。
适用场景:复杂功能开发、多维度并行审查(安全 / 性能 / 规范)、竞争假设调试、大型架构调研。
关键特性
- 每个代理都是独立实例,可互相通信
- 自主协调任务,无需主代理逐一调度
- 令牌成本比
Subagent高 - 默认禁用,需手动开启
实战场景:
同时启动 3 个代理(三者互相沟通,输出综合审查报告。):
- 安全代理:检查漏洞、敏感信息
- 性能代理:分析接口耗时、渲染性能
- 规范代理:校验代码风格、命名规范
5)Code intelligence 代码智能
核心作用:对接语言服务器(LSP),实现符号跳转、定义查找、实时类型错误、引用检索。
适用场景:TS/Java/Go 等类型化语言、超大代码库(grep 低效不准确)。
核心价值:不用通读整个文件,直接跳定义、查引用,减少文件读取,节省上下文成本。
使用方式:安装对应语言的 code intelligence 插件,自动生效:编辑文件后自动检测类型错误,查询符号时自动定位定义。
6)MCP 外部服务连接协议
核心作用:Claude Code 的外部接口标准,连接数据库、Slack、浏览器、内网接口、本地工具。
适用场景:查询业务数据库、发送 Slack 通知、自动化浏览器操作、调用内网服务。
核心特性
MCP负责连接 + 鉴权 + 工具暴露- 搭配 Skill 存放使用规范、数据模型、查询模板
- 解耦外部连接和业务使用知识
实战组合案例
MCP服务:连接 MySQL 数据库,提供查询 / 插入工具- 编写
Skill:定义库表结构、常用查询语句、字段规范 - 使用:直接告诉 Claude
查询用户表近7天注册数据,自动通过 MCP 执行,按 Skill 规范返回结果
常见接入:数据库(MySQL/PostgreSQL)、Slack 消息推送、浏览器自动化、本地脚本调用。
7)Hooks 生命周期事件钩子
核心作用:监听 Claude Code 生命周期事件(文件编辑、命令执行、会话启动、工具调用),自动运行脚本 / HTTP 请求 / 子代理。
适用场景:自动格式化、编辑后自动 lint、会话结束发通知、禁止高危命令、保存自动校验。
核心特性
- 事件触发,无需人工干预
- 默认零上下文成本,外部运行
- 适合做强制规则、自动化护栏(比 CLAUDE.md 文字约束更可靠)
常用触发事件
SessionStart:会话启动PostToolUse:工具执行后(文件编辑 / 写入)PreToolUse:工具执行前(可拦截高危操作)
a、实战案例 :编辑后自动 Prettier` 格式化
在
.claude/settings.json配置:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "npx prettier --write $CLAUDE_FILE_PATH"
}
]
}
]
}
}
b、实战案例 2:禁止执行 rm -rf / 高危命令
8)Plugins 功能打包分发
核心作用:把 Skills + Hooks + Subagents + MCP 服务 打包成一个可安装单元,支持多仓库复用、市场分发。
适用场景:多项目共用一套审查 / 部署 / 校验规则、团队统一配置分发。
核心特性
Plugin内Skill自带命名空间(如/my-plugin:review),避免冲突- 一键安装,无需逐个配置扩展
- 适合团队标准化、开源分享
三、claude 目录
1、核心基础认知
1)两个 .claude 目录
a、项目级目录
路径:项目根目录 ./.claude/
- 作用:项目专属规则、技能、子代理、权限、Hooks
- 版本:可提交到
Git,团队全员共享统一配置 - 适用:编码规范、项目命令、团队工作流、MCP 服务
b、全局级目录
路径:~/.claude
- 自定义路径:可设置环境变量
CLAUDE_CONFIG_DIR改位置 - 作用:个人全局偏好、会话记录、插件、全局技能、自动内存
- 版本:绝不提交
Git,只作用于你本机所有项目 - 适用:个人编码习惯、全局插件、会话历史、主题配色、快捷键
2、完整目录树结构
1)项目仓库完整结构
your-project/
├── CLAUDE.md # 项目全局约定(提交Git)
├── CLAUDE.local.md # 个人私有偏好(自动gitignore)
├── .mcp.json # 项目MCP外部服务配置(提交Git)
├── .worktreeinclude # Git worktrees 同步配置
│
└── .claude/
├── settings.json # 项目权限、Hooks、环境变量(提交Git)
├── settings.local.json # 个人本地覆盖配置(gitignore)
├── rules/ # 模块化路径规则(按目录/语言加载)
├── skills/ # 可复用技能 /xxx 调用
├── commands/ # 自定义斜杠命令
├── agents/ # 自定义 Subagents 子代理
├── agent-memory/ # 子代理持久内存
├── output-styles/ # 自定义AI输出格式
└── hooks/ # 生命周期钩子脚本
2)全局~/.claude 完整结构
~/.claude/
├── settings.json # 全局默认设置
├── rules/ # 全局通用规则
├── skills/ # 全局所有项目可用技能
├── agents/ # 全局子代理
├── plugins/ # 已安装插件市场包
├── projects/ # 所有项目会话记录、对话日志
├── file-history/ # 文件编辑快照(用于回退)
├── history.jsonl # 你所有输入过的指令历史
├── stats-cache.json # Token 用量统计 /usage 命令
├── debug/ # 调试日志
├── paste-cache/ # 粘贴内容缓存
├── image-cache/ # 图片缓存
└── 各类自动生成缓存目录
3、核心文件
1)项目根目录文件
a、CLAUDE.md
- 范围:项目级 + 全局均可存在
- 加载:每个会话自动全量加载
- 用途:项目架构、包管理器、编码强制约定、禁止修改目录
- Git:✅ 提交,团队共享
- 建议:控制在 200 行内,冗余拆到
.claude/rules/
b、CLAUDE.local.md
- 范围:仅当前项目个人私有
- 加载:和
CLAUDE.md一起自动加载 - 用途:你个人对此项目的特殊偏好,不干扰团队
- Git:❌ 必须加入
.gitignore,不提交
c、.mcp.json
- 范围:仅项目级
- 用途:配置项目专属 MCP 外部服务(数据库、Slack、浏览器)
- Git:✅ 提交,团队共用一套外部连接配置
2).claude 目录核心文件
a、settings.json
- 范围:项目 / 全局都有
- 用途:权限控制、允许 / 拦截命令、
Hooks配置、环境变量、模型默认值 - Git:✅ 项目版提交,全局版本地私有
b、settings.local.json
- 范围:仅项目个人本地
- 用途:覆盖项目默认配置,自己单独改权限、环境变量
- Git:❌
gitignore,只自己生效
c、rules/ 目录
- 存放:按语言 / 目录拆分的规范
xxx.md - 加载:可按文件路径门控,只在匹配目录时加载,节省上下文
- 适用:
TS规则、Vue规则、后端接口规范,拆分减轻CLAUDE.md负担 - Git:✅ 提交共享
d、skills/ 目录
- 存放:可复用工作流、文档、审查清单,用
/技能名调用 - 分项目级(本项目用)、全局级(所有项目通用)
- Git:✅ 项目技能提交,个人全局技能不提交
e、agents/ 目录
- 存放:自定义
Subagents子代理配置 - 可预加载指定
skills、限定工具、隔离上下文 - Git:✅ 项目专属代理提交,通用代理放全局
f、output-styles/ 目录
- 自定义
Claude输出文案格式、代码注释风格、返回语气 - 统一团队
AI输出规范
3)全局~/.claude 独有文件
a、plugins/
- 存放通过
claude plugin安装的插件包 - 自动版本管理、
7天清理无用旧版本 - 所有项目共用插件能力
b、history.jsonl
- 记录你所有输入过的指令,终端向上箭头可回溯
- 不建议删,方便复用历史命令
c、file-history/
- 每次文件编辑自动快照,按两次 Esc 回退靠它
- 自动 30 天清理
4、实战经验
1)快速选文件
| 你想实现什么 | 编辑哪个文件 | 生效范围 |
|---|---|---|
| 给项目固定编码约定、架构规则 | CLAUDE.md | 全项目会话 |
| 自己私有的项目偏好,不影响团队 | CLAUDE.local.md | 仅你本机 |
| 控制允许 / 禁止 Shell 命令、编辑权限 | .claude/settings.json | 团队共享 |
| 自己单独改权限,不和团队同步 | settings.local.json | 仅你本机 |
| 每次事件自动执行脚本、格式化 | .claude/settings.json 里 hooks | 项目全局 |
| 做可复用 /deploy/code-review 命令 | .claude/skills/ | 本项目 |
| 所有项目都能用的技能 | ~/.claude/skills/ | 全局所有项目 |
| 按目录单独加载编码规范 | .claude/rules/ | 匹配路径才加载 |
| 配置数据库、Slack 外部连接 | .mcp.json | 本项目团队 |
| 自定义隔离子代理任务 | .claude/agents/ | 本项目 |
2)Git 忽略规范
# Claude 个人私有配置
CLAUDE.local.md
.claude/settings.local.json
# Claude 自动缓存、本地临时文件
~/.claude/ # 全局本来就不在仓库,不用管
.claude/**/cache/
.claude/**/temp/
3)应用数据自动清理 & 手动清理
4)自动清理规则
~/.claude 下大部分会话日志、工具输出、文件快照 默认 30 天自动删除
可通过配置修改 cleanupPeriodDays 调整天数。
b、. 永久保留不自动删
-
history.jsonl:指令历史 -
stats-cache.json:Token 用量统计 -
plugins已安装插件包
c、手动清理命令(实用)
# 预览要删除的项目缓存,不实际删除
claude project purge ~/work/你的项目路径 --dry-run
# 直接清理单个项目所有会话记录、快照、缓存
claude project purge ~/work/你的项目路径
# 清理所有项目缓存(慎用)
claude project purge --all
d、删除后会丢失什么
-
删除
~/.claude/projects/→ 无法恢复历史会话 -
删除
file-history/→ 无法Esc回退文件修改 -
删除
history.jsonl→ 终端向上箭头找不到历史指令
5)隐私安全建议
Claude 会把读取的 .env 密钥、命令输出凭证存入会话明文日志。
优化方案:
- 缩短自动清理天数
cleanupPeriodDays - 用权限规则禁止读取凭证文件
- 设置环境变量
CLAUDE_CODE_SKIP_PROMPT_HISTORY关闭日志记录 - 一次性任务用
--no-session-persistence不保存会话
5)新手落地实操步骤
- 项目根目录新建
CLAUDE.md写入项目技术栈、包管理器、编码规则 - 新建
.claude文件夹,创建settings.json配置允许的命令、Hooks - 新建
.claude/skills/放代码审查、部署技能 - 新建
.claude/rules/拆分 TS / 业务规范,精简 CLAUDE.md - 在
.gitignore忽略*.local.*私有文件 - 全局
~/.claude/skills放自己通用的调试、查询技能,所有项目可用\ - 配置 MCP 就新建
.mcp.json提交团队共享
五、Prompt Caching
1、Prompt Caching 是什么
提示缓存:让 Claude Code 不用每一轮都完整重跑全量上下文,复用之前已经处理过的固定内容,更快、更省 Token、更省钱。
- 没有缓存:每轮把「系统提示 + 项目规则 + 全部历史对话」重新计算一遍
- 有缓存:只处理最新变化的内容,前面不变的前缀直接读缓存,缓存
Token仅约原价 10%
Claude Code 默认全自动开启缓存,你不用手动开,只需要懂哪些操作会搞坏缓存、怎么保住缓存命中率。
2、底层工作原理
1)核心机制:前缀精确匹配
每一次发消息,都会把完整上下文发给模型;
API 会匹配请求最开头的前缀,只要前缀一字不变 → 直接读缓存;
只要前缀任意一处改动 → 后面所有缓存全部失效,整段重算、重写缓存。
重点:不是按文件缓存、不是按段落缓存,是从头开始整段前缀精确匹配。
2)上下文三层结构(缓存分层逻辑)
Claude刻意把请求内容按「变动频率从低到高」排序,最大化缓存命中率:
| 层级 | 包含内容 | 多久变一次 | 缓存影响 |
|---|---|---|---|
| 系统提示层 | 核心指令、工具定义、MCP 工具集、输出样式 |
极少变 | 一改全局缓存全失效 |
| 项目上下文层 | CLAUDE.md、自动内存、全局 rules |
会话初期固定 | 中期修改缓存失效 |
| 对话层 | 你的消息、Claude 回复、工具执行结果 |
每轮都变 | 只影响当前后续对话,不破坏上层缓存 |
3、缓存失效
1)必失效高危操作(尽量别在任务中途做)
-
会话中途 切换模型
/model opus/sonnet - 切换 工作量级别
/effort high/low - 连接 / 断开
MCP服务器(工具定义变了,系统层改动) - 会话中途 全盘禁止 / 放行工具(如禁止 Bash、WebFetch)
- 执行
/compact手动压缩对话历史 - 升级
Claude Code版本 - 用
--resume恢复超长历史会话
2)不会破坏缓存的安全操作
这些操作只追加在对话末尾,不改前缀,缓存完好无损:
- 编辑项目普通业务代码文件
- 会话中途修改
CLAUDE.md(改了也不生效,要重启 //clear才加载) - 切换权限模式(默认 / 自动编辑 / Plan 模式)
- 调用
Skills、自定义命令 - 运行
/recap会话总结 - 用
/rewind回退到历史对话 - 生成
Subagents子代理
4、FQA
1)对话压缩 /compact 深度解析
1./compact 做了什么?
答案:用精简摘要替换冗长历史对话,缩短上下文、减少冗余。
2. 缓存代价
- 压缩会破坏对话层前缀,必须重建对话缓存
- 但会保留系统层、项目上下文层缓存,不用全量重算
3. 最佳使用时机
-
不要在任务中途压缩;
-
放在任务结束、自然停顿时执行,把缓存重建开销放在空闲间隙。
4. 替代优选:/rewind
答案:想放弃当前错误思路,优先用 /rewind 回退旧回合,直接复用历史缓存,比 /compact 更省成本。
2)缓存生命周期
-
缓存自动过期:缓存长时间不使用会过期,每次命中都会刷新计时,连续工作永久保持缓存有效。
-
两种 TTL 时长
- 5 分钟:短时缓存,便宜、过期快
- 1 小时:长时缓存,跨休息仍保留,适合长会话
- 不同身份默认
TTL
Claude订阅用户:默认 1 小时 TTL,不额外收费- 超订阅额度后:自动降级 5 分钟
API密钥 /Bedrock/ 第三方:默认 5 分钟
-
手动强制修改 TTL 环境变量
# 开启1小时长缓存(API/第三方用) export ENABLE_PROMPT_CACHING_1H=1 # 强制固定5分钟缓存 export FORCE_PROMPT_CACHING_5M=1
3)缓存生效范围 & 会话隔离
- 按目录隔离:不同项目目录、git worktree 互相不共享缓存
- 同目录多会话:同一项目开多个终端会话,共享缓存,互相命中
- 子代理
Subagent- 子代理独立缓存,首次调用无命中,自己慢慢预热
- 子代理默认只有 5 分钟 TTL,哪怕主会话是订阅 1 小时
- 父会话缓存不受子代理任何影响
- 会话分叉 Fork:分叉会话继承父会话完整缓存,开局直接命中
4)实战最佳实践
-
会话开局固定配置:任务一开始就定好:模型 /effort 级别 / MCP 服务,中途尽量不改。
-
CLAUDE.md 提前定稿:开会话前把规则写全,会话中途尽量不修改;必须改就重启会话。
-
避免中途切换 Plan 模式:OpusPlan 会在 Opus/Sonnet 之间自动切模型,频繁切换 = 频繁重建缓存。
-
MCP 服务尽量稳定:不要频繁增删 MCP 服务;MCP 尽量会话开局就连好,中途少变动。
-
压缩选时机:任务做完再
/compact,别做一半压缩。走错路优先/rewind回退。 -
长任务尽量不中断:少用
--resume恢复超长会话,容易缓存失效、Token 暴涨。 -
动态内容放对话尾部:时间戳、动态变量、临时提示不要写在系统层,追加到对话末尾,不破坏前缀缓存。


