管理 Claude code上下文:实用手册

作者:是魔丸啊日期:2025/10/18

转载

Anthropic 的 Claude 代码和更广泛的 Claude 系列现在为开发者提供了前所未有的控制能力,可以控制模型看到的内容量推理深度。最近的产品更新(特别是 Sonnet 4 的 100 万 token 上下文窗口和 Claude 扩展的"思考"控制)使上下文管理变得更加强大和重要:您可以在单个会话中处理整个代码库——但前提是您需要有意地构建提示、文件和会话状态。本文解释了如何可靠地管理 Claude 代码的上下文:命令和用法、思考预算控制、CLAUDE.md 模式、子代理工作流、高级用户技巧、故障排除以及可以复制粘贴的具体代码示例。

什么是 Claude 代码?

Claude 代码是 Anthropic 的智能编程 CLI——一个以终端为首要的工具,将您的开发环境连接到 Claude 模型,使助手能够读取您的仓库、运行命令、编辑文件、运行测试、创建提交,并从终端执行多步骤工作流。它的构建使 AI 能够"生活"在您的 shell 中并作用于您的代码库,具有仓库扫描、斜杠命令、子代理(具有隔离上下文的专业助手)和用于外部工具的模型上下文协议(MCP)集成等功能。

为什么要管理 Claude 代码的上下文?

因为上下文 = 相关性 + 成本 + 安全性。如果不加控制,长历史记录会导致:

  • 更高的 token 使用量(更多成本,响应更慢)
  • 上下文漂移(旧/不相关的信息混淆输出)
  • 信息泄露(机密或敏感日志卡在会话中)

管理上下文可以保持输出准确、可预测且更便宜。

Claude 代码如何组织和保存项目上下文?

Claude 代码是一个智能 CLI,将您的仓库、工具和配置视为一等上下文源。它读取项目文件、CLAUDE.md、本地工具和配置的 MCP 服务器;它还支持子代理,每个子代理都有自己的上下文窗口(有助于避免污染主对话)。使用这个功能可以将主级策略与专业代理内存分开(例如,测试运行器、代码审查器)。

Claude 代码如何吸收仓库上下文和辅助文件?

它扫描工作目录和您添加的任何额外目录(--add-dir)。 它寻找 .claude/ 子文件夹(命令、代理)和 CLAUDE.md。 您可以连接模型上下文协议(MCP)服务器以访问外部工具;Claude 代码可以将这些工具继承到其工具集中。

我可以采用哪些方法在 Claude 代码中管理上下文?

  1. 掌握基本的上下文 CLI 命令。将可重用的提示存储为 .claude/commands/ 中的斜杠命令,避免重复粘贴长提示。
  2. 适当设计 CLAUDE.md 文件。将 CLAUDE.md 添加到仓库根目录以定义目标、允许的工具、样式、升级规则和有用的斜杠命令。(Claude 代码会自动读取并将其用作权威指导。)
  3. 使用子代理进行任务隔离——每个子代理都有自己的上下文窗口和工具权限,这可以防止主会话被污染。将子代理存储在 .claude/agents/ 中并进行版本控制。

基本上下文管理命令有哪些?

以下是您在 Claude 代码中最常用来管理对话状态的命令。我列出了行为、示例用法、推荐场景和相关 CLI 标志的指针。

/clear — "重新开始"

作用: 从会话中清除当前对话历史,使后续提示从干净的状态开始。REPL 会话继续,但来回消息从模型的上下文中删除。(项目文件和 CLAUDE.md 仍然可以被 Claude 代码访问。)

使用时机:

  • 完成功能或票据后,您想要一个干净会话来处理不相关的任务
  • 如果会话积累了许多探索性轮次且答案质量下降
  • 在将会话交给另一个用户/代理之前,以避免泄露先前的对话状态

用法:

1# 在交互式 REPL 中
2/clear
3

注意和技巧: /clear 对该会话的对话历史是破坏性的;如果您想返回保存在磁盘上的旧会话,请使用 /resume/--continue

/compact — "总结和压缩"

作用: 将当前对话压缩为更短的摘要,保留重要事实和决策,然后用该摘要替换冗长的历史记录,使会话可以在不丢失重要上下文的情况下继续。这减少了 token 使用量,同时保持了连续性。

使用时机:

  • 当您想保留线程的重要状态但减少 token 占用时
  • 在会将上下文窗口推向限制的长新任务之前
  • 当您想要一个简洁的会话"记忆"同时保留关键决策时

用法:

1# 在交互式 REPL 中
2/compact
3# 或者使用指令来指导摘要
4/compact 仅总结决策、开放的 TODO 和配置更改
5

