FEATURE ARTICLE

7 有效沟通 & 8 管理你的会话

Claude Code 环境配置实践,包含 CLAUDE.md 设计原则、分层加载和常见配置建议。

2026-05-22 技术 Claude Code / 环境配置 / CLAUDE.md

7. 有效沟通

🟢 基础 | 官方最佳实践 #5:你与 Claude 的沟通方式直接影响输出质量。

7.1 像问资深工程师一样提问 🟢

当你加入新项目或探索不熟悉的代码时,把 Claude Code 当成一位资深工程师来提问:

1
2
3
4
5
日志系统是怎么工作的?
怎么创建一个新的 API 端点?
foo.rs 第 134 行的 async move { ... } 是做什么的?
CustomerOnboardingFlowImpl 处理了哪些边界情况?
为什么这段代码在第 333 行调用 foo() 而不是 bar()?

不需要特殊的提示技巧——直接问。这是一个非常有效的入职工作流,可以加速熟悉新代码库、减少对其他工程师的打扰。

沟通模式选择 🟢

![[Pasted image 20260304163556.png]]

模式 适用场景 示例
提问模式 理解代码、学习架构 “这个模块是怎么工作的?”
指令模式 明确的实现任务 “为 auth.ts 添加 JWT 刷新,运行测试验证”
采访模式 大型功能、需求不明确 “采访我关于这个功能的需求”
对话模式 探索性任务、方案讨论 “这个文件有什么可以改进的?”

7.3 采访模式的深度用法 🟡

采访模式不仅适用于需求收集,还适用于:

方案评审

1
2
3
我打算用 Redis 做分布式锁来解决并发问题。
用 AskUserQuestion 采访我,挑战这个方案的假设,
帮我发现我可能忽略的问题。

架构探讨

1
2
3
我想把单体应用拆分成微服务。
采访我关于服务边界、数据一致性、部署策略等问题。
深入挖掘我没考虑到的困难部分。

事后复盘

1
2
3
刚修完一个严重 bug。
采访我关于根因、为什么没有测试覆盖、如何防止再次发生。
输出一份事后复盘报告。

Boris Pro Tip B9:Boris 和团队使用挑战式提示来获得更好的结果:
"grill me on these changes and don't make a PR until I pass your test" — 让 Claude 当你的 reviewer
"prove to me this works" — 让 Claude diff main 和 feature branch 的行为差异
"knowing everything you know now, scrap this and implement the elegant solution" — 中庸方案不满意时,让 Claude 推倒重来
"play devil's advocate" — 让 Claude 站在反方论证

这些提示利用了 Claude 的推理能力,比简单的”帮我实现 X”能得到更深思熟虑的结果。

7.4 沟通的常见误区 🟢

误区 ❌ 改进 ✅
一次给太多不相关任务 一次专注一个任务,完成后 /clear
反复修正同一个错误 修正两次后 /clear,用更好的提示词重新开始
用”改善”、”优化”等模糊词 给出具体目标和验证标准
不提供错误信息就说”有 bug” 粘贴完整错误信息和复现步骤
不指定参考文件 用 @ 引用,或指明参考模式
让 AI 猜你想要什么风格 指向项目中已有的代码作为参考

7.5 Output Styles(输出风格)🟡

通过 /config 设置输出风格,改变 Claude 的回复方式:

风格 效果 适用场景
Explanatory Claude 解释每个修改的 why 入职新代码库、代码审查学习
Learning Claude 像教练一样引导你修改 学习新语言/框架、培训初级工程师
自定义 按你的偏好调整 Claude 的语气和格式 团队统一风格、个人习惯
1
2
/config
# 选择 Output Style → Explanatory

团队提示:新人入职代码库时,启用 Explanatory 风格可以加速理解。Claude 不只是改代码,还会告诉你为什么这样改。
![[Pasted image 20260304163627.png]]

7.6 Bug 修复的高效沟通 🟡

Claude Code 团队分享的零上下文切换 Bug 修复流程:

1
2
3
4
5
6
7
8
# 从 Slack 直接修复(需配置 Slack MCP)
这是 Slack 上报告的 bug:[粘贴 bug thread]。Fix it.

# 修复 CI 失败
Go fix the failing CI tests.

# 分布式系统排查
查看 docker logs,分析这些错误的根因并修复

关键原则:不要微管理 how,只说 what。让 Claude 自己决定修复路径。

7.7 Claude Code 团队的沟通建议 🟡

来自 Anthropic 内部团队的实践:

  1. 越具体越好:与其说”修复这个”,不如说”检查 src/auth/middleware.ts 第 45 行的 token 验证逻辑”
  2. 提供约束:”不引入新的第三方依赖”、”保持与现有模式一致”
  3. 说明”为什么”:”我需要添加缓存,因为这个接口 P99 延迟是 2 秒” 比 “添加缓存” 更好
  4. 给出例子:模糊的需求 + 一个示例 = 清晰的需求

