Claude Code:AI编程工具的革命性进化
引言
AI编程工具在三年内经历了三次重大变革:从GitHub Copilot的代码补全,到Cursor的对话式编程,再到Claude Code的终端Agent模式。这不仅是技术的进步,更是人与AI协作关系的根本转变——你的角色从”写代码的人”变成了”给指令的人”。
Claude Code是什么
Claude Code是Anthropic推出的AI编程助手,与传统IDE集成的AI工具不同,它直接在终端运行,能够自主规划步骤、读写代码、执行命令、操作git,完成完整的开发循环。Boris Cherny(Claude Code创建者)公开表示,使用Opus 4.5后就再也没有手写过一行代码,47天里有46天都在使用。
核心差异:
- 运行环境:终端原生,直接操作操作系统,而非嵌入IDE
- 自主程度:可完全无人值守运行,不需要持续监督
- 记忆系统:通过CLAUDE.md文件提供显式的项目记忆
- 并行能力:原生支持多实例并行工作
如何更好地使用大模型能力
1. 进阶对话技巧:让AI真正理解你
具体化原则:三要素缺一不可
- 指定文件和路径:不要说”做个登录功能”,要说”在
src/auth/目录下新增Google OAuth登录,用Better Auth库,参考现有的GitHub登录实现方式” - 指向已有模式:项目里已有写得好的代码就是最好的范本。”看
src/components/UserWidget.tsx的实现方式,照着做一个CalendarWidget” - 描述症状而非原因:遇到bug说”用户在session超时后登录失败,请检查
src/auth/下的token刷新流程”,而不是猜测”token刷新逻辑有问题”
让Claude采访你
对于复杂功能,不要一上来就写需求文档。先让Claude采访你:
1 | 我想做一个支付功能,在动手之前,先采访我, |
Claude会问:支持哪些支付方式?需要处理退款吗?并发量预估多少?这些问题中至少有一半是你自己没考虑过的。采访结束后,让Claude整理成Spec,然后开新会话执行,避免采访过程的对话历史占用上下文。
Context Engineering:信息不是越多越好
上下文太多,模型表现反而变差。核心原则是给对的信息,而不是所有信息:
- 用
@src/utils/auth.ts引用特定文件 - 粘贴截图说明UI问题(比文字描述准确10倍)
- 用
cat error.log | claude直接pipe数据 - 给URL让Claude读取(比复制粘贴更好)
Effort级别:别省这个钱
Claude Code有四个effort级别(Low/Medium/High/Max)。Boris的做法是从不把它调低。理由很简单:Low做错了,你纠正它花的时间可能比直接用High做对还长。High级别让Claude想得更深,需要返工的次数更少,总体效率反而更高。
2. Plan模式:先想清楚再动手
Plan模式让Claude只规划不执行,你可以在这个阶段反复讨论方案、调整细节。Boris推荐的黄金工作流是:
- Plan模式下描述需求,来回讨论
- 用编辑器(Ctrl+G)写详细的执行指令
- 切换到执行模式,开启Auto-accept
这个流程的精髓在于:把纠结放在Plan阶段解决完,执行阶段一气呵成。边做边改、反复返工是最浪费tokens的用法。
3. Auto模式:更安全的自动驾驶
Auto模式通过AI分类器替你做权限判断,安全操作自动放行,危险操作才拦截。它有两层防御:
- 输入层:Prompt Injection探测器扫描所有内容
- 输出层:Transcript分类器评估每个操作的风险(两阶段:快速判断+深度推理)
Auto模式会拦截的典型场景:
- 范围升级:你说”清理旧分支”,Claude把远程分支也删了
- 凭证探索:Claude遇到认证错误,开始自行搜索其他API token
- 绕过安全检查:部署预检失败,Claude用
--skip-verify重试 - 数据外泄:Claude想分享代码,自行创建了公开的GitHub Gist
4. CLAUDE.md:给AI一张地图
CLAUDE.md是Claude Code每次启动时自动读取的配置文件,被称为agent的”宪法”。关键原则:
- 从护栏开始:不要写百科全书,每次Claude犯错就加一条规则
- 保持精简:Boris团队的CLAUDE.md只有约2500 tokens(100行左右)
- 写对的内容:Claude能从代码读出来的不要写,猜不到的必须写
CLAUDE.md层级结构
1 | ~/.claude/CLAUDE.md # 全局级:所有项目共用的偏好 |
这个文件会形成迭代飞轮:Claude犯错 → 记录到CLAUDE.md → 下次不再犯 → 错误率持续降低。
5. 会话管理:别让上下文变成垃圾场
核心命令速查
/clear:清空当前会话,切换到完全不相关的任务时使用/compact:压缩上下文,保留关键信息释放空间/btw:侧链提问,不污染当前上下文Esc × 2:Rewind回滚,恢复对话/代码/两者
何时该用/clear
修完API bug → /clear → 开始前端组件任务。如果不clear,Claude的上下文里还残留着大量关于那个API bug的信息,会干扰它对新任务的理解。
上下文压缩的代价
长对话中Claude会压缩上下文来节省token。压缩是有损的:核心信息会保留,但具体措辞、边角细节、你的语气暗示容易丢失。重要的约束和要求,写进CLAUDE.md而不是只在对话里说一次。
扩展能力:从单兵到团队
Skills:可复用的工作流包
Skills是最容易上手的扩展方式。在.claude/skills/目录下创建SKILL.md文件,Claude会根据上下文自动加载。
两种类型
- 知识型Skills:告诉Claude”这个项目里的事情应该怎么做”。比如API规范、编码风格、项目约定
- 工作流型Skills:告诉Claude”遇到这种任务按什么步骤执行”。比如
/fix-issue(修bug的标准流程)、/review-pr(代码审查流程)
实战案例:创建/techdebt命令
把”发现技术债 → 评估影响 → 创建issue → 关联到sprint”这个流程写成skill:
1 | # .claude/skills/techdebt/SKILL.md |
以后发现技术债时,直接输入/techdebt,Claude会自动走完整个流程。
安装社区Skills
Boris整理了一套高频使用的skills:
1 | mkdir -p ~/.claude/skills/boris && \ |
Hooks:从建议到强制执行
Skills vs Hooks的本质区别
- CLAUDE.md和Skills是建议,Claude会尽量遵守但遵从率不是100%
- Hooks是强制执行,Claude无法跳过或忽略
生命周期钩子
1 | { |
实用案例
- 自动格式化:每次Claude编辑文件后自动跑eslint,不依赖Claude”记住”要格式化
- 智能权限批准:用脚本判断操作类型,低风险的(读文件、运行测试)自动批准,高风险的(删除文件、推送代码)仍然弹出确认
- 上下文压缩后注入:长对话中Claude会压缩上下文。PostCompact hook可以在压缩后自动重新注入关键规则,确保Claude不会”失忆”
- 推动Claude继续:有时Claude会在复杂任务中途停下来问”要继续吗?”。Stop hook可以检测这种情况,自动让Claude继续执行
让Claude帮你写Hooks
不需要自己从零写。直接告诉Claude:
1 | Write a hook that runs eslint after every file edit |
它会帮你生成配置并写入.claude/settings.json。
MCP:连接外部世界的USB接口
MCP(Model Context Protocol)是Anthropic推出的开放标准,让AI工具能连接外部数据源和服务。
添加MCP服务器
1 | # 添加Slack MCP |
实用MCP推荐
| MCP | 能力 | 适用场景 |
|---|---|---|
| Slack MCP | 搜索/发送消息 | 让Claude自动同步进度、回复问题 |
| 数据库MCP | 直接查询数据库 | 不用手动复制SQL结果 |
| Figma MCP | 读取设计稿 | 把设计直接转成代码 |
| Sentry MCP | 获取错误日志 | Claude自动定位线上bug |
| GitHub MCP | 操作仓库/Issue/PR | 自动化项目管理 |
Boris的自动化Bug修复流程
接入Slack MCP + GitHub MCP后:
- 有人在Slack里报告bug
- Claude自动读取bug描述
- 找到相关代码
- 尝试修复
- 提交PR
- 在Slack里回复”已修复,PR链接在这里”
整个过程不需要人工介入。
MCP配置文件
1 | // .mcp.json |
配置文件可以提交到Git,团队成员clone后自动获得相同的MCP配置。
Plugins:打包好的扩展包
Plugins是Skills + Hooks + MCP的组合打包。在Claude Code里输入/plugin浏览插件市场。
示例:代码智能Plugin
一个Plugin可能同时包含:
- 一个skill:告诉Claude如何利用符号导航理解代码结构
- 一个hook:编辑后自动运行类型检查
- 一个MCP:连接语言服务器获取精确的符号信息
一键安装,三者配合让Claude在理解和修改代码时更准确。
Slash Commands:带预计算的快捷入口
Commands存在.claude/commands/目录中,可以包含内联的Bash脚本来预计算信息:
1 | # .claude/commands/commit-push-pr.md |
- 生成commit message并提交
- 推送到远程分支
- 创建Pull Request,标题基于commit内容
注意:PR描述要包含变更摘要。
1 |
|
每次运行claude --worktree,Claude Code会自动创建一个新的worktree、切到一个新分支,然后在那个隔离环境中工作。
Subagents:给主session叫个帮手
并行session适合处理互不相关的独立任务。Subagents解决的是另一个问题:在当前任务中调一个”专家”来处理特定环节。
定义Subagent
1 | # .claude/agents/security-reviewer.md |
Subagents的核心价值:独立上下文
每个subagent运行在自己的上下文窗口中,不消耗主session的上下文空间。当主session的对话已经很长、上下文快要满了的时候,调用一个subagent来处理子任务,相当于开了一个新的”思考空间”。
你甚至可以在prompt中加上”use subagents”,让Claude主动判断什么时候该把子任务分配给subagent。
Agent Teams:让它们自己协调
Agent Teams是Claude Code最强大的协作模式,核心理念:不是你来协调多个agent,而是让agent自己协调。
Writer/Reviewer模式
1 | 1. Writer Agent 写代码 |
这个模式比单个agent写代码好不少。原因和人类团队一样:写代码的人容易陷入自己的思路,审代码的人能从不同角度发现问题。
Coordinator Mode:四阶段协调
复杂任务会自动走四个阶段:
- Research(调研):多个worker并行调查代码库
- Synthesis(综合):coordinator综合发现生成规格说明
- Implementation(实现):worker按规格做精准修改
- Verification(验证):验证结果
你不需要手动配置这个流程,Agent Teams会根据任务复杂度自动判断。
Fan-out批处理:人海战术的AI版
非交互模式
1 | # 非交互模式执行单个任务 |
注意末尾的&:这让每个Claude实例在后台并行运行。如果有50个文件要迁移,50个Claude同时跑,可能几分钟就完成了原本需要一整天的工作。
/batch命令
1 | 1. 交互式规划 |
这种模式特别适合大规模重构、代码迁移、批量修复等场景。
异步和远程执行
Remote Control
生成一个连接链接,在手机上打开这个链接,就能远程创建和管理本地的Claude session。适合通勤路上想启动一个任务、出门前让Claude跑起来的场景。
/schedule:云端定时任务
1 | /schedule "Check for outdated dependencies and create PRs" |
设定定时触发的Claude任务,在云端执行。电脑关机了任务照样按时跑。适合日常维护类工作:依赖更新、安全扫描、日报生成。
/loop:本地长时间运行
有些任务要跑很长时间(监控CI状态、持续集成测试)。/loop让Claude在本地最多无人值守运行3天。
异步工作的心智转变
传统开发是同步的:你写代码、跑测试、等结果。异步模式下,睡觉前启动一批任务,早上起来review结果。把AI当成”夜班团队”,白天你定方向做决策,晚上它执行。
实战经验
五条核心建议
- 需求拆小:每次只给一步,验证通过再进下一步
- 先跑通最小功能:不要一开始就追求完美
- 验证比开发更重要:每完成一个模块立刻测试
- 及时开新session:避免上下文污染
- 产品感知是最大杠杆:AI能让执行速度提升10倍,但方向错了就是以10倍速度走向错误
三层模型:时间该花在哪
Claude Code的所有能力可以归入三个层次:
Prompt层:你说的话
- 每次对话都要重新投入
- 一次性回报
- 初学者把所有精力都花在这里
Context层:AI能看到的信息
- CLAUDE.md文件、项目文件结构、git历史
- 写一次持续生效
- 复利回报
Harness层:自动化环境
- Skills、Hooks、MCP、Agent Teams
- 搭一次永久运行
- 指数回报
比喻:Prompt是你开口说话,Context是你提前准备好的PPT,Harness是你搭建的整个舞台。观众(Claude)的表现,取决于这三层的综合质量。
核心原则:把时间花在构建Context和Harness上,而不是优化Prompt。
六个坑,你大概率会踩
| 陷阱 | 表现 | 解决方案 |
|---|---|---|
| 一个会话什么都塞 | 修bug、加功能、重构代码、写文档全在一个会话里 | 一个会话聚焦一个任务,做完就/clear |
| 反复纠正,越改越偏 | Claude做错了一步你纠正,改了又错另一个地方 | 纠正两次不行,果断/clear重来 |
| 看着像对的就接受了 | Claude写了一大堆代码,输出看着挺合理就接受了 | 每一轮改动都实际运行一次 |
| 过度微操 | Claude每写一个文件你都要看、每改一行代码你都要评论 | 关注结果,让Claude把完整任务做完 |
| 需求模糊 | “帮我优化一下这个代码””让这个页面好看点” | 给具体的、可验证的需求 |
| 不写CLAUDE.md | 项目根目录没有CLAUDE.md,或者有但从不更新 | 每次Claude犯错就加一条规则 |
引擎盖下的Claude Code
TAOR循环:Think-Act-Observe-Repeat
Claude Code的核心工作循环:
1 | Think(分析当前状态,决定下一步) |
这解释了为什么Claude有时候要”绕几步路”才到终点。它不是在执行预设的脚本,而是在实时做决策。每做一步,都要重新观察结果、重新判断下一步该做什么。
40+工具,4个能力原语
Claude Code内部有40多个工具,但所有能力归结为4个原语:
- Read:读文件、读代码、搜索内容(Read、Grep、Glob)
- Write:写文件、编辑代码(Write、Edit)
- Execute:运行命令、执行脚本(Bash)
- Connect:连接外部服务(MCP工具、WebFetch)
Bash工具是万能适配器,让Claude能使用人类开发者的一切命令行工具。不需要给每种编程语言做专门集成,通过Execute + Bash就能操作一切。
上下文压缩:为什么长对话会”遗忘”
当上下文窗口快满时,系统会把整个对话历史压缩成一段摘要文本。压缩是有损的:核心信息会保留,但具体措辞、边角细节、你的语气暗示容易丢失。
长会话如果经历了多次压缩,信息损失会累积。每压缩一次就损失一点,几次之后,最早的上下文可能只剩一个模糊的影子。
实操建议:重要的约束和要求,写进CLAUDE.md而不是只在对话里说一次。对话会被压缩,但CLAUDE.md每次都会重新读取。
身份转变:从写代码到构建产品
关键能力的转移
使用Claude Code后,关键能力正在发生转移:
| 旧能力(重要性下降) | 新能力(重要性上升) |
|---|---|
| 语法熟练度 | 需求拆解能力 |
| 框架API记忆 | 架构判断力 |
| 手动调试技巧 | 输出质量评审 |
| 代码模板积累 | 产品品味 |
从”怎么写”到”写什么”——这是最根本的心智转变。
Boris的工作方式
Boris Cherny公开说过自己超过90%的代码都由Claude Code生成。他的日常更多是:描述需求、审查输出、做架构决策。他有句话挺有意思:**”我现在的工作更像是一个有技术判断力的产品经理。”**
一人公司成为可能
小猫补光灯做到App Store付费榜Top 1时,很多人问是不是有开发团队。答案是没有。从第一行代码到上架审核,全部是AI写的。
但这不意味着开发过程很轻松。关键在于:
- 需求拆小:每次只给一步,验证通过再进下一步
- 先跑通最小功能:不要一开始就追求完美
- 验证比开发更重要:每完成一个模块立刻测试
- 产品感知是最大杠杆:AI能让执行速度提升10倍,但方向错了就是以10倍速度走向错误
结语
Claude Code在2025年2月公开发布,5月正式GA,仅6个月就达到10亿美元年化收入。Netflix、Spotify、DoorDash等公司都在内部大规模使用。这不是极客的玩具,正在变成软件开发的标准方式。
一人公司的产品节奏:想法 → 1天做出MVP → 自己用3天 → 找10人测试 → 根据反馈迭代 → 上架。Claude Code覆盖的是”1天做出MVP”和”根据反馈迭代”这两步,其他步骤需要你的判断力。
从想法到产品的距离,现在短到你可能还不太适应。
参考资料:《Claude Code从入门到精通 v2.0》- 花叔