注意和技巧: 在某些构建或设置中,当对话长度接近限制时,auto-compactmicrocompact 和其他智能压缩行为可能会自动运行;这些功能正在推出,可能会出现在您的安装或托管环境中。(社区和更新日志讨论 microcompact 和 auto-compact 行为。)

--continue--resume 和会话控制(CLI 级别)

作用: 从 CLI 控制会话持久性和选择。

  • claude --continue(或 claude -c)——重新打开并继续当前项目目录中最近的对话。
  • claude --resume(或 claude -r <session-id>)——显示交互式选择器(或按 ID 恢复特定会话)。当您保存了许多会话并想要选择一个继续时很有用。

用法示例:

1# 继续最近的会话
2claude --continue
3
4# 打开交互式会话选择器
5claude --resume
6
7# 按 id 恢复(非交互式)
8claude --resume 550e8400-e29b-41d4-a716-446655440000
9

对上下文重要的交互模式快捷键(终端 UX)

  • Ctrl+L — 清除终端屏幕(视觉上),但保留对话历史。使用 /clear 实际重置历史。
  • Ctrl+D — 退出会话(EOF)。
  • Ctrl+C — 取消当前生成。

这些是便利控制;它们只影响终端行为,除非您明确运行 /clear--continue/--resume

其他与上下文相关的控制和标志

  • --add-dir <path> — 包含 Claude 可以读取的额外目录(有助于限制 Claude 可以访问的内容并减少不必要的文件读取)。
  • --allowedTools — 预先允许工具,以便 Claude 可以运行它们而无需重复权限提示(减少来回和嘈杂的工具权限对话框)。
  • 斜杠命令/.claude/commands/ 或 MCP 提供的)——存储经常使用的、高效的 token 提示;调用斜杠命令比重复粘贴长提示更便宜。

我应该如何设计 CLAUDE.md 文件来控制项目上下文?

什么是 CLAUDE.md 以及为什么它很重要

CLAUDE.md 是一个预检、项目级提示,当在仓库中启动时 Claude 代码会自动读取它。使用它来放置关于项目的简短、可操作、稳定的事实(名词、架构、标准)。因为模型将 CLAUDE.md 摄取到提示中,精心制作的文件减少了重复粘贴相同信息的需要并保留了宝贵的 token 预算。

CLAUDE.md:实用模板(推荐)

保持这些规则:简短(尽可能 100-200 行)、层次化(全局 → 项目 → 子目录覆盖)和机器可读部分。