8 管理你的会话

🟡 进阶 | 官方最佳实践 #6:上下文窗口是最重要的资源。

8.1 理解上下文窗口 🟢

Claude 的上下文窗口(~200K tokens)包含了会话中的所有内容。

每个功能在会话的不同点加载。下面的选项卡说明每个功能何时加载以及什么进入上下文。
![[Pasted image 20260304163708.png]]

![[Pasted image 20260304163716.png]]

核心认知:一次调试会话或代码库探索就可能产生数万 token。当上下文接近上限时,Claude 可能”遗忘”早期指令或犯更多错误。

8.2 及早纠正 🟢

最好的结果来自紧凑的反馈循环:

操作 快捷键 说明
停止 Esc 立即停止 Claude,保留上下文
回退 Esc + Esc 或 /rewind 打开回退菜单,恢复到检查点
撤销 “Undo that” 让 Claude 撤销最近的修改
重置 /clear 清空上下文,开始新任务

关键规则:如果你已经修正了 Claude 两次,上下文已经被失败方案污染。运行 /clear 并用更好的提示词重新开始——干净会话 + 好提示词 几乎总是优于 长会话 + 反复修正

8.3 积极管理上下文 🟡

上下文管理策略决策树

![[Pasted image 20260304163735.png]]

/clear:最简单也最有效的策略

1
/clear    # 在不相关的任务之间清空上下文

在切换任务时清空上下文,让新任务获得干净的上下文。

自动压缩(Auto Compaction)

当上下文接近上限时,Claude Code 自动触发压缩,保留关键代码和决策,释放空间。

你可以在 CLAUDE.md 中自定义压缩行为:

1
2
3
4
5
# 压缩指令
When you are using compact, please focus on:
- 测试输出和代码变更
- 修改过的文件的完整列表
- 所有未完成的任务

也可以手动触发带指令的压缩:

1
/compact 聚焦 API 变更和测试结果

部分回退压缩

使用 Esc + Esc 或 /rewind 打开回退菜单,选择一个消息检查点,然后选择 Summarize from here。这会从该点开始压缩后续消息,同时保留更早的上下文。

8.4 使用子代理隔离探索 🟡

由于上下文是你的核心约束,子代理是最强大的工具之一:
![[Pasted image 20260304163752.png]]

子代理探索代码库、读取文件,然后只返回摘要到主会话,不污染主上下文。

8.5 检查点与回退 🟢

Claude 在每次操作前自动创建检查点。按两次 Esc 或运行 /rewind 打开回退菜单:

  • 仅恢复会话
  • 仅恢复代码
  • 两者都恢复
  • 从某点开始压缩

检查点跨会话持久化——你可以关闭终端,下次仍然可以回退。

提示:检查点只追踪 Claude 的修改,不能替代 Git。

8.6 恢复会话 🟢

1
2
3
claude --continue     # 继续当前目录最近的会话
claude --resume # 从列表中选择会话
claude --teleport # 将 Web 会话拉回本地终端继续

Boris 经常用 --teleport 把 claude.ai/code 上的 Web 会话拉回本地终端继续,比如在 iOS 上开始任务、稍后在电脑上接手。

使用 /rename 给会话命名,像分支一样管理不同工作流的上下文。

会话选择器快捷键

快捷键 操作
↑/↓ 浏览会话
Enter 选择并恢复
P 预览会话内容
R 重命名会话
/ 搜索过滤
B 按当前 Git 分支过滤

8.7 Token 效率目标 🟡

指标 目标 说明
基础上下文消耗 < 20K tokens 占 200K 上下文的 10%
CLAUDE.md 大小 < 2000 tokens 60-80 行以内
MCP 工具定义总量 < 20K tokens 默认预加载,空闲也占空间
上下文清理频率 每 ~60K tokens 在 30% 而非上限时清理
Bash 输出截断 尾部 30 行 npm test 2>&1 |tail -30

上下文效率优化清单

优化方向 方法
减少 MCP 开销 禁用不使用的 MCP 服务器,默认预加载时空闲也占上下文
CLI 优于 MCP 能用 gh、aws CLI 的场景,优先用 CLI
具体化提示 “改善代码库” → 全面扫描;”给 auth.ts 添加验证” → 精准高效
CLAUDE.md 瘦身 不常用指令移到 Skills
Hooks 预处理 用 Hook 过滤 10000 行日志只剩 ERROR 行
安装代码智能插件 一次 “go to definition” 比 grep 多个文件更省 token

监控上下文

通过自定义状态栏持续显示上下文使用情况(配置详见 6.9):

1
/statusline

Boris Pro Tip B10:Boris 同时运行 5 个 Claude 会话(Desktop 多窗口 + 终端),并配置了系统通知 Hook。当任何一个会话需要他的注意时,macOS 会弹出通知。这让他可以发起多个任务、去做其他事,等通知再回来处理。