Claude Code从入门到精通-v2.0.0
如果无法正常显示,请先停止浏览器的去广告插件。
相关话题:
#Claude Code
1. 2026年4月 · 第2版
Claude Code
从入门到精通
面向工程师与产品经理的AI编程完全指南
The Complete Guide to Claude Code — From Zero to Shipping Products
适用版本:Claude Code v2.1.88+
模型:Opus 4.6 / Sonnet 4.6 / Haiku 4.5
新增:Computer Use · Voice Mode · 架构深度解析
页数:~75页 · 10章 + 附录
花叔
公众号「花叔」· B站「AI进化论-花生」
知识星球「AI编程:从入门到精通」专属内容
本手册基于Anthropic官方文档、Boris Cherny(Claude Code创建者)公开分享、DeepLearning.AI官方课程及Claude Code v2.1.88源
码分析编写。所有操作细节以2026年3-4月最新资料为准。AI工具迭代极快,请结合官方文档验证。
本手册持续更新,获取最新版本请访问:飞书文档
2. 目录
CONTENTS
Part 1: 起步
§01为什么是Claude Code
§0210分钟完成安装
§03你的第一个项目
Part 2: 核心能力
§04核心工作流
§05CLAUDE.md:给AI一张地图
§06进阶对话技巧
Part 3: 进阶实战
§07扩展能力:Skills、Hooks与MCP
§08多Agent协作
§09从零构建一个完整产品
§10心智模型与持续进化
附录
附录A 51万行代码告诉我们的事
3. §01
为什么是Claude Code
Why Claude Code
AI编程工具在三年里变了三次。搞清楚这个演变路径,你就能理解Claude Code到底在做一件什么不一
样的事。
三年变了三次
2022年,GitHub Copilot出来了。你写上半句,它帮你猜下半句。像一个坐在旁边的实习生,打字确实快了,
但本质没变:你还是那个写代码的人。
2023到2024年,Cursor火了。你可以用自然语言让编辑器帮你改函数、重构模块,不用精确描述「怎么写」,
说「我想要什么效果」就行。后来Cursor也加了Agent模式,能跨文件操作、自动跑命令。但它始终长在IDE
里,是编辑器的延伸。
2025年,Claude Code出来了。它不住在任何编辑器里,直接在终端运行。你描述一个需求,它自己规划步
骤、读代码、写代码、跑测试、操作git,整个循环自动完成。你的角色从「写代码的人」变成了「给指令的
人」。
Copilot 补全
→ Cursor 对话 → Claude Code 终端Agent
三步走下来,变的不是技术有多先进,而是你和AI之间的关系。Copilot是你的输入法,Cursor是你的结对伙
伴,Claude Code是你的独立工程师团队。
它跟Cursor到底有什么不一样
这是被问得最多的问题:「Cursor也有Agent模式了,不都是AI帮我写代码吗?」
确实,2024年之后的Cursor已经很强了,能跨文件操作、理解整个项目、自动执行命令。两者的差异不在「能
不能做」,而在做到什么程度。
4. 维度IDE Agent(Cursor等)终端Agent(Claude Code)
运行环境编辑器内嵌,依赖IDE框架终端原生,直接操作操作系统
自主程度通常需要你在旁边确认可以完全无人值守运行
系统集成通过插件桥接git/CLI直接操作git、shell、MCP
记忆系统隐式的项目索引显式的CLAUDE.md记忆文件
并行能力主要单实例工作原生支持多实例并行
重点看最后两行。CLAUDE.md让你把项目知识、编码规范、架构决策写成文件,Claude Code每次启动都会
读,相当于给AI一个持久的项目记忆。多实例并行意味着你可以同时让几个Claude Code各自处理不同模块,像
一个小团队。
打个比方:Cursor像坐在你IDE里的结对伙伴,你们看着同一个屏幕协作;Claude Code更像一个独立干活的工
程师,你告诉他需求,他自己拉代码、写代码、跑测试、提交,你去喝杯咖啡回来看结果就好。
Boris Cherny,Claude Code的创建者,说自己用Opus 4.5之后就再也没有手写过一行代码。47天里有46天都
在用,最长单次session跑了1天18小时50分钟。这不是营销话术,是一个正在大规模发生的现实。
花叔的经验:我本人从未手写过代码,所有产品(包括AppStore付费榜Top 1的小猫补光灯)都是用AI完成的。
Claude Code让「不会写代码但能构建产品」这件事,从少数人的实验变成了大多数人的可能。
它其实不是在帮你写代码
这句话听起来有点奇怪,但确实是我用了半年之后最大的感受:Claude Code不是在帮你写代码,它在帮你构
建产品。
传统的AI编程工具解决的是代码生产效率:怎么更快地写出这个函数、这个组件。Claude Code解决的是产品构
建效率:怎么更快地从一个想法变成一个能跑的东西。
两种场景对比一下:
推荐
用Claude Code:
「帮我做一个支持Markdown的博客系统,用Next.js,
部署到Vercel,支持暗色模式和RSS。」
它会:分析需求 → 选技术方案 → 创建项目 → 逐步实
现 → 跑测试 → 修bug → 完成。全程你只需要确认和调
整方向。
不推荐
用IDE内的Agent:
体验也不差,但你大概率需要:盯着IDE看它改了什么
→ 出了问题手动切回来 → 它不太敢自己跑命令需要你
确认 → 你始终是坐在旁边的人。全程你是监工。
5. 前者你在做产品决策,后者你在做过程监督。随着AI能力持续提升,「盯着AI干活」会越来越不值钱,产品决策
能力会越来越值钱。
Claude Code增长快,本质上是命中了一个真实需求:大量聪明人想做出东西来,缺的不是想法,是把想法变
成产品的能力。
这本书写给谁
工程师,想提高10倍效率。你已经会写代码,但每天大量时间花在样板代码、调试、写测试、处理CI/CD上。
Claude Code能接管这些,让你把精力放在架构决策和产品思考上。
产品经理,想自己做MVP。你有产品直觉和用户洞察,但受限于开发资源。Claude Code让你一个周末做出一
个能跑的原型,不用等排期,不用写PRD等开发理解。
创业者,想实现一人公司。你想验证商业想法,但不想在技术上花太多钱和时间。Claude Code让一个人拥有
一个小团队的开发能力,网站、App、后端API,都可以一个人搞定。
核心建议
不管你属于哪一类,这本书假设你聪明,但可能从没用过AI编程工具。我们从零开始,但不会在基础概念上磨
叽太久。
增长有多快
说几个数字。
Claude Code在2025年2月公开发布(研究预览版),5月正式GA。GA后仅6个月,达到10亿美元年化收入。这
个速度在SaaS历史上极其罕见。
企业端采用也很快。Netflix、Spotify、DoorDash、Notion、Vercel都在内部大规模使用。Anthropic的数据显
示,使用Claude Code的团队平均提效2-5倍。
当前Claude Code背后的模型有三个:
Opus 4.6 — 推理能力最强,处理复杂任务和架构决策
Sonnet 4.6 — 性价比最优,日常编码的主力
Haiku 4.5 — 响应最快,适合简单查询和补全
这些数字背后的信号其实就一个:Agent式编程不再是极客的玩具,正在变成软件开发的标准方式。
全书路线图
全书按一条主线走:一个聪明人怎么在一周内从零用AI构建产品。
6. 阶段章节你会学到
Day 1:上手§01-§03理解AI编程 → 安装配置 → 做出第一个项目
Day 2-3:核心§04-§06掌握工作流 → 配置记忆系统 → 学会有效沟通
Day 4-5:进阶§07-§08扩展能力(Skills/MCP) → 多Agent协作
Day 6-7:实战§09-§10独立构建完整产品 → 建立长期心智模型
每章都有实操部分,可以跟着做。不用一口气读完,读一章、做一章、再回来读下一章,完全没问题。
下一章,我们花10分钟把Claude Code装好。
7. §02
10分钟完成安装
Get Started in 10 Minutes
安装过程比你想象的简单。这一章覆盖安装、使用环境选择、付费方案,以及你和Claude Code的第
一次对话。
三种安装方式
macOS、Linux、Windows都支持。选哪个取决于你的系统:
安装方式命令适用平台
推荐度
Native Installcurl -fsSL https://claude.ai/install.sh | bashmacOS / Linux ⭐ 推荐
Homebrewbrew install --cask claude-codemacOS适合brew用户
WinGetwinget install Anthropic.ClaudeCodeWindowsWindows首选
核心建议
不确定选哪个?用Native Install。一行命令搞定,不需要额外依赖。
装一下试试
macOS / Linux
打开终端(macOS用Terminal或iTerm2,Linux用你习惯的终端),运行:
curl -fsSL https://claude.ai/install.sh | bash
脚本会自动检测系统、下载二进制文件、把 claude 命令加到你的PATH。
装完输入 claude 就能启动。Homebrew用户也可以用 brew install --cask claude-code ,效果一样。
Windows
Windows的安装多一个前置步骤:你需要先装Git for Windows。
1 安装Git for Windows
从 git-scm.com 下载安装,或者用WinGet: winget install Git.Git 。安装时默认选项即可,它会带
一个Git Bash终端。
8. 安装Claude Code
打开PowerShell或Git Bash,运行:
2
winget install Anthropic.ClaudeCode
验证安装
重新打开终端,输入 claude --version ,能看到版本号就说明安装成功。
3
注意
Windows用户请注意:Claude Code需要Git Bash提供的Unix工具链。如果你直接在CMD中运行可能会遇到问
题,建议使用PowerShell或Git Bash。
五种用法,选哪个
装完之后,其实有五种方式使用Claude Code。体验各有不同:
环境特点适合谁
终端CLI最原生的体验,功能最完整,直接在终端输入 claude日常开发的主力方式
VS Code扩展在VS Code侧边栏运行,可以直接看到文件变更习惯VS Code的开发者
Desktop App独立桌面应用,不需要打开终端不熟悉终端的用户
Web版浏览器直接访问 claude.ai/code ,无需安装临时使用、体验试用
JetBrains插件在IntelliJ IDEA、WebStorm等JetBrains IDE中使用JetBrains用户
建议:这本书后续所有演示都基于终端CLI。就算你平时用VS Code或JetBrains,也建议先在终端把Claude
Code的完整能力摸熟,之后再切到IDE集成。终端才是它的完全体。
账号和钱的事
Claude Code需要Anthropic账号。首次启动时会自动弹浏览器让你登录或注册。
付费三档:
9. 方案月费用量适合谁
Pro$20/月基础用量,日常开发够用个人开发者、学习者
Max 5x$100/月5倍于Pro的用量重度用户、全职AI编程
Max 20x$200/月20倍于Pro的用量团队用户、商业项目
怎么选?一个简单标准:每天用超过2小时,Pro大概率会撞限额。这时候升Max 5x是值得的。$100/月听起来
不少,但跟它省下来的时间比,挺划算。
核心建议
先从Pro开始就好。用几天你自然知道够不够。很多人的路径是:第一周觉得Pro够了,第二周开始上瘾然后升
Max。
企业用户还可以通过Anthropic API按token计费,适合有自定义集成或合规要求的团队。v2.1.88新增了
claude auth login --console 命令,可以直接用Anthropic Console账号登录(走API计费),不需要再单独
配置API密钥。但对本书读者来说,直接订阅是最简单的开始方式。
说第一句话
装好了,账号也登录了。来试试。
1 打开终端,进入一个项目目录
Claude Code会以你当前所在的目录作为工作目录。建议新建一个测试文件夹:
mkdir ~/my-first-project && cd ~/my-first-project
2
启动Claude Code
claude
首次启动会打开浏览器让你登录Anthropic账号。登录成功后,终端会显示Claude Code的交互界面。
3
发送你的第一条指令
试试这个:
创建一个简单的HTML页面,显示"Hello, Claude Code!",用好看的CSS样式。
你会看到Claude Code开始工作:它会在你的目录里创建一个HTML文件,写入完整的代码。整个过程大
约10-30秒。
10. 4
看看结果
Claude Code创建完文件后,你可以直接在浏览器打开看效果:
open index.html
# macOS
xdg-open index.html # Linux
start index.html # Windows
如果你能看到一个带样式的「Hello, Claude Code!」页面,恭喜,一切正常。
看起来简单,但注意它的意义:一句自然语言,AI完成了「理解需求 → 创建文件 → 编写代码」的完整循环。后
面所有进阶操作都是在这个基础上展开的。
确认一切正常
跑一遍这个清单:
检查项命令/操作预期结果
CLI可用claude --version显示版本号
账号已登录claude启动后不再要求登录直接进入对话界面
能创建文件让Claude Code创建一个测试文件文件出现在当前目录
能读取项目在已有项目目录启动,问「这个项目是做什么的」Claude Code能正确描述项目
能运行命令让它运行 ls 或 git status返回命令输出结果
全部通过?可以开干了。
遇到问题了?
连不上、登录不了
Claude Code需要访问Anthropic的API服务器。国内网络环境下可能连不上,需要配代理:
设置
代理(替换为你的代理地址)
#
HTTP
export HTTPS_PROXY=http://127.0.0.1:7890
export HTTP_PROXY=http://127.0.0.1:7890
建议把这两行加到你的shell配置文件( ~/.zshrc 或 ~/.bashrc )中,这样每次打开终端都会自动生效。
安装时报Permission denied
11. macOS / Linux用户遇到权限错误,不要用 sudo 。这么搞:
确保本地 目录存在且有写权限
#
bin
mkdir -p ~/.local/bin
#
curl -fsSL https://claude.ai/install.sh | bash
重新运行安装脚本
如果问题仍然存在,检查你的PATH中是否包含 ~/.local/bin 。
怎么升级
Claude Code会提醒你有新版本。手动更新就重新跑一遍安装命令:
用户
# Native Install
curl -fsSL https://claude.ai/install.sh | bash
用户
# Homebrew
brew upgrade --cask claude-code
用户
# WinGet
winget upgrade Anthropic.ClaudeCode
保持更新。Claude Code迭代极快,几乎每周都有新功能。新版本不只是修bug,经常带来能力上的明显提升。
建议至少每两周更新一次。
装VS Code扩展
想在VS Code里用Claude Code的话:
1. 打开VS Code的扩展市场(Cmd+Shift+X 或 Ctrl+Shift+X)
2. 搜索「Claude Code」
3. 安装Anthropic官方的扩展
4. 安装后在侧边栏会出现Claude Code的图标,点击即可开始对话
VS Code扩展底层调用的是同一个CLI,所以你不需要单独配置账号,登录状态是共享的。
装Desktop App
不习惯终端的用户可以用桌面应用。去 claude.ai/download 下载安装包,双击装好就行。本质上是终端CLI的
图形界面包装。
注意
不管你选哪种方式,都建议先把CLI装好。CLI是基础,VS Code扩展和Desktop App都依赖它。CLI能跑,其他
环境基本不会有问题。
12. 装完了,账号登了,第一次对话也跑通了。下一章,正式开始做一个真实项目。
13. §03
你的第一个项目
Your First Project — Learning by Doing
理论讲完了,直接上手。这一章从零做一个真实的CLI工具。做完之后,你就真正理解对话式编程是怎
么回事了。
做个什么
一个每日AI新闻聚合器,CLI工具。功能很简单:
从几个RSS源(TechCrunch AI、The Verge AI、Hacker News等)抓取最新文章
用AI总结每篇文章的要点
输出一份格式整齐的Markdown日报
为什么选这个?够小,一个下午能做完。又够完整,涉及网络请求、数据处理、AI调用、文件输出。一次项目
就能把Claude Code的各种能力体验个遍。
先转换一下心态:从现在开始,你是产品经理,Claude是你的工程师。你的活是说清楚要什么,不是写代码。
哪怕你是资深程序员,也请先按这个方式来一遍。
第一步:告诉Claude你要什么 Describe What You Want
打开终端,进一个空文件夹,启动Claude Code:
mkdir ai-news-digest && cd ai-news-digest
claude
然后,用自然语言告诉Claude你想要什么:
14. #
你在Claude Code中输入的prompt:
帮我做一个AI新闻聚合CLI工具。需求如下:
1.
从以下 源抓取最近 小时的文章:
RSS
24
- TechCrunch AI (https://techcrunch.com/category/artificial-intelligence/feed/)
- The Verge AI (https://www.theverge.com/rss/ai-artificial-intelligence/index.xml)
- Hacker News 30 (https://hnrss.org/newest?q=AI&count=30)
前 条
2.对每篇文章提取标题、链接、发布时间、来源
3.按时间倒序排列,输出一份Markdown格式的日报到 output/ 目录
4.用TypeScript写,用tsx直接运行
先别急着写代码,给我一个实现方案。
注意最后那句「先别急着写代码,给我一个实现方案」。这不是客气,是一个重要技巧:让Claude先想清楚再动
手。
核心建议
需求描述的质量直接决定输出质量。几个原则:说清楚最终产物长什么样(Markdown日报)、指定技术选型
(TypeScript + tsx)、给具体数据源URL而不是说「几个RSS源」。越具体越好。
第二步:看它怎么想的 Review the Plan
Claude收到需求后,不会直接开写,会先给你一个方案。大概长这样:
15. 我来帮你做这个AI新闻聚合工具。先说一下方案:
项目结构:
ai-news-digest/
src/
index.ts
fetcher.ts
formatter.ts
types.ts
output/
package.json
tsconfig.json
├──
│ ├──
│ ├──
│ ├──
│ └──
├──
├──
└──
入口文件
抓取逻辑
格式化
类型定义
日报输出目录
#
# RSS
# Markdown
#
#
技术方案:
- RSS解析用 rss-parser 库
- HTTP请求用 node内置的fetch
- 日期处理用 date-fns
- 用tsx直接运行TypeScript,不需要编译步骤
实现流程:
1. 并行抓取三个RSS源
2. 统一格式、过滤24小时内文章
3. 按时间排序
4. 生成Markdown格式日报
5. 写入 output/YYYY-MM-DD.md
需要我开始实现吗?
这时候你就是在看工程方案的产品经理。觉得行就说OK,想调整就直接说。比如:
你的反馈:
方案没问题。补充两点:
1. 日报里每篇文章除了标题和链接,加一句话摘要(从文章description里截取前100字)
2. 日报开头加一个统计:共收录X篇,来自Y个源
#
这个来回就是对话式编程的核心:Claude出方案,你补充细节,Claude修正。不用画流程图、不用写技术文
档,直接用人话说。
第三步:看它干活 Watch Claude Work
确认方案后,Claude开始执行。终端里会看到一系列操作:
16. 1
初始化项目
Claude会运行 npm init -y ,然后安装依赖包。你会看到它请求运行命令的权限提示:
Claude wants to run: npm init -y
Allow? (y/n)
按 y 允许。后面它还会请求安装 rss-parser 、 date-fns 、 tsx 等包。
2
3
创建源代码文件
Claude会逐个创建TypeScript文件。你会看到它写入代码的过程,每个文件都会展示差异(diff)。不需
要逐行看,但可以快速扫一眼文件结构是否合理。
运行测试
代码写完后,Claude通常会自己试着运行一次看看有没有报错。如果报错了,它会自己读错误信息、找
问题、修代码、再运行,形成一个自动修复循环。
整个过程大约2-5分钟。你干嘛?看着就行。就像把任务交给新同事,前几次你会盯着看他怎么做事。等熟悉了
他的风格,以后放心让他自己干就好。
注意
执行过程中Claude可能多次请求权限。初期建议每次都看一眼它要跑什么命令。熟悉后可以用 /permissions
预授权常见命令(§04会细讲),或者直接开Auto模式。
第四步:看看结果对不对 Verify the Output
Claude干完了,跑一下看看:
npx tsx src/index.ts
如果一切顺利,你会在 output/ 目录下看到一个Markdown文件,内容大概是这样的:
17. 新闻日报 — 2026-03-28
# AI
>
共收录 23 篇文章,来自 3 个源
---
## TechCrunch AI
发布新版,上下文窗口扩展至 万
今日发布了版本,最大的变化是上下文窗口从 万扩展至200万tokens...
### OpenAI
GPT-5.4
200
https://techcrunch.com/2026/03/28/openai-gpt-54...
2026-03-28 14:30
> OpenAI
GPT-5.4
100
🔗
📅
推出
### Anthropic
Claude Code Desktop App
https://techcrunch.com/2026/03/28/anthropic-desktop...
2026-03-28 11:00
> Anthropic
Claude Code
macOS Windows...
🔗
📅
宣布
正式推出桌面应用程序,支持
和
---
## The Verge AI
...
打开文件看看格式和内容。大多数情况下,第一次就能跑通。
如果报错了?直接把错误信息丢给Claude:
运行报错时,把错误信息粘贴给Claude:
运行报错了:
#
TypeError: Cannot read properties of undefined (reading 'map')
at formatArticles (src/formatter.ts:15:23)
Claude会读错误信息、定位问题、改代码、再跑。这个报错到修复的循环,一般1-2轮就搞定。
第五步:加功能 Iterate and Improve
能跑了,但你想加点东西。继续用自然语言说就行:
第一个改进:加AI摘要
现在每篇文章的摘要是从description里截取的,比较粗糙。
改成用AI来总结:对每篇文章的标题+description,用Claude API生成一句话总结。
API key从环境变量 ANTHROPIC_API_KEY 读取。
#
Claude会修改代码,加入API调用逻辑。你验证后继续:
18. 第二个改进:加定时运行
加一个cron模式,每天早上8点自动运行一次,用node-cron实现。
加一个命令行参数:
- `npx tsx src/index.ts` 立即运行一次
- `npx tsx src/index.ts --cron` 开启定时模式
#
第三个改进:加去重逻辑
有些文章在多个源里重复出现了。加一个基于URL的去重。
#
每一轮,Claude改代码、跑测试、确认结果。你始终只做两件事:说清楚要什么,验证结果。
到这里,第一个项目完成了。回头看看整个过程:
描述需求
→ 审查方案 → 确认执行 → 验证结果 → 迭代改进
不管项目大小,不管是小工具还是完整产品,底层模式都是这五步。
一个重要的心态转变 The Mental Shift
做完这个项目,你应该有个直觉上的感受:你的价值不在于写代码,而在于定义要做什么、判断做得对不对。
很多工程师第一次用Claude Code时,本能地想看每一行代码、理解每个实现细节。正常反应,但它会让你变
慢。
更高效的方式是把它当团队成员来管理:
传统编程Claude Code编程
自己想方案,自己写代码描述需求,Claude出方案和代码
一行一行调试把错误信息给Claude,它自己调
查文档、查StackOverflow直接问Claude「怎么实现XXX」
代码review靠人工让Claude解释它写的代码
重构要先理解全部代码告诉Claude「把这块重构成XXX模式」
不是说完全不管代码。而是你的注意力应该在更高层面:需求准不准确?方案合不合理?结果符不符合预期?
这些才是你该花时间的地方。
19. 新手常见困惑 Common Questions from Beginners
「代码看不懂怎么办?」
直接问它。「解释一下 fetcher.ts 的实现逻辑」,Claude会用人话讲清楚。还可以追问:「为什么用
Promise.allSettled 而不是 Promise.all?」它会解释背后的技术选择。
你不需要能写出这段代码,但需要理解它在做什么。就像你不用会修发动机,但得知道车在正常运转。
「写错了怎么办?」
直接说哪里不对。你不需要知道怎么改,描述现象就够了:
推荐
「运行后只输出了TechCrunch的文章,另外两个源的
文章没有。检查一下抓取逻辑。」
不推荐
「你的代码第23行有bug。」(除非你确实知道问题在
哪)
描述现象比定位代码行更有效。Claude可能发现问题根源不在你以为的地方。
「该管多少?」
四个字:信任但验证。让Claude去做,但每一步检查结果。方案阶段仔细看,确保方向对。编码阶段扫一眼文
件结构就行。运行阶段看输出符不符合预期。改进阶段多测试边界情况:空数据、网络超时、格式异常。
这个分寸感做几个项目自然就有了。
「跑偏了怎么办?」
偏得不远,直接纠正:「停,不要用XXX库,换YYY。」偏得太远,按 Esc 停止,重新描述需求。按两次 Esc 会
打开Rewind菜单,可以回滚对话、回滚代码改动,或者两者都回滚。
一个经验:纠正两次还不行,就果断停下来重来。在错误基础上打补丁只会越补越乱。
这一章的核心:描述需求、审查方案、确认执行、验证结果、迭代改进。你管要什么和好不好,Claude管怎么
实现。这个分工形成默契之后,生产力会有质的变化。
20. §04
核心工作流
Core Workflows — The Patterns That Matter
跑通第一个项目之后,你可能觉得Claude Code也就这样——写代码、确认权限、看结果。但日常用
下来,真正拉开效率差距的是几个核心工作模式。这一章把它们拆开聊。
Plan模式:先想清楚再动手 Plan Mode
Boris(Claude Code的创建者)说过一句话:「一个好的计划真的很重要。」他自己大多数会话都从Plan模式开
始。
Plan模式的作用很直接:让Claude只规划、不执行。它会告诉你它打算怎么做,但不会动你的代码、不会装
包、不会运行命令。你们来回讨论方案,确认了再放手让它去做。
如何进入Plan模式
在Claude Code的输入框中,按两次 Shift+Tab 。你会看到界面切换到Plan模式。此时Claude的行为会改变:
它可以读取文件来理解代码,但不会修改任何文件
它会给出详细的实现方案,包括要改哪些文件、怎么改
你可以反复讨论、修改方案
Plan模式的黄金工作流
Boris推荐的完整流程是这样的:
1 Plan模式下描述需求,来回讨论
用 Shift+Tab × 2 进入Plan模式,描述你的需求。Claude给出方案后,你可以说「第三步换个方式」
「这里的库用XXX替换」,反复调整。
2
3
用编辑器写一份详细的执行指令
方案大致满意后,按 Ctrl+G ,会在你的默认编辑器(由 $EDITOR 环境变量决定)中打开输入框。你可
以在编辑器里写一份完整的执行指令,把讨论中确认的方案细节、约束条件都写进去,保存后内容回到
Claude Code的输入框,作为下一步的prompt发出。
切换到执行模式,开启Auto-accept
计划确认后,按 Shift+Tab 切回正常模式。因为计划已经讨论充分,你可以放心地让Claude一次性执行
完成,不需要逐步确认。
21. 这个流程的精髓在于:把纠结放在Plan阶段解决完,执行阶段一气呵成。边做边改、反复返工是最浪费tokens
的用法。
什么时候该用Plan模式
用Plan模式跳过Plan,直接做
你不确定实现方案改一行代码、修个typo
需要改动多个文件加一行console.log调试
你对这块代码不熟悉你很清楚要改什么
重构或架构级别的变更跑个测试、装个包
第一次接触一个新项目重复性的日常操作
核心建议
一条实用判断标准:如果你需要跟同事解释才能让他做的任务,就值得用Plan模式。如果你能用一句话说清的
任务,直接做就行。
Auto模式:更安全的自动驾驶 Auto Mode
用了一阵Claude Code之后,你大概已经体会到那种「烦躁感」了。每次写文件要确认、运行命令要确认、装
个依赖也要确认。按到第50次 y 的时候,你根本不看它要执行什么了。
Anthropic内部的数据证实了这一点:93%的权限请求被用户直接批准了。审批疲劳让安全机制形同虚设。
Auto模式就是为了解决这个问题。核心思路:用一个AI分类器替你做权限判断。安全操作自动放行,危险操作
才拦截。
Auto模式的工作原理
Auto模式有两层防御:
输入层:一个Prompt Injection探测器会扫描Claude读取的所有内容(文件、网页、命令输出)。如果内容看起
来像在试图劫持Claude的行为(比如某个文件里写着「忽略之前的指令」),探测器会在内容传给Claude之前附
加一条警告。
输出层:一个Transcript分类器会在每个操作执行前评估它的风险。分类器分两个阶段运行:
第一阶段:快速判断(一个token的 yes/no),倾向于谨慎,有8.5%的误报率
第二阶段:只对第一阶段标记的操作做深度推理,把误报率降到0.4%
大部分安全操作在第一阶段就直接通过了,只有可疑操作才会触发第二阶段的深度分析。
22. Auto模式会拦截什么
Anthropic从内部事件日志中提炼出的真实案例:
范围升级 — 你说「清理旧分支」,Claude把远程分支也删了。Auto模式会拦截,因为「清理」这个词太模
糊,不构成删远程分支的授权
凭证探索 — Claude遇到认证错误,开始自行在环境变量中搜索其他API token。会被拦截
绕过安全检查 — 部署命令预检失败,Claude用 --skip-verify 重试。会被拦截
数据外泄 — Claude想分享代码,自行创建了一个公开的GitHub Gist。会被拦截
如何启用Auto模式
启动时指定
#
claude --permission-mode auto
或者在运行中用 Shift+Tab 循环切换模式
默认 → Auto-accept edits → Plan → Auto → 默认
模式目前是Team plan的Research Preview功能
#
#
# Auto
注意
Auto模式不是万能的。Anthropic公开的数据显示,对于「过度主动行为」,分类器仍有17%的漏检率。操作生
产数据库、管理云基础设施这类事情,还是手动确认比较踏实。Auto模式最适合日常开发:写代码、跑测试、
Git操作。
Auto模式 vs --dangerously-skip-permissions
你可能在社区里看到有人推荐用 --dangerously-skip-permissions 来跳过所有权限提示。两者的区别很关
键:
Auto模式--dangerously-skip-permissions
安全性有AI分类器评估每个操作完全无保护
危险操作会被拦截,Claude被引导换一种方式直接执行,不会有任何提示
Prompt Injection防护有输入层探测器无
适用场景日常开发完全隔离的沙箱环境、CI/CD
Boris本人的做法是两者都不用。他用 /permissions 预授权安全命令(下一节会讲)。但对于大多数人来说,
Auto模式是一个很好的平衡点。
23. 权限管理:你来定规矩 Permission Management
Auto模式之外,Claude Code还有更精细的权限控制。
/permissions:预授权安全命令
输入 /permissions 打开权限管理界面。你可以预先允许Claude执行某些操作,这样它就不会每次都问你了。
支持通配符匹配:
允许运行所有 脚本
#
npm
Bash(npm run *)
允许编辑
目录下的所有文件
#
docs
Edit(/docs/**)
允许运行测试
#
Bash(npx vitest *)
Bash(npx jest *)
允许 操作
#
git
Bash(git add *)
Bash(git commit *)
Bash(git push)
这些规则可以保存到 .claude/settings.json 并提交到Git,让整个团队共享同一套权限配置。
核心建议
Boris的做法:不用Auto模式也不跳过权限,而是用 /permissions 仔细配置一套白名单。白名单会check进
git,和团队共享。这是最精细也最安全的方案,只是初始配置需要花点时间。
三层权限选择
总结一下Claude Code的权限体系,从最省心到最精细:
方式省心程度安全程度适合谁
Auto模式高中(AI分类器保护)大多数日常开发者
/permissions 白名单中高(精确控制每条命令)团队使用、需要精细控制
逐个确认(默认)低最高高风险操作、初学阶段
刚开始用的时候,建议先用默认的逐个确认。等你跑了几个项目、知道Claude通常会执行哪些命令之后,再切
换到Auto模式或配置白名单。
24. Git操作:Claude天然就懂 Git Operations
Claude Code对Git的理解不只是帮你跑 git 命令。它真的知道你项目当前的版本控制状态,知道你改了哪些文
件、在哪个分支上。
一句话commit和PR
最常用的操作:
让Claude自己看看改了什么,写一个commit message
提交当前的改动,写一个有意义的commit message
#
或者更具体一点
这些变更,描述清楚我们添加了RSS抓取功能
#
commit
直接创建PR
创建一个PR,标题和描述写清楚这个功能的作用
#
Claude会分析你的代码变更,生成一个描述性的commit message,然后执行 git add + git commit 。创建
PR时它还会自动生成PR描述,包括改了什么、为什么改。
Git Worktrees:并行工作利器
这是Boris的第一推荐技巧。Git worktree允许你在同一个仓库中同时checkout多个分支,每个分支有自己的工
作目录。
创建一个
,在新目录中开始工作
#
worktree
claude --worktree
标志会让Claude Code自动创建一个新的git worktree,在一个隔离的目录中工作。好处是:
不影响你当前分支的代码
可以同时开多个worktree,每个处理不同的任务
每个worktree有独立的工作目录,Claude不会互相干扰
这在多任务并行时特别有用。比如你在修一个bug的同时,想让Claude在另一个分支做一个新功能。用
worktree,两件事互不干扰。
--worktree
Boris的并行工作方式:他在终端里同时运行5个Claude Code实例,每个在不同的worktree中工作。加上
claude.ai/code网页端的5-10个会话,他一个人就能同时推进十几个任务。这就是Agent式工作的威力:你不需
要自己做所有事,你管理一群Agent帮你做事。
25. Computer Use:AI长了眼睛和手 Computer Use
前面讲的所有工作流,Claude都是在文本世界里操作的:读代码、写代码、跑命令行。文字处理这块它确实
强,但你桌面上那个Figma窗口、那个Photoshop、那个只有GUI没有API的老旧管理后台,它碰不到。
现在可以了。Claude Code的Computer Use功能让Claude直接看到你的屏幕截图,然后操控鼠标和键盘。不是
模拟,不是调API,是真的在看你的屏幕、移动你的光标、点击你的按钮。
怎么用
零配置。Pro和Max订阅用户自动可用,你不需要开任何开关。Claude在工作过程中如果判断需要操作GUI,它
会自己截一张屏幕截图来「看」当前画面,然后决定下一步该点哪里、该输入什么。
你也可以主动让它看屏幕:
让Claude看看当前屏幕上的东西
看一下我屏幕上的这个页面,告诉我布局有什么问题
#
让它操作一个GUI应用
打开系统偏好设置,把暗色模式关掉
#
测试你正在开发的Web应用
在浏览器里打开 localhost:3000,走一遍注册流程,看看有没有bug
#
实际场景
我自己用下来,Computer Use最顺手的几个场景:
场景为什么需要Computer Use
测试Web应用的UIClaude不只是跑测试脚本,它能像用户一样点击页面、填表单、看到渲染结果,发现视觉
上的问题
操作没有API的桌面软
件老旧的管理后台、只有GUI的工具,以前Claude完全帮不上忙,现在它可以直接操作
自动化重复的GUI操作批量处理文件、在多个窗口之间来回复制数据,这种机械活让Claude代劳
调试Chrome扩展扩展的popup、content script效果只能在浏览器里看到,Claude可以直接截图查看并定位
问题
这意味着什么
Computer Use看着只是一个新功能,但往深了想,它代表AI编程工具的一个方向性转变。
过去一年,AI编程的所有能力都建立在文本操作之上。读文件、写文件、执行命令、分析日志。整个交互界面
就是一个终端。换个说法:AI只能操作那些可以被文本描述的东西。
26. Computer Use打破了这个边界。AI获得了和人类一样的GUI操作能力,它能看到屏幕上的一切,并且对它做出
反应。
为什么这件事重要?因为它直接扩大了「谁能用AI编程工具」这个圈。以前你至少得理解命令行,知道什么是
terminal,才能跟Claude Code协作。现在一个PM可以对Claude说「帮我在Figma里把这个按钮改成蓝色」,
一个运营可以说「帮我在后台把这批用户状态改成VIP」。不需要理解任何技术概念。
长远来看,AI的操作边界从「能写代码的地方」扩展到「屏幕上看得到的一切」。这是一个质变。
当前的限制
先别太激动。现阶段Computer Use还有明显短板:
慢。每一步操作都需要截图→分析→决定→执行,一个人类0.5秒完成的点击,Claude可能需要几秒钟
精细操作不靠谱。拖拽一个滑块到精确位置、在一个密密麻麻的表格里选中某个特定单元格,这类操作它经
常偏
不适合需要快速反应的场景。动画、实时交互、游戏测试,Claude的反应速度跟不上
核心建议
Computer Use现阶段最好的定位是:把它当成一个耐心但手速慢的测试员。给它那些「按照固定流程重复操
作」的任务,它做得很好。需要灵活判断和快速反应的,还是自己来。
Voice Mode:开口说话就能编程 Voice Mode
按住空格说话,松开发送。就这么简单。
在Claude Code里输入 /voice ,就进入了语音模式。支持20种语言,中文当然包括在内。你按住空格键说出
你的需求,松手后Claude会把语音转成文字,然后像正常输入一样处理。
什么时候用语音比打字好
语音不是用来替代键盘的,它有自己最舒服的场景:
手不方便的时候。走路想到一个bug的修复思路、做饭时突然想起一个需求。掏出手机(如果你用SSH连了
服务器的话)或者对着电脑说一嘴,比找键盘快
脑暴的时候。想法哗哗地冒,打字速度跟不上大脑。语音可以一口气把一段混乱的思路倒给Claude,让它帮
你理成结构化的需求
描述空间和视觉概念的时候。「我想要一个左边是侧边栏、右边分上下两栏、上面是图表下面是表格」,这种
话说出来比画ASCII图快多了
交互方式的变化比功能更新重要
我想多聊聊这个。
Voice Mode的功能本身挺简单的,就是语音转文字。但交互方式的变化,影响力往往比功能更新大得多。
27. 键盘→鼠标→触屏→语音。回头看,每次交互方式变了,用工具的人就多了一大圈。鼠标让不会打字的人能用
电脑,触屏让老人和小孩能用手机,语音呢?
现在把Voice Mode和Computer Use放在一起看:用语音描述你想要什么,Claude用Computer Use操作屏幕
帮你实现。Voice说需求,Computer Use执行操作。人可以完全脱离键盘和代码,纯靠说话让AI帮你构建东
西。
我们离「对着电脑说话就能做出一个产品」这件事,已经比大多数人想象的更近了。
当前的限制
语音模式目前还有几个不够顺滑的地方:
需要相对安静的环境,嘈杂背景下识别率会下降
长指令还是打字更精确。你说一段200字的详细技术需求,中间可能出现误识别,还不如打字靠谱
目前最适合的是启动任务和快速交互:「帮我跑一下测试」「把这个函数重命名成XXX」「看看这个文件有什么
问题」
核心建议
一个实用的组合:语音快速启动任务(「帮我做个XXX」),然后切回键盘输入精确的细节和约束条件。两种交互
方式混着用,比纯用一种效率高。
会话管理:别让上下文变成垃圾场 Session Management
Claude Code有上下文限制。对话越长,Claude对当前任务的注意力越分散。用好Claude Code,会话管理这
件事比你想的重要得多。
核心命令速查
操作命令/快捷键什么时候用
清空当前会话/clear切换到完全不相关的任务时
压缩上下文/compact会话太长、Claude开始变慢或遗忘
停止当前操作EscClaude在做你不想要的事
Rewind(回滚)Esc恢复上次会话claude --continue终端不小心关了,想接着之前的会话
恢复指定会话claude --resume想回到某个历史会话继续工作
侧链提问/btw想问个不相关的问题,不污染当前上下文
× 2 或 /rewind
Claude改坏了代码,打开回滚菜单选择恢复对话/代码/两者
28. /clear 的使用时机
这个命令比你想象的更重要。 /clear 会清空当前会话的所有对话历史,回到一个干净的起点。Claude Code启
动时读取的CLAUDE.md和项目文件不受影响。
什么时候该用?当你要开始一个和之前对话完全不同的任务时。
比如你刚才在修一个API的bug,现在想让Claude帮你写一个新的前端组件。如果不clear,Claude的上下文里
还残留着大量关于那个API bug的信息,会干扰它对新任务的理解。
推荐
修完API bug → /clear → 开始前端组件任务
不推荐
修完API bug → 直接说「接下来帮我做个前端组件」→
Claude可能把API的上下文混进来
/compact 和 /btw 的妙用
/compact 不是清空对话,而是让Claude把当前对话压缩成一个摘要。适合在一个长会话中途使用:你和
Claude已经讨论了很多,上下文太长影响了性能,但你不想丢掉讨论的结论。 /compact 会保留关键信息,释
放上下文空间。
/btw 是一个容易被忽略但非常实用的命令。它开启一个「侧链」对话:你可以问Claude一个和当前任务不相
关的问题,问完之后侧链结束,主对话的上下文不受影响。
比如你正在让Claude重构一段代码,突然想问「TypeScript的 Record 类型怎么用来着?」用 /btw 问,不会
污染重构任务的上下文。
六个坑,你大概率会踩 Common Anti-Patterns
聊聊使用Claude Code时最常见的错误。这些坑我自己踩过,官方Best Practices也反复提,社区里更是老生常
谈。
坑1:一个会话什么都塞
修bug、加功能、重构代码、写文档,全在一个会话里做。上下文被塞满,Claude对每个任务的理解都很浅。
一个会话聚焦一个任务。做完就 /clear ,或者开新终端窗口。
坑2:反复纠正,越改越偏
Claude做错了一步,你纠正;改了又错另一个地方,再纠正;第三次还是不对。你花在纠正上的时间比自己动
手还多。
纠正两次不行,果断 /clear 重来。重新描述需求,这次说得更具体。在一个已经跑偏的对话上修补,远不如
推倒重来。
坑3:看着像对的就接受了
29. Claude写了一大堆代码,输出看着挺合理,你就接受了,没实际跑一下。过几天发现边界情况的bug。
每一轮改动都实际运行一次。「代码看起来对」和「代码是对的」差距可能很大。Boris说的第13条技巧就是:
给Claude一种验证工作的方式。你自己也一样。
坑4:过度微操
Claude每写一个文件你都要看、每改一行代码你都要评论。结果你和Claude都很慢,而且你其实在用Claude
Code做传统编程。
关注结果。让Claude把一个完整任务做完,看最终输出是否符合预期。中间过程除非明显跑偏,不用管。
坑5:需求模糊,然后怪Claude不懂你
「帮我优化一下这个代码」「让这个页面好看点」。Claude只能猜,而它猜的方向很可能不是你想要的。
给具体的、可验证的需求:「把这个API的响应时间从2秒优化到500ms以内,瓶颈在数据库查询,考虑加缓存或
优化SQL」。越具体,输出越接近预期。
坑6:不写CLAUDE.md
项目根目录没有CLAUDE.md,或者有但从不更新。每次新会话都要重新解释项目背景、代码规范、技术选型。
这个太重要了,整整一章来讲。翻到§05。
这一章的核心:Plan模式想清楚再动手,Auto模式减少审批疲劳,/permissions精细控权限,Git集成管版本,
会话管理保持上下文干净。这五个工作流覆盖90%的日常场景。剩下10%的高级用法后面几章展开。
30. §05
CLAUDE.md:给AI一张地图
CLAUDE.md — The Map You Draw for Your AI
Claude Code每次对话开始时会自动读取CLAUDE.md。这个文件不是说明书,它更像一份契约。你和
AI之间关于怎么干活的约定,就写在这一个文件里。
为什么它是最重要的文件
用Claude Code写代码,你会接触到很多配置文件。 package.json 、 tsconfig.json 、 .eslintrc ...但有一
个文件的重要性超过它们加起来。
CLAUDE.md。
原因很简单:Claude Code每次启动新会话,第一件事就是读这个文件。项目结构、代码风格、测试命令、常
见陷阱,Claude都从这里了解。没有它,Claude就像空降到陌生代码库的新同事,什么都得从头摸索。有了
它,它一进来就知道规矩。
Shrivu Shankar(Abnormal AI的AI战略VP,团队每月消耗数十亿tokens做代码生成)说得很直白:
在有效使用Claude Code时,代码库中最重要的文件就是根目录的CLAUDE.md。这个文件是agent的「宪法」,
是它了解你的特定代码库如何工作的主要真相来源。
他用了「宪法」这个词。宪法的特点是短、原则性强、不处理细节。这个类比很精确。
从护栏开始,别写手册 Guardrails, Not Manuals
新手写CLAUDE.md最常犯的错:试图写一本百科全书。把每个函数的用法、每个文件的作用、每个API的参数
都塞进去。写了几千行,Claude光读这个文件就吃掉大量上下文,真正干活的空间反而被挤小了。
Boris(Claude Code的创建者)团队的CLAUDE.md只有大约2500 tokens,大概100行。管理Claude Code这
个产品本身的核心规则文件,就这么短。
Shrivu分享了一个更有意思的做法:
核心建议
你的CLAUDE.md应该从小开始,基于Claude做错的事情来记录。不要试图预先写一本完整手册,而是每次
Claude犯错,就加一条规则。这就是「从护栏开始」的意思。
31. 这个方法好在哪?规则文件永远精准,因为每条都对应一个真实踩过的坑。文件也天然保持精简,因为你只记
录真正出过问题的地方。
Boris在他的使用技巧中还提到一个飞轮效应:
Claude犯错
→ 记录到CLAUDE.md → 下次不再犯 → 错误率持续降低
他在代码审查时甚至会在同事的PR上@.claude,让它自动把某条规则加到CLAUDE.md里。团队共享一个
CLAUDE.md文件,check进git,每周都有人贡献。这个文件是活的,不是写完就放那不管的。
Boris的原话:「Claude非常擅长为自己编写规则。」你告诉它犯了什么错,它自己就能写出精确的规则防止下次
再犯。
CLAUDE.md到底该写什么
这可能是最实用的部分。判断标准就一条:Claude自己能从代码里读出来的,不要写;Claude猜不到的,必须
写。
该写不该写
Claude猜不到的Bash命令(如自定义构建脚本)Claude读代码就能知道的事(如「这是一个React项目」)
与默认不同的代码风格偏好标准语言规范(Claude已经知道)
测试命令和偏好的测试框架详细API文档(给链接,不要全文粘贴)
项目架构决策和背景频繁变化的信息(每次都要改的东西不适合放这里)
开发环境的坑(如特殊的环境变量)文件逐一描述(Claude会自己看文件树)
常见陷阱和修复方式「写整洁代码」「遵循最佳实践」这种废话
Shrivu补充了几个常见反模式:
不要用 @ 引用大文档。在CLAUDE.md里 @ 一个长文件,它会在每次会话开始时被完整嵌入,白白吃掉上下文。
正确做法是提到路径,告诉Claude什么情况下去读。比如:「遇到FooBarError时,参阅
docs/troubleshooting.md 了解故障排除步骤。」
不要只写「永远不要做X」。当Claude觉得必须做X时它会卡住。永远提供替代方案:「不要用 --foo-bar 标志,
改用 --baz 。」
把CLAUDE.md当作简化代码库的强制函数。如果某个CLI命令复杂到需要在CLAUDE.md里写几段话来解释,那
说明这个命令本身需要简化。写一个bash包装器,用清晰的API,然后在CLAUDE.md里只记录那个包装器。
32. 层级结构 Hierarchy
CLAUDE.md不只是一个文件,而是一套层级系统。Claude Code会自动按顺序读取多个位置的CLAUDE.md:
← 全局级:所有项目共用的偏好
← 项目级:检入git,与团队共享
← 子目录级:monorepo中特定模块的规则
← 更深层子目录
~/.claude/CLAUDE.md
./CLAUDE.md
./src/CLAUDE.md
./src/api/CLAUDE.md
1
2
3
全局级 ~/.claude/CLAUDE.md
放你个人的通用偏好。比如:优先用TypeScript、测试框架偏好Jest、commit message用英文。这些规
则在所有项目中生效,不需要每个项目都写一遍。
项目级 ./CLAUDE.md
放项目特有的规则。这个文件应该检入git,团队成员共享。Boris团队就是这么做的。代码风格、架构约
束、测试命令、常见陷阱,全在这里。
子目录级
monorepo场景下特别有用。前端目录放前端的规则,后端目录放后端的规则,互不干扰。Claude进入
某个目录时会自动加载对应的CLAUDE.md。
还有一个 @ 引用语法,可以在CLAUDE.md中导入其他文件:
# CLAUDE.md
@docs/coding-standards.md
@docs/api-conventions.md
但注意前面说的:被 @ 引用的文件会完整嵌入上下文。只引用那些真正每次都需要的短文件。
一个真实的好CLAUDE.md长什么样
下面是一个简洁精炼的项目级CLAUDE.md示例。注意它有多短:
33. # MyApp
架构
##
- Next.js 15 + TypeScript + Tailwind CSS
-
PostgreSQL + Drizzle ORM
-
Better Auth
-
Zustand
Redux
数据库:
认证:
状态管理:
(不要用
)
开发命令
启动开发服务器:
跑测试:
(
类型检查:
:
##
-
pnpm dev
-
pnpm test Jest + React Testing Library
-
pnpm typecheck
- Lint pnpm lint
)
代码风格
组件用函数式,不用class
样式用Tailwind,不要写CSS文件
数据获取用server component,不用useEffect
错误处理用error.tsx边界,不用try-catch包裹组件
##
-
-
-
-
常见陷阱
迁移后必须跑
环境变量改了之后要重启
的
检查在
##
- Drizzle
pnpm db:generate
-
dev server
- better-auth session
middleware
,否则类型不同步
中,不要在页面组件里重复检查
不要做
不要安装新依赖除非我明确同意
不要修改 drizzle.config.ts
不要在client component中直接调数据库
##
-
-
-
整个文件不到300字。但每一行都有价值:要么是Claude猜不到的命令,要么是踩过坑的经验。没有一句废
话。
注意
不要把这个示例直接复制过去。好的CLAUDE.md是从你自己的项目中「长出来」的。空文件开始,Claude犯
一次错就加一条,三个月后那个文件就是你的定制护栏。
Auto Memory:Claude自己记住的东西 Automatic Memory
除了你手写的CLAUDE.md,Claude Code还有一个自动记忆系统。
当你在对话中纠正Claude的行为,比如「以后commit message都用英文」「测试文件放在 __tests__ 目录」,
Claude会自动把这些偏好保存下来。下次对话它就记住了,不需要你再说一遍,也不需要你手动写进
CLAUDE.md。
34. 这些记忆存储在 ~/.claude/projects/<项目>/memory/ 目录下,以MEMORY.md为入口文件,和CLAUDE.md并
行工作。区别是:
手写CLAUDE.mdAuto Memory
适合团队共享的规则适合个人偏好
检入git存在本地
你主动维护Claude自动维护
结构化、有组织零散、按时间累积
两者配合使用效果最好。团队规则写在项目CLAUDE.md里,个人习惯让Auto Memory自动处理。
迭代飞轮:越用越好的系统 The Iterative Flywheel
回到开头说的飞轮。这不只是个比喻,它就是Claude Code用户的真实体验曲线。
Mitchell Hashimoto(HashiCorp联合创始人,Terraform的创造者)描述过一模一样的过程。他给Ghostty搭
建AI工作流时,配置文件里的每一行都对应agent过去犯过的一次错。文件是活的,一直在长。
这个过程是这样的:
1 第一周:空文件
你只写了基本的项目架构和开发命令。Claude犯很多错。
2
3
4
第二周:护栏初现
你把Claude犯过的错一条条记下来。「不要在这个文件里用相对路径」「跑完迁移记得重新生成类型」。错
误率开始下降。
第一个月:飞轮启动
CLAUDE.md有了20-30条规则,都是真实的坑。Claude的输出质量明显提升,你需要纠正的次数越来越
少。
之后:持续迭代
偶尔加新规则,偶尔删掉过时的。文件保持精简但高度定制。你把同样的方法迁移到新项目,启动速度越
来越快。
这就是为什么说CLAUDE.md是最重要的文件。每一条规则背后都是一次真实踩过的坑,每次迭代都让Claude更
懂你的项目。
35. 一句话总结:CLAUDE.md从空文件开始,每次犯错加一条,保持精简(Boris团队只用了约2500 tokens),检
入git与团队共享。用三个月养出来的那个文件,是你最有价值的AI资产。
36. §06
进阶对话技巧
Advanced Prompting & Context Engineering
Claude Code不是搜索引擎,你不需要精心雕琢关键词。但怎么跟它说话,确实会影响输出质量。这
一章聊的都是实战中真正管用的对话策略,不讲理论。
怎么说话Claude才听得懂 Describing What You Want
很多人第一次用Claude Code,会写「帮我做一个用户管理系统」。Claude会做,但做出来的东西大概率不是你
想要的。信息太少,它只能猜。
官方Best Practices总结了三条原则,我觉得确实管用:
1 具体化:指定文件、场景、偏好
不要说「做个登录功能」,要说「在 src/auth/ 目录下新增Google OAuth登录,用Better Auth库,参考
现有的GitHub登录实现方式」。文件路径、技术选型、参考模式,越具体Claude越知道往哪走。
2
3
指向已有模式:「照着这个做」
你项目里已经有一个UserWidget写得很好?直接告诉Claude:「看 src/components/UserWidget.tsx 的
实现方式,照着做一个CalendarWidget」。Claude读代码的能力极强,给它一个范本比写十行描述有
效。
描述症状,不要猜原因
遇到bug别说「token刷新逻辑有问题」(除非你确认了),说「用户在session超时后登录失败,请检查
src/auth/ 下的token刷新流程」。Claude能看到全部代码,让它自己定位原因比你猜更靠谱。
看几个Before/After对比就明白了:
不推荐
帮我加个搜索功能
推荐
在 src/components/Header.tsx 的导航栏
中添加搜索框,用 Fuse.js 做模糊搜索,
搜索范围是 posts 数组,参考现有的
FilterDropdown 组件的样式
37. 不推荐
接口报错了,帮我看看
不推荐
优化一下性能
推荐
在
POST /api/orders
quantity > 100
500
src/api/orders.ts
返回 ,检查
的输入验证和数据库写入逻辑
时
推荐
首页加载需要4秒,主要瓶颈在
Dashboard组件,它一次获取了所有用户
数据。改成分页加载,每页20条
Context Engineering:信息不是越多越好 Context Engineering
后面第十章会详细聊Harness Engineering的三层架构:Prompt、Context、Harness。这一节先聊Context。
Context不只是你打的那句话。CLAUDE.md的内容、Claude读过的文件、你粘贴的截图、对话历史,全部加起
来都是Context。
直觉上你可能觉得:给Claude的信息越多越好吧?
恰恰相反。
Anthropic工程团队发现,上下文太多,模型表现反而变差。它会在海量信息中迷失,做出混乱的决策。Shrivu
建议定期用 /context 命令看看上下文窗口的使用情况。他在monorepo里测过,一个新会话光加载基础配置就
吃掉约20k tokens,剩下180k才是干活的空间。
核心建议
上下文管理的核心原则:不是给所有信息,而是给对的信息。让Claude看到它解决当前问题需要的上下文,而
不是整个项目的百科全书。
你可以通过几种方式主动管理上下文:
@ 引用文件:用 @src/utils/auth.ts 告诉Claude去读某个特定文件
粘贴截图:UI问题直接截图粘贴,比文字描述准确10倍
Pipe数据: cat error.log | claude 直接把日志喂给Claude
给URL:Claude可以读取网页内容,给它API文档的链接比复制粘贴更好
让Claude采访你 Let Claude Interview You
当你要做一个比较大的功能(比如从零搭建一个支付系统),不要一上来就写需求文档。先对Claude说:
38. 我想做一个支付功能,在动手之前,先采访我,
问清楚所有你需要知道的事情。
Claude会开始问你一系列问题:支持哪些支付方式?需要处理退款吗?并发量预估多少?需要支持webhook回
调吗?用什么货币?
这些问题中,至少有一半是你自己没考虑过的。Claude帮你做了需求分析师的工作。
采访结束后,让Claude把答案整理成一份Spec(规格文档)。然后关键来了:开一个全新的会话,把Spec喂给
新的Claude,让它执行。
为什么要开新会话?因为采访过程中积累的对话历史已经很长了,占了大量上下文。新会话从一份干净的Spec
开始,Claude能更专注地执行,不会被中间讨论过程干扰。
采访阶段
→ 生成Spec → 新会话执行
把Claude当高级工程师提问 Claude as Your Senior Engineer
很多人只把Claude Code当写代码的工具。其实它同样是一个极好的代码库导航员。
你可以直接问它:
「项目里的logging怎么工作的?」
「怎么新建一个API endpoint?」
「这个 useAuth hook的调用链是什么?」
「 src/lib/db.ts 和 src/utils/database.ts 有什么区别?为什么有两个?」
Claude会读相关代码,然后给你一个结构化的解释。比读文档快,比问同事方便,尤其是刚接手一个新项目的
时候。
Boris团队的人就是这么用的。新成员入职不是先读一堆wiki,而是直接问Claude Code。它对代码库的理解往
往比过时的文档更准确。
Onboarding加速器:加入一个新项目后,先花10分钟问Claude Code:「这个项目的架构是什么?核心模块有
哪些?数据流是怎么走的?」你会省下至少半天翻文档的时间。
多轮对话策略 Multi-turn Conversation Strategy
和Claude Code的对话不是一次性的。你经常需要在多轮对话中逐步推进一个任务。这里有几个经过实战验证
的策略:
紧密反馈循环
39. 别等Claude写完500行代码再看结果。发现方向偏了,立刻纠正。越早纠正成本越低。Claude写了10行时你说
「不对,换个方式」,成本几乎为零。写完整个功能再推倒重来,浪费的是tokens和时间。
两次纠正不行,换条路
纠正了两次Claude还是不按你的意思来?别继续纠正了。 /clear 清掉上下文,用一个更好的初始prompt重新
开始。在一个已经跑偏的对话里纠缠,往往越绕越远。
换任务就清上下文
写完一个组件后要去改数据库schema? /clear 。不同任务有不同的上下文需求,把前一个任务的对话历史带
进新任务只会增加噪音。Shrivu推荐的做法: /clear 之后跑一个自定义的 /catchup 命令,让Claude读取当前
git分支中的变更来恢复上下文。
用subagent做调研
有时你需要Claude先调研再动手:「看看这个库怎么用」「分析一下竞品的实现方式」。这些调研任务可以用
subagent来做,调研结果返回主会话,中间的思考过程不会污染主上下文。
注意
Shrivu特别提醒:不要依赖 /compact (自动压缩)。它是不透明的、容易出错的。需要重启时用 /clear ,不
要用 /compact 。
Effort级别:别省这个钱 Effort Level
Claude Code有四个effort级别:Low、Medium、High、Max。控制Claude执行任务时投入多少推理资源。
级别适合场景特点
Low简单的格式化、重命名快,但容易犯低级错误
Medium日常开发任务比默认更轻量
High复杂功能开发、调试默认级别,Boris也用这个
Max极端复杂的架构决策无限推理token,最慢最深
High本身就是默认值,Boris的做法是从不把它调低。理由和他坚持用Opus一样:Claude想得更深,需要返工
的次数更少,总体效率反而更高。
很多人觉得「这个任务简单,调到Low省点时间」。但Low做错了,你纠正它花的时间可能比直接用High做对还
长。
40. 核心建议
如果你用的是Max计划,High已经是默认值,不需要额外调整。别为了省几秒钟把effort调低,修低级错误花
的时间远不止几秒。
三个提问原则 The Art of Asking
和Claude Code对话的核心其实就三个字。
具体。文件名、行号、函数名、期望行为,能给就给。越具体的指令,越精确的输出。
指向。你代码库里一定有写得好的部分。把它们当参考范本指给Claude看。「像那个一样做」比「做一个漂亮
的」有效100倍。
克制。一次只做一件事。任务大就分步来,每步确认结果后再下一步。一条消息里塞三个不相关的需求,
Claude大概率只做好其中一个。
我觉得一个好的心态是:把Claude当成一个非常聪明但刚入职的同事。能力很强,但不了解你项目的历史和惯
例。你给的上下文越精准,它的产出越接近预期。
这一章的核心:好的对话靠的不是花哨的prompt,而是精准的上下文。具体化需求,让Claude采访你来补盲
点,用 /clear 保持干净,别把effort调低。说到底,最有效的进阶是在实践中积累和Claude协作的直觉,不是
学更多prompt技巧。
41. §07
扩展能力:Skills、Hooks与MCP
Extensions: Skills, Hooks & MCP
用到后面你会发现,Claude Code真正的价值不是它本身有多强,而是你能在它身上接多少东西。
Skills、Hooks、MCP三种扩展机制,让它从一个终端工具变成一个可以无限生长的工作台。
为什么需要扩展
我一开始以为Claude Code装好就完事了。后来发现自己总在重复同样的话:每次提交代码前念叨一遍「先跑
个lint」、每次新建组件要交代一遍项目规范、每次查数据要手动复制SQL结果贴给Claude。
这种重复一旦超过三次,就该想办法自动化了。Claude Code提供了三种扩展机制,各自解决不同层面的问
题:
机制本质确定性适用场景
SkillsMarkdown指令包高但非100%(advisory)领域知识、可复用工作流
HooksShell脚本钩子100%确定执行格式化、lint、安全检查
MCP外部工具连接器100%数据库、API、第三方服务
三者的关系:Skills教Claude怎么做事,Hooks在关键节点自动执行检查,MCP把外面的世界接进来。我个人
用得最多的是Skills,几乎每天都在加新的。
Skills:我觉得最值得先学的
Skills是最容易上手的扩展方式。原理简单到有点不像话:在 .claude/skills/ 目录下创建一个文件夹,放一
个 SKILL.md 文件,Claude就会根据上下文自动加载里面的指令。
├── react-component/ │ └── SKILL.md # 创建React组件的规范和步骤 ├──
│ └── SKILL.md # 修bug的标准流程 └── deploy-preview/ └── SKILL.md # 部署预
.claude/skills/
fix-issue/
览环境的步骤
用 /skill-name 可以手动调用某个skill,Claude也会根据对话内容自动判断要不要加载。比如你说「帮我创建
一个新的React组件」,Claude会自动加载 react-component skill里的规范。
两种类型的Skills
42. 知识型:告诉Claude「这个项目里的事情应该怎么做」。比如API规范、编码风格、项目约定。这类skill更像文
档,Claude读完会按里面的规则办事。
工作流型:告诉Claude「遇到这种任务按什么步骤执行」。比如 /fix-issue (修bug的标准流程)、 /review-
pr (代码审查流程)。这类skill更像SOP,有明确的步骤和检查点。
Boris有一个挺实用的判断标准:如果一件事你每天做超过一次,就应该把它变成skill或command。我自己更
激进一点,超过两次我就写了。
实际案例:创建 /techdebt 命令
把「发现技术债 → 评估影响 → 创建issue → 关联到sprint」这个流程写成skill。以后发现技术债时,直接输入
/techdebt ,Claude会自动走完整个流程,包括评估优先级、创建GitHub issue、加上正确的标签。
工作流型skill的关键配置
工作流型skill通常会执行有副作用的操作(比如创建issue、发消息、部署)。为了防止Claude在不合适的时候
自动触发,可以在 SKILL.md 的front matter中加一行:
---
disable-model-invocation: true
---
加了这个配置后,skill只能通过 /skill-name 手动调用,Claude不会自作主张地触发它。
安装别人的skill
Skills可以共享。Boris自己整理了一套高频使用的skills,你可以一行命令安装:
mkdir -p ~/.claude/skills/boris && \
curl -L -o ~/.claude/skills/boris/SKILL.md \
https://howborisusesclaudecode.com/api/install
安装后你就拥有了Boris日常使用的工作流,包括他的commit规范、PR模板、代码审查标准等。社区也在不断
贡献新的skills,你可以在Claude Code里用 /plugin 浏览市场。
核心建议
写skill的最佳实践:从你最常对Claude说的那句话开始。如果你总是在提交前说「先跑一下测试,格式化一下
代码,然后commit」,那这就是一个skill的雏形。把这些步骤写进SKILL.md,下次一个斜杠命令就搞定。
Hooks:不是建议,是强制
Skills有一个天然的局限:它本质上是对Claude的「建议」。Claude会尽量遵守,但遵从率不是100%,尤其在
长对话后期,它可能就忘了。大多数场景下够用,但有些事情你需要100%的确定性。
43. 比如我自己踩过一个坑:在CLAUDE.md里写了「每次编辑文件后跑eslint格式化」,前几轮对话都好好的,聊到
后面上下文一压缩,这条规则就被吃掉了。
Hooks就是为了解决这个问题。
Hooks vs CLAUDE.md:本质区别
很多人会把规则写在CLAUDE.md里:「每次修改文件后请运行 npx eslint --fix 」。这在大多数时候有效,但
Claude偶尔会忘记,尤其在长对话、上下文被压缩之后。
CLAUDE.md是建议,Hooks是强制执行。CLAUDE.md通过自然语言影响Claude的行为;Hooks是Claude
Code平台层面的机制,在特定生命周期节点触发Shell脚本,Claude无法跳过或忽略。
生命周期钩子
Hooks支持多个触发时机:
钩子触发时机典型用途
PreToolUseClaude调用工具之前拦截危险操作
PostToolUseClaude调用工具之后自动格式化、自动测试
PermissionRequest需要用户授权时自动批准低风险操作
StopClaude完成回合时推动继续执行
PostCompact上下文压缩后注入关键指令防遗忘
PermissionDeniedAuto模式分类器拒绝操作后记录被拒操作、通知用户、触发替代方案
实用案例
案例1:自动格式化。每次Claude编辑文件后自动跑eslint,不依赖Claude「记住」要格式化。
// .claude/settings.json
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "npx eslint --fix $CLAUDE_FILE_PATH"
}
]
}
}
44. 案例2:自动批准低风险操作。用PermissionRequest hook把权限请求路由到一个脚本,脚本判断操作类型,
低风险的(读文件、运行测试)自动批准,高风险的(删除文件、推送代码)仍然弹出确认。
案例3:上下文压缩后注入关键指令。长对话中Claude会压缩上下文来节省token。压缩后,一些早期的重要指
令可能丢失。PostCompact hook可以在压缩发生后自动把关键规则重新注入,确保Claude不会「失忆」。
案例4:推动Claude继续。有时候Claude会在一个复杂任务中途停下来问「要继续吗?」。Stop hook可以检测
这种情况,自动让Claude继续执行,适合无人值守的批处理场景。
核心建议
你不需要自己从零写hooks。直接告诉Claude:「Write a hook that runs eslint after every file edit」,它会帮
你生成配置并写入 .claude/settings.json 。
MCP:让Claude看到外面的世界
Skills教Claude知识,Hooks保证执行确定性,但它们都在Claude Code的内部世界运作。如果你需要Claude直
接查数据库、调API、读取设计稿,就需要MCP。
MCP(Model Context Protocol)是Anthropic推出的开放标准,让AI工具能连接外部数据源和服务。把它想
象成Claude Code的USB接口:插上不同的MCP服务器,Claude就获得了对应的能力。
添加MCP服务器
添加一个 服务器
#
MCP
claude mcp add slack -- npx -y @modelcontextprotocol/server-slack
查看已安装的
#
MCP
claude mcp list
添加后,MCP服务器的能力会以「工具」的形式暴露给Claude。比如安装了Slack MCP后,Claude就可以搜索
Slack消息、发送消息、创建频道。
实用MCP推荐
45. MCP能力适用场景
Slack MCP搜索/发送消息让Claude自动同步进度、回复问题
数据库MCP直接查询数据库不用手动复制SQL结果
Figma MCP读取设计稿把设计直接转成代码
Sentry MCP获取错误日志Claude自动定位线上bug
GitHub MCP操作仓库/Issue/PR自动化项目管理
Boris有一个经典用法:他给Claude Code接上Slack MCP,当有人在Slack里报告bug时,Claude会自动读取
bug描述、找到相关代码、尝试修复、提交PR,然后在Slack里回复「已修复,PR链接在这里」。整个过程不需
要人工介入。
MCP配置文件
MCP的配置存在项目根目录的 .mcp.json 中,可以跟代码一起提交到Git仓库,这样团队成员clone项目后就自
动获得相同的MCP配置。
// .mcp.json
{
"mcpServers": {
"slack": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-slack"],
"env": {
"SLACK_TOKEN": "${SLACK_TOKEN}"
}
},
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres", "${DATABASE_URL}"]
}
}
}
注意
MCP服务器会获得对外部服务的访问权限。添加新的MCP前,确认你理解它会访问哪些数据。敏感token不要
硬编码在 .mcp.json 里,用环境变量引用。
Plugins:打包好的扩展包
Skills、Hooks、MCP可以各自独立使用,但组合起来才真正厉害。Plugins就是这种组合的打包形式。
46. 在Claude Code里输入 /plugin ,你可以浏览一个不断增长的插件市场。每个Plugin可能包含skills、hooks、
agents、MCP配置中的一种或多种,一键安装就全部配置好。
比如一个「代码智能」Plugin,可能同时包含:
一个skill:告诉Claude如何利用符号导航理解代码结构
一个hook:编辑后自动运行类型检查
一个MCP:连接语言服务器获取精确的符号信息
这三者配合,让Claude在理解和修改代码时更准确,而你只需要一次安装。
Slash Commands:带预计算的快捷入口
除了 /skill-name 调用skill,还有一种更灵活的方式:Slash Commands。
Commands存在 .claude/commands/ 目录中。和skills不同的是,commands可以包含内联的Bash脚本来预
计算信息。在Claude读到prompt之前,command先跑一些shell命令,把结果嵌入进去。
# .claude/commands/commit-push-pr.md
帮我完成以下操作:
查看当前的
:
1.
git diff
```bash
git diff --stat
```
2.
3.
4.
生成commit message并提交
推送到远程分支
创建Pull Request,标题基于commit内容
注意:PR描述要包含变更摘要。
输入 /commit-push-pr ,Claude就会按照这个流程自动执行。因为command文件存在 .claude/commands/
里,它会随Git一起提交,团队成员都能用。
Skills vs Commands选择指南
两者有重叠,但定位不同。Skills更像「知识和能力」,Claude根据上下文自动应用或手动调用;Commands更
像「宏」,包含预计算步骤,强调执行流程。经验法则:如果需要Claude「知道什么」,用skill;如果需要
Claude「做一串事」,用command。
三种扩展机制的协作
实际项目中,三种机制经常协同工作。一个完整的例子:
47. 假设你的团队有这样一个工作流:收到bug报告 → 定位问题 → 修复 → 跑测试 → 提交PR → 通知相关人。
Skill
Hook
Slack MCP
→
→
→
接收bug报告
修bug标准流程
自动跑测试+lint
通知修复结果
Slack MCP
MCP(Slack)让Claude收到bug报告并能回复修复结果
Skill(fix-issue)指导Claude按标准流程定位和修复问题
Hook(PostToolUse)确保每次修改后都自动跑测试和格式化
单独用任何一个都有价值,组合起来就是一个完整的自动化bug修复流水线。
核心建议
不要想着一上来就搭一套完整的扩展体系。从你最痛的那一个重复操作开始:总在口述规则?写个skill。总忘
记跑lint?加个hook。总在手动倒腾数据?接个MCP。一个一个加,慢慢你的Claude Code就变成了一个为你
量身定制的工作台。
48. §08
多Agent协作
Multi-Agent Collaboration
Claude Code最被低估的能力不是它写代码有多快,而是它可以同时跑很多个。学会并行之后,你的
工作模式会从「一个人配一个AI」变成「一个人指挥一支AI团队」。
一个人为什么要开那么多窗口
Boris Cherny日常是这么干活的:本地开5个Claude Code实例(独立的git checkout),云端再开5到10个
claude.ai/code网页会话,每个跑不同的任务。一个写新功能,一个修bug,一个写测试,一个重构,一个做代
码审查。同时进行。
我一开始觉得这也太夸张了。后来自己试了才理解,这不是炫技,是Boris给团队的第一条生产力建议:做更多
并行工作。
原因很直接:Claude Code的工作模式是「你给任务 → Claude花几分钟执行 → 你review结果 → 给下一个任
务」。中间有大量等待时间。只开一个session,大部分时间你在等Claude干活。开5个session,你review第一
个的时候其他4个还在跑,等待时间几乎降到零。
关键前提是:每个session需要在独立的代码环境中运行,否则它们会互相覆盖文件,制造冲突。这就是Git
Worktrees要解决的问题。
Git Worktrees:并行的基础设施
Git Worktree允许你从同一个仓库创建多个工作目录,每个工作目录在不同的分支上,文件系统完全隔离。
Claude Code对worktree做了原生支持:
启动一个在独立
中运行的Claude session
#
worktree
claude --worktree
在
会话中启动(可以后台运行)
# Tmux
claude --worktree --tmux
每次运行 claude --worktree ,Claude Code会自动创建一个新的worktree、切到一个新分支,然后在那个隔
离环境中工作。完成后你可以把分支合并回主分支。
Tmux集成
加上 --tmux 参数,session会在一个Tmux窗口中启动,你可以用快捷键在不同session之间切换。Boris设置
了shell别名来快速跳转:
49. 中添加
# ~/.zshrc
alias za="tmux select-window -t claude:0"
alias zb="tmux select-window -t claude:1"
alias zc="tmux select-window -t claude:2"
跳到第一个session, zb 跳到第二个,以此类推。如果你用Desktop App,界面上有一个worktree复选
框,勾上就行,不需要手动配置Tmux。
za
Subagents:给主session叫个帮手
并行session适合处理互不相关的独立任务。但有时候你要的不是开一个新窗口,而是在当前任务中调一个「专
家」来处理特定环节,比如让一个安全审查专家review你刚写的认证代码。这就是Subagents干的事。
在 .claude/agents/ 目录下放一个 .md 文件,就定义了一个subagent:
├──
安全审查专家 ├──
.claude/agents/
security-reviewer.md #
code-simplifier.md #
verify-app.md #
code-architect.md #
专家 ├──
应用验证专家 └──
架构设计专家
代码精简
每个agent文件可以定义自定义名称、工具集权限、权限模式,甚至指定使用的模型。比如安全审查agent可以
配置为只有读权限(不能改代码),指定使用推理能力更强的模型。
Subagents的核心价值
Subagents最重要的特性不是「专业分工」,而是独立上下文。
每个subagent运行在自己的上下文窗口中,不消耗主session的上下文空间。当主session的对话已经很长、上
下文快要满了的时候,调用一个subagent来处理子任务,相当于开了一个新的「思考空间」,不会挤压主
session的容量。
你甚至可以在prompt中加上「use subagents」,让Claude主动判断什么时候该把子任务分配给subagent。这
会让Claude投入更多计算资源来完成复杂任务。
核心建议
实用的subagent组合:security-reviewer(每次涉及认证、权限、数据存储时自动调用)+ verify-app(修改
完成后自动启动应用并验证功能是否正常)。这两个覆盖了「写得对不对」和「跑得起来吗」两个最常见的验证
需求。
Agent Teams:让它们自己协调
Worktrees让你手动管理多个并行session,Subagents让主session调一个专家。Agent Teams更进一步:多个
session之间能互相通信、协调分工。
50. Agent Teams在2026年2月发布,目前是Claude Code最强大的协作模式。核心理念很简单:不是你来协调多个
agent,而是让agent自己协调。我之前写过一篇用3个AI队友45分钟做红白机游戏厅的实测,就是用的这个功
能。
Writer/Reviewer模式
最经典的用法是一个写代码、另一个审代码:
1 Writer Agent 写代码
负责实现功能,按照需求写代码、跑测试
2
3
Reviewer Agent 审代码
review Writer的输出,指出问题、建议改进
Writer根据反馈修改
收到review意见后改进代码,形成迭代循环
这个模式比单个agent写代码好不少。原因和人类团队一样:写代码的人容易陷入自己的思路,审代码的人能从
不同角度发现问题。两个agent互相盯着,产出质量肉眼可见地提升。
测试驱动模式
另一个高效的模式:一个agent写测试,另一个写实现。写测试的agent先根据需求定义「什么是正确行为」,写
实现的agent再去满足这些测试。这就是AI版的TDD(Test-Driven Development)。
Agent Teams会自动共享任务状态和消息,你不需要手动在agent之间复制粘贴信息。它们有一个team lead角
色来协调分工和进度。
Coordinator Mode:四阶段协调
Agent Teams内部其实有一套更精细的协调机制。复杂任务会自动走四个阶段:先让多个worker并行调查代码
库(Research),然后coordinator综合发现生成规格说明(Synthesis),接着worker按规格做精准修改
(Implementation),最后验证结果(Verification)。你不需要手动配置这个流程,Agent Teams会根据任务复
杂度自动判断要不要走完整的四阶段。
Fan-out批处理:人海战术的AI版
前面都是几个agent配合做一件事。Fan-out模式解决的是另一类问题:同一个操作需要对大量文件重复执行。
非交互模式
Claude Code支持非交互模式,用 -p 参数传入prompt,适合在脚本中调用:
51. 非交互模式执行单个任务
把这个文件从 JavaScript 迁移到 TypeScript"
#
claude -p "
配合shell循环,你可以批量处理:
批量迁移一批文件
#
for file in $(cat files-to-migrate.txt); do
claude -p "Migrate $file from JS to TS" \
--allowedTools "Edit,Bash(git commit *)" &
done
注意末尾的 & :这让每个Claude实例在后台并行运行。如果有50个文件要迁移,50个Claude同时跑,可能几
分钟就完成了原本需要一整天的工作。
/batch 命令
如果你不想自己写shell脚本,Claude Code提供了 /batch 命令来简化这个过程:
1 交互式规划
告诉Claude你想做什么(比如「把所有React类组件迁移到函数组件」),Claude会分析项目,列出所有需
要处理的文件
2
3
确认执行
你review计划,确认后Claude启动数十个agent并行执行
汇总结果
所有agent完成后,Claude汇总成功/失败情况,你只需要处理少数失败的case
这种模式特别适合大规模重构、代码迁移、批量修复等场景。一个人加Claude,抵得上一个工程团队花一周做
的迁移工作。
不一定要盯着电脑
前面说的都是本地终端操作。但Claude Code也支持远程和异步执行,不用一直守在终端前面。
Remote Control
通过Remote Control功能,可以生成一个连接链接。在手机上打开这个链接,就能远程创建和管理本地的
Claude session。适合通勤路上想启动一个任务、出门前让Claude跑起来的场景。Boris提到自己早上会用
iPhone通过Claude移动App启动会话,之后在桌面继续。
Claude Code on Web
52. 开发环境在云端的话(或者你只是想在浏览器里用),可以通过 claude.ai/code 直接在浏览器中运行Claude
Code,不需要安装本地环境。
/schedule:云端定时任务
设定一个云端定时任务
#
/schedule "Check for outdated dependencies and create PRs"
设定定时触发的Claude任务,在云端执行。电脑关机了任务照样按时跑。适合日常维护类工作:依
赖更新、安全扫描、日报生成。
/loop:本地长时间运行
有些任务要跑很长时间(监控CI状态、持续集成测试)。 /loop 让Claude在本地最多无人值守运行3天,你去做
别的事,它在后台一直跑。
/schedule
异步工作的心智转变
传统开发是同步的:你写代码、跑测试、等结果。异步模式下,睡觉前启动一批任务,早上起来review结果。
把AI当成「夜班团队」,白天你定方向做决策,晚上它执行。
Anthropic自己怎么用的
Anthropic发布过一份白皮书「How Anthropic Teams Use Claude Code」,记录了内部各团队的真实用法。挑
几个有意思的:
数据基础设施团队用Claude Code调试Kubernetes集群。Pod出问题时,让Claude读取日志、分析错误栈、定
位根因、给修复建议。过去需要Senior工程师花很长时间排查的问题,Claude几分钟就能给出方向。
安全团队用Claude Code追踪复杂的控制流。安全审计需要跟踪一个请求从入口到数据库的完整路径,手动做
极其耗时。他们让Claude自动追踪并生成调用链路图。
营销团队用Claude Code生成广告变体。一次活动需要几十个版本的文案和素材组合,过去设计师和文案要花
好几天迭代。现在Claude批量生成,营销人员只做选择和微调。
但最让我意外的是法务团队的案例:一位律师用Claude Code搭了一个电话树系统(来电后自动路由到对应的
法律顾问)。这位律师不是工程师,不会写代码,但从零搭建了这个系统并上线了。这个案例让我觉得,Claude
Code的受众已经不局限于工程师了。
我自己摸索出来的几条经验
从2个session开始就好。不用一上来就开10个。先习惯在两个之间切换:一个做主任务,另一个做辅助的(写
测试、做code review)。等觉得游刃有余了再加。
53. 每个session给一个明确的角色。不要让所有session都做「随便什么任务」。给它们分工:这个负责前端、那个
负责后端、那个专门跑测试。角色越清晰,你管理起来越轻松。
用git分支隔离一切。每个session在自己的分支上工作,通过PR合并。千万不要让多个session操作同一个分
支,我试过一次,冲突解到怀疑人生。
定期扫一眼,不要完全放羊。并行不等于不管。每隔15-20分钟看看各个session的进度,及时纠偏。一个
session跑偏了及时停掉,比让它跑完再返工划算得多。
核心建议
Boris的总结我很认同:把并行工作想象成管理一个远程团队。你不需要盯着每个人写每一行代码,但你需要清
楚每个人在做什么、进度如何、有没有卡住。你的工作从写代码变成了做项目管理。
54. §09
从零构建一个完整产品
Build a Complete Product from Scratch
前8章讲零件,这一章组装。用一个真实项目把前面学的东西全串起来,你会发现Claude Code真正的
威力不在于某个单一功能,而在于它们连起来之后的化学反应。
为什么拿「AI周报助手」当例子
选这个项目我想了一会儿。好的教学案例得满足几个条件:真实有用(不是todo list这种永远不会打开第二次的
东西)、复杂度适中(半天到一天能搞定,但涉及前后端+API+AI调用)、技术栈匹配(Next.js + Tailwind是
Claude Code最擅长的组合)。
AI周报助手做的事情很直白:连接你的GitHub,获取本周所有commit,用AI总结成一份可读的周报页面,支持
一键分享给同事。每个工程师每周五都在做的事,每次花半小时。我们要把它缩短到10秒。
这个项目会用到前面几乎所有章节的东西。不过你不需要全记住,跟着做就行。
Phase 0:先别急着写代码
我一开始做产品时犯过一个错:想到什么就立刻让Claude开始写代码。结果做到一半发现需求没想清楚,只能
推翻重来。
后来我养成了一个习惯:先让Claude采访我。它其实很擅长这个。
claude "I want to build a weekly report tool. Before writing any code,
interview me to understand the requirements. Ask me questions one at a
time about target users, core features, and technical constraints."
Claude会开始像产品经理一样采访你:
目标用户是谁?(个人开发者?还是团队?)
核心功能有哪些?(只生成周报?还是也需要分享?)
技术偏好?(部署到哪里?用什么框架?)
有没有设计参考?(周报长什么样?)
回答完这些问题后,让Claude把结论整理成一份规格文档:
claude "Based on our discussion, create a SPEC.md file that captures
all requirements, user stories, and technical decisions."
55. 这份SPEC.md是整个项目的锚点。后续所有开发都围绕它展开。
为什么用新session执行:需求分析是对话密集的过程,会消耗大量上下文窗口。确认完SPEC.md后,开一个
新session开始开发。新session会自动读取SPEC.md和CLAUDE.md,拥有干净的上下文空间来写代码。这就
是§06里讲的「何时开新session」的实战应用。
Phase 1:项目初始化
新session,干净的开始。一句话创建项目骨架:
claude "Create a Next.js project called weekly-report with Tailwind CSS.
Set up the basic folder structure following SPEC.md requirements.
Include TypeScript, and configure ESLint."
Claude会执行一连串操作:运行 npx create-next-app 、安装依赖、配置Tailwind、创建基础目录结构。你在
终端里看到的是它自动执行的每一条命令和创建的每一个文件。
项目创建完成后,文件结构大致是这样的:
weekly-report/
app/
layout.tsx
page.tsx
api/
github/route.ts
summarize/route.ts
auth/[...nextauth]/route.ts
report/[id]/page.tsx
components/
lib/
CLAUDE.md
SPEC.md
tailwind.config.ts
package.json
├──
│ ├──
│ ├──
│ ├──
│ │ ├──
│ │ ├──
│ │ └──
│ └──
├──
├──
├──
├──
├──
└──
接下来是关键一步:配置CLAUDE.md。这是§05整章的核心,现在是实战:
56. # CLAUDE.md
## Project Overview
AI-powered weekly report generator. Connects to GitHub, summarizes
commits with AI, generates shareable report pages.
## Tech Stack
- Next.js 15 (App Router) + TypeScript
- Tailwind CSS for styling
- NextAuth.js for GitHub OAuth
- Claude API (via Anthropic SDK) for summarization
## Code Style
- Use server components by default, 'use client' only when needed
- API routes in app/api/, use Route Handlers
- Prefer named exports
- Error handling: always use try-catch in API routes
## Testing
- Run `npm run lint` before committing
- Test API routes with curl before building UI
有了这份CLAUDE.md,后续每次新session或新的对话,Claude都知道这个项目的技术决策和代码规范。不需
要你每次都重新说明。
Phase 2:正式开发(最耗时但也最爽的部分)
到这里才真正开始写代码。我一般会先用Plan模式聊一轮架构,不急着动手。在终端里输入 /plan 切换到Plan
模式:
→
→
"I need to implement the core flow: GitHub OAuth login
fetch this
week's commits
send to Claude API for summarization
display
the report. Let's discuss the architecture before coding."
→
Claude会给出一个完整的技术方案:API路由如何设计、数据流怎么走、组件怎么拆分。你可以在这个阶段提出
疑问、调整方案。这就像是和一个高级工程师在白板前讨论。
确认方案后,退出Plan模式,让Claude开始实现:
"Plan looks good. Now implement it step by step. Start with GitHub
OAuth, then the commit fetching API, then the AI summarization."
Claude会按照讨论好的方案,逐步创建文件、写代码、安装必要的依赖包。你会看到它在终端里创建
app/api/auth/[...nextauth]/route.ts 配置NextAuth,然后创建 lib/github.ts 封装GitHub API调用,再
创建 app/api/summarize/route.ts 接入Claude API。
57. 每完成一个模块,做一次验证:
1 GitHub OAuth
让Claude跑 npm run dev ,打开浏览器点登录按钮,看能不能跳转到GitHub授权页面。如果报错,把错
误信息粘贴给Claude,它会自己修。
2
3
Commit数据获取
登录成功后,用curl测试API路由: curl localhost:3000/api/github ,看返回的commit数据是否正
确。
AI总结生成
拿真实的commit数据调用总结接口,检查AI生成的周报内容是否合理、是否有幻觉。
注意
每做完一步就验证,这是我踩过最多坑之后总结出来的最重要的习惯。不要让Claude一口气写完所有代码再
测。问题越早发现越容易修。我曾经让它连续写了8个文件,最后发现第2个文件的API路由就写错了,后面全
废了。
Phase 3:让它好看起来
功能跑通了,但界面大概率很丑。正常。我做任何产品都是先让功能跑起来,再管好不好看。
Claude Code支持图片输入。最直接的方式:截一张当前页面的图,粘贴给Claude:
claude "Here's a screenshot of the current report page.
[paste screenshot]
Issues: 1) The header is too cramped 2) The commit list needs
better spacing 3) Add a share button in the top right"
Claude会看到你的截图,理解当前的视觉问题,然后精准修改对应的CSS和组件代码。
这种「截图→反馈→修改」的循环非常高效。传统开发中,你需要在设计稿和代码之间反复对照;现在你只需
要截图、说问题、等修好。
几轮迭代后,继续打磨响应式:
"Test the report page on mobile viewport (375px width). Fix any
layout issues. The share button should be full-width on mobile."
Claude会自己调整浏览器视口大小(如果你用了VS Code集成),或者直接修改Tailwind的响应式类名。
58. 核心建议
UI打磨阶段最高效的做法是:先把所有问题一次性列出来,让Claude批量修改,而不是改一个看一个。批量反
馈能让Claude更好地理解整体设计意图。
Phase 4:扩展能力实战
核心产品已经能用了。现在是§07内容的实战时间:给项目加上Skills、MCP和Hooks。
创建一个Skill
每次想生成周报,都要打开项目、执行一串操作。能不能一句话搞定?可以,用Skill。
在项目根目录创建 .claude/skills/generate-report/SKILL.md :
# /weekly-report
Generate this week's report.
## Steps
1. Run the dev server if not running
2. Call /api/github to fetch commits since last Monday
3. Call /api/summarize to generate the report
4. Open the report page in browser
5. Show the shareable URL
配置完成后,在任何Claude Code session中输入 /weekly-report ,它就会自动执行以上所有步骤。一个命
令,10秒出周报。这就是Skills的威力:把重复流程变成一键操作。
添加MCP:连接Slack
周报生成了,手动发到Slack频道太麻烦。用MCP把两者打通:
claude "Add a Slack MCP server so the generated report can be
automatically posted to #team-updates channel. Use the Slack
Web API with a bot token."
Claude会帮你配置MCP server,在 .claude/mcp.json 里注册Slack连接。配置完成后,你的 /weekly-report
skill可以加上最后一步:把周报内容发送到Slack。
设置Hook:自动Lint
最后一个扩展:每次Claude提交代码前,自动跑lint检查。
claude "Set up a pre-commit hook that runs ESLint and TypeScript
type checking. If there are errors, fix them before committing."
59. 这样每次Claude Code执行 git commit 时,都会先确保代码质量。这是§07里Hook的典型用法:在关键节点
注入自动检查。
Phase 5:部署上线
产品在本地跑得好好的,该让全世界都能访问了。
claude "Deploy this project to Vercel. Set up the environment
variables for GitHub OAuth, Claude API key, and Slack bot token.
Also create a GitHub Actions workflow that runs lint and type
check on every PR."
Claude会执行部署命令、配置环境变量、创建CI/CD配置文件。整个过程你不需要打开Vercel的dashboard,也
不需要手写GitHub Actions的YAML。
部署完成后,你会拿到一个线上URL。在浏览器里打开,走一遍完整流程:登录→获取commit→生成周报→分
享。确认一切正常。
如果你的团队也在用Claude Code,还可以加上一个额外步骤:
claude "Add a Claude Code Action to the GitHub repo that
automatically reviews PRs for code quality and potential bugs."
这样每次有人提PR,Claude会自动做code review,在PR上留评论。CI/CD的完整闭环就建立起来了。
回顾:这个项目用到了什么
回头看看,这个下午我们做了什么。一个完整的Web应用,从想法到上线,全部在终端里完成。
Phase做了什么对应章节
Phase 0用Claude采访自己,生成SPEC.md§06 对话技巧
Phase 1项目初始化 + CLAUDE.md配置§02 安装 + §05 CLAUDE.md
Phase 2Plan模式讨论 + Auto模式实现§04 核心工作流
Phase 3截图反馈 + UI迭代§03 Agent式工作
Phase 4Skills + MCP + Hooks§07 扩展能力
Phase 5Vercel部署 + CI/CD§04 Git操作
如果从头到尾比较顺利,整个过程大概需要5-8个小时。其中最耗时的是Phase 2(核心功能开发),OAuth配置
和API调试需要反复验证,环境变量、回调URL这些琐碎的东西每个都可能卡你十几分钟。不顺利的话,一天也
60. 正常。
同样的项目,如果纯手写呢?一个熟悉Next.js和OAuth的全栈工程师大概需要2-3天。不太熟悉的话可能需要一
周。差距不只是速度,更重要的是:你在整个过程中做的是产品决策而不是代码实现。你在思考「周报应该包
含哪些信息」「分享页面需要登录吗」这些产品问题,而不是在Stack Overflow上查「NextAuth GitHub
provider怎么配」。
我自己踩出来的几条经验
说点掏心窝子的话。
小猫补光灯做到App Store付费榜Top 1的时候,很多人问我是不是有一个开发团队。答案是没有。从第一行代
码到上架审核,全部是AI写的。我从未手写过代码。
但这不意味着开发过程很轻松。恰恰相反,我踩过非常多坑,总结出来几条最核心的经验:
一、需求拆小,每次只给一步
新手最常见的做法:兴奋地把整个产品需求一股脑甩给Claude,「帮我做一个完整的XX应用,需要登录、数据
库、付费、推送、分享...」Claude确实会开始做,但最终产出往往是一团乱。
我现在的做法是拆成最小可验证的步骤。先做登录,确认能跑。再做数据存储,确认能存能取。然后是核心业
务逻辑,然后才是UI。每一步验证通过,再进下一步。
推荐
这样给需求:
「先实现GitHub OAuth登录。登录成功后在页面上显
示用户名和头像。」
验证通过后→
「现在添加获取commit的API。获取登录用户最近7天
在所有repo的commit,返回JSON。」
不推荐
不要这样给需求:
「做一个周报工具,需要GitHub登录、获取commit、
AI总结、漂亮的UI、分享功能、Slack通知、部署到
Vercel。」
二、先跑通最小功能,再一步步加
和上一条有关系但不一样。拆小是关于怎么给Claude下指令,这一条是关于产品策略。
做小猫补光灯时,第一个版本只有一个功能:打开App,屏幕变白,亮度拉满。就这么简单。我拿它自拍了一
张,确认补光效果还行,才开始加色温调节、亮度滑块、定时拍照这些功能。
用Claude Code也是一样。先做一个能跑的最简版本,自己用两天,发现真正需要什么再加。你脑子里想象的
功能和实际用起来需要的功能,往往差异很大。
三、验证比开发更重要
61. 这句话我反复强调。Claude Code写代码的速度很快,快到你可能会产生一种幻觉:它写得这么快,应该是对
的吧?
不一定。AI生成的代码需要验证,就像人写的代码需要测试一样。区别在于:人写代码可能一天写200行,验证
成本可控;Claude Code一小时能写2000行,如果你不验证,问题会在后面以更大的成本爆发出来。
我的做法是:每完成一个功能模块,立刻打开浏览器或跑测试。发现问题立刻修,不要积累。
四、不要在一个session里做太多不相关的事
Claude Code的每个session有上下文窗口限制。如果你在一个session里又改前端又调后端又配部署又修bug,
到后面上下文会变得很混乱,Claude的回答质量会明显下降。
实际开发中,我通常这样分session:
Session 1:项目初始化 + 基础架构
Session 2:核心后端逻辑
Session 3:前端页面和交互
Session 4:测试和bug修复
Session 5:部署和CI/CD
每个session专注做一类事情。session之间靠CLAUDE.md和代码本身传递上下文。这比在一个超长session里
硬撑要高效得多。
五、产品感知才是你最大的杠杆
这条是最重要的。
Claude Code能帮你写代码、调UI、配部署、修bug。但它帮不了你决定:这个产品到底应该解决什么问题?目
标用户是谁?什么功能该做什么功能该砍?
这些是产品判断。来自你对用户的理解、对市场的感知、对自己能力的诚实评估。AI能让你的执行速度提升10
倍,但方向错了,你只是以10倍速度走向错误。
小猫补光灯能成功,不是因为它的代码写得好(代码非常普通),而是因为它精准地击中了一个真实需求:想自
拍好看,但不想下载复杂的修图App。一个简单的补光功能,解决一个简单的问题。
一人公司的产品节奏:想法→1天做出MVP→自己用3天→找10个人测试→根据反馈迭代→觉得还行就上架→数
据说话。这个循环里,Claude Code覆盖的是「1天做出MVP」和「根据反馈迭代」这两步。其他步骤是你的判
断力在工作。
我踩过的坑,你别踩了
列几个在实际产品开发中经常遇到的问题:
62. 陷阱表现解决方案
需求膨胀做着做着不断加功能,永远做不完回SPEC.md,不在规格内的功能记在todo里,不
在当前session做
上下文污染session越来越长,Claude开始忘记之前的代码
结构及时开新session,让CLAUDE.md和代码库承载
上下文
不验证就继
续让Claude连续写了10个文件,最后发现第2个就
有bug每完成一个模块必须验证,宁愿慢一点
环境变量混
乱本地能跑,部署后各种undefined在CLAUDE.md里列出所有环境变量,部署前用
checklist确认
过度依赖AI
判断Claude说「这个方案最好」就采纳,不思考是
否适合自己的场景AI给方案,你做决策。特别是架构选型,永远自己
拍板
提前知道这些坑,能帮你省掉不少返工时间。
到这里,你已经具备了独立用Claude Code构建产品的能力。最后一章,聊几个更根本的问题。
63. §10
心智模型与持续进化
Mental Models & Continuous Evolution
工具会过时,功能会更新,但好的思维方式不会贬值。最后一章退后一步,聊几个我觉得比具体操作
更重要的东西。
三层模型:你的时间该花在哪
讲了这么多具体操作,现在值得建立一个全局视角。Claude Code的所有能力,其实可以归入三个层次:
Prompt层
你说的话
Harness层
→ Context层
→
AI能看到的信息
自动化环境
Prompt层是你在终端里输入的每一句话。「帮我加一个登录页面」「这个bug修一下」。大多数初学者的全部交
互都停留在这一层。它有效,但每次都需要你开口,每次都从零开始。
Context层是Claude在回答你之前已经「看到」的所有信息。CLAUDE.md文件、项目的文件结构、git提交历
史、package.json里的依赖列表。这些信息不需要你每次重复,Claude会自动读取。§05讲的CLAUDE.md,
本质上就是在优化这一层。
Harness层是你构建的自动化环境。Skills让你把常用工作流封装成可复用的指令;Hooks让特定事件自动触发
操作;MCP连接外部服务;Agent Teams让多个Claude实例并行协作。这一层的特点是:一旦搭好,它就一直
在工作,不需要你每次手动触发。
一个比喻:Prompt是你开口说话,Context是你提前准备好的PPT,Harness是你搭建的整个舞台。观众
(Claude)的表现,取决于这三层的综合质量。
初学者把所有精力都花在Prompt层,反复琢磨措辞、研究提示词技巧。这没有错,但天花板很低。高手的做法
是:尽量把信息沉淀到Context层,把重复劳动交给Harness层,只在Prompt层处理真正需要临时决策的事
情。
层次投入方式回报特征
Prompt每次对话都要重新投入一次性回报
Context写一次CLAUDE.md,持续生效复利回报
Harness搭一次自动化流程,永久运行指数回报
64. 如果你读完这本手册只记住一件事,就记住这个:把时间花在构建Context和Harness上,而不是优化
Prompt。
引擎盖下的Claude Code Under the Hood
用了这么久Claude Code,你有没有好奇过:当你按下回车之后,到底发生了什么?
我花了一些时间研究Claude Code的内部架构。不是为了炫技,是因为理解机制之后,很多之前困惑的现象突
然就说得通了。为什么有时候它会「绕弯路」?为什么 /compact 之后它偶尔会忘记细节?为什么Auto模式下有
些操作直接放行,有些却要你确认?这些都不是随机行为,背后有清晰的设计逻辑。
核心循环:Think → Act → Observe → Repeat
Claude Code的心脏是一个叫TAOR的Agent循环。每次你输入一个任务,它不是直接生成一整段代码然后扔给
你。它做的事情像这样:
Think
分析当前状态
决定下一步
Act
Observe
Repeat
读取返回结果 → 未完成则
→ 调用工具
→
执行操作
评估是否完成
继续循环
先思考当前状态,决定下一步做什么;然后调用一个工具执行操作(比如读一个文件、运行一条命令);观察
返回的结果,判断任务是不是完成了;没完成就回到Think继续循环。整个过程可能转几十圈才停下来。
这就解释了为什么Claude有时候看起来「绕弯路」。它不是一个从输入到输出的直线程序,它是一个不断试探和
调整的循环体。每一步都在根据新的观察做决策。有时候它试了一个方案发现不行,回退换另一条路,这其实
是设计的一部分,不是bug。
也正因如此,给Claude明确的验证标准特别重要。循环需要一个停止条件。如果你的需求描述模糊,它不知道
什么时候算「做完了」,就会不停地循环下去,改来改去。告诉它「测试通过就停」或「生成文件就行」,它收
敛的速度会快很多。
技术栈:终端里的React
一个有趣的事实:你在终端里看到的Claude Code界面,其实是React组件渲染的。
Claude Code运行在Bun上(不是Node.js),用React的Ink框架来渲染终端UI。全部用严格模式TypeScript编
写,Schema验证用的是Zod。入口文件压缩后785KB,对一个终端工具来说体量不小,但也说明了它的功能密
度。
为什么这个信息有用?因为它解释了Claude Code为什么能有那么丰富的交互体验。权限确认弹窗、多行代码
高亮、进度指示器,这些在传统终端工具里很难做到的东西,用React的组件模型就自然了。你感受到的「流
畅」不是错觉,是工程选型的结果。
40+工具,4个能力原语
65. Claude Code内部有40多个工具,每个都有独立的权限控制。但如果你退后一步看,所有能力其实归结为4个原
语:
原语做什么典型工具
Read读文件、读代码、搜索内容Read、Grep、Glob
Write写文件、编辑代码Write、Edit
Execute运行命令、执行脚本Bash
Connect连接外部服务MCP工具、WebFetch
这个设计挺巧妙的,关键在Bash工具。它是一个万能适配器,让Claude能使用人类开发者的一切命令行工具。
不需要给每种编程语言做专门集成,不需要为每个框架写插件。 npm install 、 python test.py 、 git
push ,通过Execute + Bash就能操作一切。这也是Claude Code能在几乎任何技术栈的项目里工作的原因,不
像某些IDE插件只支持特定语言。
上下文压缩:为什么长对话会「遗忘」
你可能遇到过这种情况:和Claude聊了很久之后,它突然忘了你之前说过的某个要求。或者你手动执
行 /compact 之后,它对某些细节变得模糊了。这不是它在敷衍你。
当上下文窗口快满的时候,系统会把整个对话历史压缩成一段摘要文本。这段摘要成为下一轮对话的起点,之
前的原始对话就丢掉了。压缩是有损的。核心信息会保留,但具体措辞、边角细节、你当时的语气暗示,这些
很容易在压缩过程中丢失。
更要命的是:长会话如果经历了多次压缩,信息损失会累积。每压缩一次就损失一点,几次之后,最早的上下
文可能只剩一个模糊的影子。
核心建议
实操建议:重要的约束和要求,写进CLAUDE.md而不是只在对话里说一次。对话会被压缩,但CLAUDE.md每
次都会重新读取。这也呼应了前面「三层模型」里的结论:把信息沉淀到Context层。
权限系统:不只是Yes/No
Auto模式背后不是简单的全放行。系统内部有一个分类器,把每个操作的风险分成LOW、MEDIUM、HIGH三
级。读文件通常是LOW,直接放行;写配置文件是MEDIUM或HIGH,需要你确认。
有些文件被硬编码为受保护状态: .gitconfig 、 .bashrc 、 .zshrc 这些系统级配置,无论什么权限模式都会
额外小心。甚至还有路径穿越攻击的防御机制,防止恶意代码通过unicode字符或大小写混淆绕过权限检查。
每次弹出权限确认时,你看到的那段解释文字不是预设的模板,是实时生成的。系统会单独调用一次LLM来生
成这段说明。所以每次的措辞都略有不同,这不是不稳定,是设计如此。
66. 自动记忆维护
Claude Code有一个后台子代理,会定期整理你的记忆文件(也就是CLAUDE.md和相关配置)。它分四步走:
审阅现有内容、提取新的有用信息、整合重复条目、修剪过长的部分。目标是把记忆保持在合理大小内,大约
200行左右。
这就是为什么长期用Claude Code之后,你会觉得它越来越「懂你」。不完全是模型变聪明了,而是你的偏好、
习惯、项目上下文,都被这个记忆系统慢慢积累和维护着。
理解Claude Code的内部机制不是为了把它当黑盒拆开。而是当你知道循环怎么转、上下文怎么压缩、权限怎
么判断之后,你就能更好地和它协作。就像开车不需要懂发动机原理,但懂了之后你会知道什么时候该换挡。
身份在变:从写代码到构建产品
这个变化比大多数人预期的要快。
Boris Cherny,Claude Code的创建者,公开说过自己超过90%的代码都由Claude Code生成。他的日常更多
是:描述需求、审查输出、做架构决策。他有句话挺有意思:「我现在的工作更像是一个有技术判断力的产品经
理。」
我自己的经历更极端。我从未手写过代码,所有产品都是用AI构建的,包括小猫补光灯(AppStore付费榜Top
1)。很多人听到会觉得不可思议,但真正用过Claude Code你就知道这完全合理。决定一个产品好不好的,从
来不是代码有多精妙,而是需求定义得有多准确、用户体验有多流畅。
这意味着关键能力正在发生转移:
旧能力(重要性下降)
新能力(重要性上升)
语法熟练度
需求拆解能力
框架API记忆
架构判断力
手动调试技巧
输出质量评审
代码模板积累
产品品味
注意,我说的是「重要性下降」而不是「没用」。理解代码仍然有价值,它能帮你更好地描述需求、更准确地评
审输出。但你不再需要能从零手写一个完整应用,你需要的是能判断一个应用写得好不好。
这个转变的核心问题是:从「怎么写」到「写什么」。
以前,你可能花80%的时间在「怎么实现这个功能」上,20%在「应该做什么功能」上。现在比例倒过来了。
Claude Code解决了「怎么写」的问题,但「写什么」这个问题,它帮不了你太多。你需要自己想清楚:这个
产品解决什么问题?目标用户是谁?核心体验是什么?哪些功能必须有,哪些可以砍掉?
67. 核心建议
如果你正在焦虑「AI会不会取代我」,可以换个角度想:学会定义需求、设计交互、评审质量。这些能力不会因
为AI变强而贬值。
迭代这么快,怎么跟
回看Claude Code的功能时间线,迭代速度确实很快:
2024.11 MCP协议发布,Claude Code获得连接外部服务的能力
2025.02公开发布Beta版,从内部工具变成公共产品
2025.05GA正式发布,稳定性大幅提升
2025.07 SubAgents上线,Claude可以启动子进程并行工作
2025.09Hooks机制引入,事件驱动的自动化成为可能
2025.10 Skills系统发布,社区可以共享和复用能力包
2026.02Agent Teams正式推出,多Agent协作进入实用阶段
2026.03Computer Use上线,Claude获得操作屏幕的能力;Voice Mode让你对着终端说话
2026.03源码意外公开,社区首次窥见Agent系统的完整架构
平均每2个月一个大功能。这意味着你手上这本手册的某些具体操作步骤,可能在3个月后就需要更新了。
怎么跟上?我推荐几个稳定的信息渠道:
官方第一手信息:
Claude Code官方changelog:每次更新都有详细说明
Anthropic官方博客:重大功能发布会配深度文章
Anthropic Academy:十余门免费课程,覆盖从基础到进阶
创建者和团队的分享:
Boris Cherny的X账号(@bcherny):Claude Code创建者,经常分享使用技巧和设计思路
howborisusesclaudecode.com:Anthropic官方的实践指南页面
「How Anthropic Teams Use Claude Code」白皮书:官方团队的真实工作流
高质量播客访谈(了解设计哲学):
Lenny's Podcast:Boris深度谈产品设计和AI编程的未来
68. Pragmatic Engineer:技术视角的深度对话
YC Lightcone:创业者视角,聊AI工具如何改变构建产品的方式
注意
不要试图跟踪每一个小更新。时间应该花在用工具构建东西上,不是花在研究工具本身上。每月花30分钟浏览
一次changelog就够了。
真正该关注的不是具体功能变化,而是方向。过去一年半的演进,有三条线索始终没变:
1. 自主性持续增强。从需要你逐步指令,到能自主规划和执行。
2. 上下文窗口持续扩大。从8K到200K到1M,Claude能「看到」的项目规模越来越大。
3. 协作模式持续丰富。从单Agent到SubAgents到Agent Teams,多Agent协作越来越自然。
这意味着你今天学的「怎么和AI协作」不会过时。具体命令可能变,但「描述需求→审查输出→迭代改进」这
个核心循环,在可预见的未来不会变。
推荐资源
如果你读完这本手册想继续深入,以下是我精选的资源清单。不多,但每一个都值得花时间。
必读
资源类型为什么推荐
Claude Code Best Practices官方文档所有技巧的权威来源,定期更新
DeepLearning.AI x Anthropic系列课程视频课程Andrew Ng团队和Anthropic联合出品,体系化学习
Anthropic Academy免费课程十余门免费课程,覆盖Prompt Engineering到Agent开发
How Anthropic Teams Use Claude Code白皮书官方团队的真实工作流,不是理论是实践
进阶
69. 资源类型为什么推荐
awesome-claude-codeGitHub仓库社区整理的插件、Skills、最佳实践合集
Claude Code Ultimate Guide社区文档实战技巧汇总,很多是官方文档没覆盖的边界场景
howborisusesclaudecode.com官方页面Boris本人的完整工作流,持续更新
Boris on Lenny's Podcast播客「coding is solved之后会发生什么」深度对话
Boris on Pragmatic Engineer访谈从side project到核心工具的演变过程
最后
写这本手册的时候,我时不时会想:AI编程的终局是什么?
想了很久也没想明白。但有一件事我比较确定:过去一年多,我用Claude Code构建了十几个产品,从iOS应用
到Chrome扩展到PDF生成工具。每一个产品最终的质量,都不是由AI的能力上限决定的,而是由我对「什么是
好的」的判断决定的。
AI可以在30秒内写出一个登录页面。但是否需要登录页面、登录后应该看到什么、什么样的体验才算流畅,这
些只能由人来判断。
所以我的建议就一条:别花太多时间研究工具,去构建东西。找一个你真正想解决的问题,打开终端,开始和
Claude对话。遇到卡住的地方翻翻这本手册,翻完继续做。
从想法到产品的距离,现在短到你可能还不太适应。
70. 附录A 51万行代码告诉我们的事
What 510,000 Lines of Code Told Us
2026年3月底,Claude Code的完整源码意外泄露。作为一个每天都在用这个工具的人,我花了不少时
间翻看这些代码。以下是我觉得最值得知道的东西。
一次教科书级的打包失误
2026年3月31日,安全研究员Chaofan Shou在npm上发现了一个异常:Claude Code的v2.1.88包体积达到
59.8MB,比正常版本大了好几倍。原因是 .npmignore 文件没有排除 .map 文件,导致完整的source map被一
起打包发布了。
Source map是什么?它是编译后的代码和原始源码之间的映射文件。有了它,任何人都能还原出原始的
TypeScript代码。这一次泄露涉及大约1900个TypeScript文件,总计51万行代码。
Anthropic在几小时内紧急下架了这个版本,但GitHub上已经出现了多个mirror仓库。代码在互联网上传开了。
我觉得最讽刺的一点是:在这些源码里,有一套完整的「Undercover Mode」防泄露系统,专门用来隐藏AI参
与的痕迹。结果真正的泄露,是因为打包脚本少写了一行。这大概就是软件工程最经典的故事模式:最精密的
防御往往败给最基础的疏忽。
需要澄清的是,这次泄露不涉及模型权重、训练数据或任何用户信息。泄露的纯粹是客户端工具代码,也就是
你电脑上跑的那个CLI程序。
技术栈:一些出乎意料的选择
翻看代码首先注意到的是技术选型。有些选择在意料之中,有些则让我挺惊讶的。
组件技术选择值得说的
运行时Bun不是Node.js
UI框架React + Ink终端里跑React
语言严格模式TypeScript全面的类型安全
Schema验证Zod v4运行时类型检查
入口文件main.tsx编译后785KB单文件
71. 为什么选Bun不选Node.js?一个字:快。Claude Code需要频繁启动子进程、读写文件、处理大量并发请求。
Bun在这些场景下的性能比Node.js好不少,冷启动速度尤其明显。对于一个命令行工具来说,每次敲回车到看
到响应之间的那几百毫秒延迟,直接影响使用体验。
更有意思的是用React来渲染终端界面。为什么不直接用console.log拼字符串?因为Claude Code的终端UI其实
很复杂:有实时更新的进度条、可折叠的代码diff、权限确认弹窗、多层嵌套的工具调用展示。这些东西的状态
管理需求,和Web前端本质上是同一个问题。React + Ink让他们可以用组件化的思路来构建终端界面,而不是
写一堆面条代码去手动刷新屏幕。
代码规模也值得一提:仅工具系统就有29,000行,查询引擎有46,000行。这是一个严肃的工程项目,不是随便
写的脚本。
Agent循环:TAOR是核心
Claude Code的核心工作循环叫TAOR:Think-Act-Observe-Repeat。你在终端里输入一句话后发生的所有事
情,都是这个循环在驱动。
Think
理解意图
制定计划
Act
Observe
Repeat
检查结果
继续or结束
→ 选择工具
→
→
执行操作
判断状态
调整策略
为什么有时候你让Claude做一件事,它要「绕几步路」才到终点?因为TAOR循环不是一次性执行的。每做一
步,Claude都要重新观察结果、重新判断下一步该做什么。它不是在执行预设的脚本,而是在实时做决策。这
和人的工作方式其实很像:你也不会写代码前就在脑子里想好每一行,而是写一段、跑一下、看结果、再调
整。
Claude Code内置了40多个工具,但如果你仔细看,所有工具其实都可以归纳为四个能力原语:Read(读取信
息)、Write(写入文件)、Execute(执行命令)、Connect(连接外部服务)。其中Bash工具是个万能适配
器,任何系统命令都可以通过它执行。这也是为什么Claude Code经常选择用Bash来完成任务,即使有专门的
文件读写工具可用。灵活性是它最大的武器。
上下文管理是另一个设计亮点。Claude Code把系统提示词做成了模块化的结构:有些部分是静态的,可以被
缓存(比如工具定义、基本指令),有些部分是动态刷新的(比如当前git状态、CLAUDE.md的内容)。静态部分
利用Anthropic的Prompt Caching节省token,动态部分确保信息实时准确。
还有Context Compaction的实现。当对话太长、上下文快要溢出时,Claude Code会自动调用一次「压缩」:
让模型总结之前的对话内容,用更短的文本替代完整历史。这是个有损操作。所以长对话效果下降不是你的错
觉,是因为压缩过程中一些细节确实会丢失。知道这一点,你就理解了为什么定期开新会话是个好习惯。
权限系统:比你想的复杂得多
Claude Code的权限系统比我预想的要复杂很多。不是简单的「允许/拒绝」二选一,而是一个三层模型:
72. 模式行为适合场景
Interactive每个操作都弹窗确认初学者/敏感项目
Auto安全操作自动执行,危险操作要确认日常开发
YOLO几乎所有操作自动执行受信任的环境/CI
YOLO模式(对,Anthropic真的就叫这个名字)背后有一个ML驱动的分类器。它把每个操作的风险分成三级:
LOW、MEDIUM、HIGH。比如读取一个文件是LOW,执行 rm -rf 是HIGH。分类器不是简单的规则匹配,而是
一个真正的机器学习模型,考虑命令内容、目标路径、当前项目上下文等多个因素。
防御层面也做得很细致。源码中有一份受保护文件列表,包括 /etc/passwd 、 ~/.ssh 、 ~/.aws/credentials
这些敏感路径。更有意思的是路径穿越防御:代码会检测unicode编码绕过(比如用零宽字符混淆路径)、大小
写变体攻击(在Windows上 C:\Windows 和 c:\windows 是同一个路径)、反斜杠注入等手法。
还有一个细节让我印象深刻:每个权限决策都会调用一次独立的LLM来生成解释。就是说当Claude拒绝你某个
操作的时候,那段解释文字不是预设的模板,而是模型实时生成的。这保证了解释的针对性,但也意味着每次
拒绝都花了额外的token。安全不是免费的。
藏在Feature Flags里的未来
源码里最好玩的部分,可能是那些还没上线的功能。通过feature flags可以看到Anthropic在做什么、在想什
么。我挑几个聊聊。
KAIROS是一个始终在线的后台助手。和现在你需要主动打开终端、输入指令不同,KAIROS会在后台持续运
行,监听GitHub webhook,在有新PR、新Issue、CI失败时主动介入。
它有一个15秒的「阻塞预算」,每次主动操作最多占用15秒计算资源,超过就自动排队。还有追加式日志,记录
它在你不看的时候都做了什么。如果上线,AI助手就从「你找它」变成「它主动帮你」。
ULTRAPLAN是把复杂规划任务卸载到云端。本地Claude Code有响应时间限制,但有些任务真的需要深度思
考。ULTRAPLAN允许你把规划任务发到云端的Opus 4.6,给它最长30分钟的思考时间。去喝杯咖啡回来看结果
就行。Anthropic很清楚一件事:不是所有问题都能靠更快的响应来解决,有些问题就是需要慢慢想。
Coordinator Mode是一个四阶段的多Agent编排器。代码里能看到清晰的四个阶段:Research(调研)→
Synthesis(综合)→ Implementation(实现)→ Verification(验证)。每个阶段可以启动不同数量的子
Agent并行工作。这比现在的Agent Teams更结构化,更像一个真正的项目经理在调配团队。
然后是BUDDY,一个Tamagotchi风格的AI宠物系统。18个物种、5个稀有度等级、确定性的gacha抽卡机制。
代码写得还挺认真的,不像是一个随手加的实验。这可能是Anthropic的愚人节彩蛋(泄露时间恰好是3月31
日),但也可能是团队在认真思考一个问题:怎么让命令行工具不那么冰冷?让用户和AI之间建立某种情感连
接?
73. 其他还有一些值得关注的flag:交错思维模式(让模型在生成过程中穿插推理步骤)、1M上下文窗口支持(当前
默认是200K)、可休眠Agent(暂停和恢复长时间运行的任务)。每一个都暗示着Claude Code的演进方向。
那些引发争议的设计
代码泄露后,社区讨论最激烈的不是技术架构,而是几个设计决策背后的价值观问题。
Undercover Mode允许Anthropic员工在公共开源仓库工作时自动隐藏AI参与的痕迹。具体做法是:当检测到
当前仓库是公共仓库且用户是Anthropic员工时,自动移除commit message中的AI共创标记。社区的反应很两
极:一方认为AI在开源贡献中应该透明标注,这是对其他贡献者的尊重;另一方认为代码质量才是唯一标准,
谁写的不重要。这个辩论本身就很有意思,因为它触及了一个更大的问题:在AI时代,「作者」这个概念到底意
味着什么?
Anti-Distillation是另一个有趣的机制。Claude Code在运行时会注入一些伪造的工具定义,这些定义看起来像
真的但实际上是错的。目的是防止竞争对手通过抓取Claude的输出来蒸馏训练数据。如果有人直接把Claude
Code的请求和响应拿去训练自己的模型,这些错误定义就会「污染」训练数据。手段有效但有争议:这算正当
防御还是数据投毒?
情绪检测可能是最让人意外的发现。Claude Code会用正则表达式检测用户消息中的负面情绪,比如挫败感、
愤怒。为什么用正则而不用LLM来做情绪分析?答案很务实:正则比LLM调用快10000倍,而且结果是确定性
的。检测到负面情绪后,Claude会调整自己的语气,变得更耐心、更具体。这是一个工程上的好选择,但也让
人思考:AI在你不知道的情况下「读你的情绪」,你介意吗?
我的判断:这些争议的存在本身就说明一件事。AI工具已经不只是技术产品了,它正在进入需要讨论伦理边界
的阶段。就像社交媒体当年经历的那样:先是「这个东西好方便」,然后是「等等,它在收集我什么数据?」
Claude Code走到了同样的十字路口。
这对你意味着什么
如果你是普通用户,理解这些内部机制能帮你更好地使用工具。TAOR循环解释了为什么Claude有时候要多试几
步才能完成任务,这不是「犯错」,是「迭代」。Context Compaction的有损特性解释了为什么长对话效果下
降,也解释了为什么隔一段时间开个新会话是个好策略。权限系统的三层模型让你能根据场景选择合适的信任
级别,不用非得在全手动和全自动之间二选一。
如果你是开发者,Claude Code的架构值得认真看。这可能是目前能看到的最成熟的AI Agent系统实现。TAOR
循环的设计、工具系统的抽象方式、上下文管理的分层策略、权限模型的风险分级,每一个都是可以借鉴的工
程模式。你不需要从零开始设计自己的Agent系统,这51万行代码已经趟过了大量的坑。
最后说一个我觉得值得记住的观点。这次泄露虽然是意外,但它客观上做了一件好事:让更多人理解了AI
Agent系统到底是怎么工作的。在此之前,大部分用户对Claude Code的认知停留在「一个很聪明的命令行工
具」。现在我们知道了它背后有多少工程细节、多少权衡取舍、多少未来可能性。这种理解让人对工具更有信
心,也更有敬畏。
74. 毕竟,你理解一个工具的能力上限和设计逻辑,才能真正把它用好。
75. Claude Code从入门到精通
AI编程:从入门到精通
花叔 · AI进化论-花生
面向工程师与产品经理的AI编程完全指南
基于Anthropic官方文档与Boris Cherny公开分享编写
加入知识星球 →
本手册持续更新中
获取最新版本:飞书文档(点击查看)
B站:AI进化论-花生 · 公众号:花叔 · X/Twitter · YouTube · 小红书 · 官网
Created by 花叔 · v2.0 · 2026年4月
本手册仅供学习交流使用,内容基于公开资料整理,不构成任何商业建议。