1# CLAUDE.md — 仓库顶部
2项目:Acme 支付网关
3主要语言:typescript
4构建:pnpm build
5运行测试:pnpm test
6API 路由:src/api/*
7数据库:通过 prisma 的 Postgres(架构在 prisma/schema.prisma)
8
9# 约定
10- 提交格式:约定式提交
11- 测试覆盖率阈值:80%
12- 样式:eslint + prettier(配置在 .eslintrc、.prettierrc)
13
14# 我要求 Claude 做什么
15- 当被要求创建功能时,始终包括测试并更新 CHANGELOG
16- 修改数据库架构时,提供迁移计划和迁移文件
17

注意:

  • 将高价值项目(API、重要文件、基础设施命令、测试命令)放在前面。
  • 当不同模块有不同约定时,在子目录中使用单独的 CLAUDE.md 文件;Claude 将合并并优先处理更具体的文件。

我如何组装工作流和子代理来管理上下文并并行化工作?

什么是子代理?

子代理是 Claude 代码模式,其中主代理将离散任务委托给下属代理(例如:frontend-agentbackend-agentqa-agent),然后主代理协调它们的输出。子代理让您可以在系统的不同部分并行工作,而不会将所有内容塞进单个聊天中。

示例工作流:功能实现(并行代理)

  1. main-agent 读取 CLAUDE.md,创建计划
  2. frontend-agent(子代理)获得专注上下文:UI 契约、storybook、特定文件
  3. backend-agent(子代理)获得数据库架构、API 契约并实现端点
  4. qa-agent 运行测试,将失败的测试写回 main-agent
  5. main-agent 协调提交、合并请求并更新 CLAUDE.md

CLI 模式:

1# 启动主会话
2claude --session main
3
4# 生成前端子代理(概念上:具有范围 CLAUDE.md 的新会话)
5claude --session frontend --cwd frontend/
6

提示: 在子目录下创建范围化的 CLAUDE.md 文件(frontend/CLAUDE.mdbackend/CLAUDE.md),这样每个子代理都从它需要的最小上下文开始。

示例子代理:.claude/agents/code-reviewer.md

1---
2name: code-reviewer
3description: 专注的代码审查器。有限工具:Read、Grep、Bash
4---
5
6您是一个代码审查器。当被调用时:
71. 运行 `git diff --name-only` 查看更改的文件
82. 优先考虑安全性、正确性、测试
93. 返回补丁(diff)和 3 项可操作的清单
10

保持上下文健康和降低成本的高级用户技巧有哪些?

1) 保持 CLAUDE.md 精简和层次化

避免巨大的单块 CLAUDE.md 文件。使用一个全局文件记录开发者的偏好,使用小模块文件记录区域特定内容。参见前面的模板。

2) 使用斜杠命令处理动词,CLAUDE.md 处理名词

使 CLAUDE.md 成为事实的地方(存在什么文件、架构),使斜杠命令成为程序的地方(创建测试、运行重构)。这可以防止每个会话重新发送程序逻辑。社区智慧强调这种分离。

3) 将详细模式 + 计划模式用作调试工具

当 Claude 行为异常时,运行详细模式查看确切的上下文,并使用计划模式强制您可以在编辑之前批准的明确计划。

4) 仔细预算思考

从默认/最小思考 token 开始,只有当任务需要多步推理时才增加(复杂重构、形式验证)。对常规编辑使用较低的预算。

5) 输出和提交的仪表化

拥有自动运行测试并将其输出附加到会话的钩子(bash 模式 ! 运行 shell 命令并将输出作为上下文包含)。使用提交钩子创建带有消息的清晰原子提交。

当上下文"丢失"或 Claude 忘记指令时我应该如何故障排除?

常见症状和修复

症状: Claude 忽略 CLAUDE.md 或先前的指令。

修复: 确认文件在会话的当前工作目录中;检查是否有更具体的子目录 CLAUDE.md 覆盖它;使用详细模式查看当前提示。

症状: 长时间会话的性能下降(模型"忘记"早期部分)。

修复: 压缩会话:将稳定事实提取到 CLAUDE.md 中,或将对话部分快照到文件中并引用它们而不是重复。也考虑重新启动短会话并只传递简洁的上下文。

症状: 扩展思考花费太长时间或超时。

修复: 降低 thinking_budget,将任务分解为更小的子问题,或者如果您需要极大预算则运行批量离线分析。Anthropic 建议当最佳思考预算超过约 32K token 时进行批处理以避免超时。

结论

在 Claude 代码中管理上下文现在是一个多维问题:模型选择、子代理设计、CLAUDE.md 纪律、思考预算和工具架构都相互作用。从投入 1-2 小时编写清晰的 CLAUDE.md 开始,搭建 2-3 个专注的子代理,并为 token 和思考预算添加使用仪表化——您将立即在可靠性、成本可预测性和团队生产力方面看到收益。


管理 Claude code上下文:实用手册》 是转载文章,点击查看原文


相关推荐


Nx带来极致的前端开发体验——任务缓存
西陵2025/10/16

前言 前面我们讲过,为了提高项目的构建速度,社区将大部分的精力放到构建工具上,例如rspack、esbuild、swc等,利用语言优势提升构建速度。而像 webpack 这种老牌构建工具则将优化方向放在缓存上,但是他缓存的是构建流程中的中间结果,例如每个文件经过 loader 转换后的产物。 而本章节要介绍的任务缓存是指缓存任务执行之后的产物,例如构建或者测试任务,对于一个 package 来说,如果他的代码没发生改变,下一次执行 build 命令时可以直接读取上一次的构建产物,而无需再次进行构


excel中关联word邮件合并使用
山西璟绘地理信息有限责任公司2025/10/15

你在日上的工作中是不是需要批量的输出格式相同但是局部需要替换的文档,如果是几份就是人工修改一下,但是如果你面对的石海量的文档,你还会人工编辑吗?首先时间不容许,其次性价比特别低,如果站在打工摸鱼的角度无可厚非,但是如果你真的愿意提高效率,接下来讲的就是你需要的,开整。 这个就是典型的使用场景: 变量: 1、统一社会信用代码 2、名称 3、原法定代表人 4、现法定代表人 5、行政村盖章落款 6、日期 准备工作: 1、首先做好一个模板,如上图所示 2、建立自己的数据库,一般


Redis(61)Redis的连接数上限是多少?
Victor3562025/10/14

Redis 的连接数上限取决于系统的硬件资源、操作系统的配置以及 Redis 自身的配置。这一限制主要来自以下几个方面: 硬件资源:包括可用的 CPU、内存等。 操作系统的限制:文件描述符数量、网络连接等。 Redis 配置:最大客户端连接数配置。 Redis 配置的限制 Redis 的最大连接数由 maxclients 配置项决定。默认情况下,这个值设置为 10000。 在 redis.conf 文件中,你可以找到并修改这个配置项: maxclients 10000 或者动态配置: re


macOS 内核路由表操作:直接 API 编程指南
liulilittle2025/10/12

🖧 macOS 内核路由表操作:直接 API 编程指南 本文将探讨如何在 macOS 系统中,通过直接调用系统 API 来高效添加和删除内核路由表项,避免调用外部命令带来的性能开销,并提供完整的 C++ 实现代码。 🧭 概述 在 macOS(基于 BSD 内核)系统中,路由表管理是网络编程的核心组成部分。传统上,管理员和开发者通常使用 route 命令或 netstat 工具来查看和管理路由表。然而,对于需要高性能网络控制的应用程序(如网络优化工具或自定义路由解决方案),直接通过系统


基于单片机的Boost升压斩波电源电路
清风6666662025/10/11

基于单片机的Boost升压斩波电源电路设计 点击链接下载资料:https://download.csdn.net/download/m0_51061483/92081480 1. 系统功能概述 本系统以单片机为核心控制单元,设计并实现了一种Boost升压型斩波电源电路。系统能够实现输入5V电压,通过Boost电路升压至可调的20V输出范围。用户可通过按键设置目标输出电压,液晶LCD模块实时显示当前输出电压与设定电压,形成完整的闭环控制系统。 系统采用PWM控制技术与DA(数模转换)调


从入门到实战:全面解析Protobuf的安装配置、语法规范与高级应用——手把手教你用Protobuf实现高效数据序列化与跨语言通信
羑悻的小杀马特.2025/10/9

文章目录 本篇摘要一.`Protocol Buffers(Protobuf)`简介1. **核心定义**2. **核心作用**3. **对比优势**4. **使用关键点**总结 二.`基于windows及ubuntu22.04安装Protobuf``windows`ubuntu22.04 三.快速上手protobuf编写及测试规范说明编译命令编译生成结果 四.proto3语法解析之字段规则与消息定义五. `Protobuf 命令行decode操作`六.仓库链接七.本篇


cygwin + redis
欧的曼2025/10/8

1. 下载 Redis 源码 推荐安装稳定版(如 Redis 7.0.12,可从 Redis 官网下载页 获取最新稳定版链接): wget https://download.redis.io/releases/redis-7.0.12.tar.gz 2. 解压并进入源码目录 3. 编译 Redis(关键步骤) 找到Cygwin安装目录下的usr\include\dlfcn.h文件,修改如下代码,将#if __GNU_VISIBLE、#endif 这两行注释掉。(使用// 或 /


【OpenCV】图像处理入门:从基础到实战技巧
朋鱼燕2025/10/6

目录 1.对图像的基本理解 2.数据读取-图像 ​编辑 3.数据读取-视频 4.ROI区域 1.对图像的基本理解 图像是由一个个像素点组成的,RGB图像有三个通道,而灰度图像只有一个通道 RGB每个通道的像素点的值的范围是0-255,数值越大,对应该颜色通道的亮度越亮 2.数据读取-图像 在文件的路径下读取一张图像,不能包含中文 opencv的读取格式是BGR cv2.waitKey(0)按下任意键才关闭图像,换成1000的话是显示1000


【Docker】说说卷挂载与绑定挂载
你的人类朋友2025/10/5

前言 我最开始接触 Docker 的时候,遇到 mysql 这样的容器,我一般使用卷挂载。它的好处就是将挂载的位置交给 Docker 管理,我们规定卷的名字即可,不需要关心挂载的位置。我感觉这样很方便,所以后面我基本一遇到挂载就用卷挂载。 但是最近,我慢慢地开始喜欢上绑定挂载了。特别是要部署一个什么环境之类的【如 n8n、redis】,都会优先使用绑定挂载。这个挂载方式会让我更有一种掌控感。 今天就来总结这两种挂载方式的相关知识。 正文 一、什么是 Docker 数据挂载? 在 Docker 中


基于LazyLLM多Agent大模型应用的开发框架,搭建本地大模型AI工具,你贴身的写作、论文小助手
xcLeigh2025/10/4

在搭建本地大模型作为写作、论文小助手时,开发者常面临诸多技术难题:模型部署需研究复杂 API 服务,微调模型要应对框架选择与模型切换的困扰,工具落地还需掌握 Web 开发技能,这让初级开发者望而却步,资深专家也需为适配需求、集成新工具耗费大量精力。而 LazyLLM 多 Agent 大模型应用开发框架可有效解决这些问题,它打包了应用搭建、数据准备、模型部署、微调、评测等全环节工具。初级开发者借助预置组件即可打造有生产价值的 AI 工具,资深专家能依托其模块化设计集成自有算法与前沿工具,助力不同水

首页编辑器站点地图

Copyright © 2025 聚合阅读

License: CC BY-SA 4.0