什么是克劳德
该 DOCX 包含不完整的 Office 元数据关系,已使用兼容模式恢复正文和媒体。
克劳德代码101
课程设置
课程概述
什么是Claude代码?
什么是Claude代码?
你的第一个提示
安装 Claude 代码
日常工作流程
探索→计划→代码→提交工作流程
定制 Claude 代码
CLAUDE.md 档案
问答
课程测验
关于本课程
视频
什么是Claude代码?
Claude Code 是一款代理编码工具,能够理解你的代码库,编辑你的文件,执行命令,并与现有的开发工具集成,帮助你更快地完成任务。它可以在你的终端、Visual Studio Code、Claude桌面应用、网页版以及JetBrains IDE中使用。
Claude Code 和 Claude 有什么区别?
如果你用过 Claude.ai,可能会想知道Claude Code有什么不同。与 Claude.ai 不同,Claude Code 可以直接访问你的文件、终端和整个代码库。它不再是来回复制粘贴代码,而是自己完成工作。
关键区别在于Claude Code作为AI代理工作。
什么是代理人?
人工智能代理是一种能够与环境交互并执行特定目标动作的软件。其核心是通过实时循环运行大型语言模型来实现。AI代理可以使用工具、外部服务,甚至其他AI代理来帮助实现目标。
Claude Code 到底能做什么?
实际操作中情况如下:
阅读并理解你的代码库。你可以让Claude Code解释某个功能,或者在代码中追踪一个bug。
编辑项目中的文件。Claude Code 可以重构函数并更新引用该函数的每个文件。
运行终端命令。它可以执行你的构建脚本,运行测试,安装包,并利用输出决定下一步该做什么。
上网搜索。如果需要文档或最新的 API 引用,它可以帮你查找。
有效使用 Claude 代码
要有效使用Claude代码,请记住以下三个概念:
上下文窗口。把这当作克劳德的工作记忆。它能装很多东西,但不能一次装所有东西。这就是“代理性”方面的作用——Claude 会在你的代码库中找到战略性的方法,在不把整个代码加载到上下文中。
它请求许可。默认情况下,Claude Code 会在执行命令或更改前先询问你。无论你喜欢亲自参与还是放手,你始终掌控全局。
它会犯错。就像任何工具一样,Claude Code 也不是完美的。它可能会误解你的意图,引入漏洞,或者过度设计解决方案。保持关注有助于你及早发现这些问题。
回顾
Claude Code 是一种代理编码工具。它读取你的代码库,编辑文件,执行命令,并连接外部工具,帮助你更快地发货。你今天就可以在终端、VS Code、JetBrains和Claude桌面应用中使用它。
Claude 代码的工作原理
Claude Code 不同于典型的聊天应用。了解它在底层的工作原理会帮助你更有效地使用它。
能动环
克劳德码最好通过智能循环来解释:
你在Claude代码中输入一个提示。
Claude通过与模型交互收集所需的上下文,模型返回文本或工具调用,Claude Code可以执行。
它会采取动作——例如编辑文件或执行命令。
它验证结果,判断是否达到了你提示的目标。
如果有,克劳德会完成并等待下一个提示。如果没有,它会循环重复,直到结果完整且可验证。
在这个循环中,你可以添加上下文、打断或引导模型,帮助它朝着目标前进。
背景
Claude 有一个上下文窗口,可以决定你能存储和引用多少对话内容、文件内容、命令输出等内容。一旦达到这个限制,Claude Code 会压缩你的对话——自动确定可以删除或总结的内容,将上下文窗口恢复到可用大小。
工具
工具是代理工作的基石。大多数AI助手只是接收文本,然后返回文本。工具让Claude Code决定何时执行代码,以更接近完成任务。这可以是文件读取工具、网页搜索工具,或其他多种功能。Claude Code 利用语义理解来判断何时调用工具以及如何使用输出。
权限
Claude Code 有多种权限模式:
默认行为:Claude 在编辑文件或运行 shell 命令前会要求明确的权限。
自动接受:文件编辑时无需征求同意,但命令仍需批准。
计划模式:使用只读工具在开始任何工作前编排行动计划。
这些都可以在你的设置文件里配置。跳过权限时要小心——让Claude代码自由运行命令,错误可能更难被发现。
回顾
Claude Code 结合了几个代理概念:代理循环、受管理的上下文窗口、工具和可配置权限——所有这些都在你的终端内。它可以读取你的代码库,采取行动,并验证自己的工作。这正是它与聊天窗口的根本不同之处。
安装 Claude 代码
无论你想在终端、网页端还是IDE中使用,Claude代码都很容易安装。
航站楼
在macOS、Linux或WSL上,使用curl命令一次性安装。如果你更喜欢自制内容,也可以用 ,但请注意这种方法不支持自动更新。brew install
在Windows上,有几个选项。在PowerShell中,使用命令。在CMD中,使用curl命令。还有一个 Winget 命令,但和 Homebrew 一样,它不会自动更新。Invoke-RestMethod
安装完成后,你应该能运行该命令。如果没有,重启终端。进入你的项目目录并运行:claude
claude
你需要经历一些初步设置步骤,比如选择颜色主题,并用你的Claude账号(Pro、Max或Enterprise)登录,或者使用API密钥登录。如果您的组织拥有Claude Enterprise账户,务必选择该选项。
无论你运行哪个目录,它都能访问该目录及其所有子文件夹。claude
Visual Studio Code
打开你的扩展面板,搜索“Claude Code”。找Anthropic带蓝色验证检查的扩展。点击安装。
安装后,你可能需要重启 VS Code。运行后,打开命令面板,搜索“Claude Code 在新标签页打开”。如果你侧边栏能看到Claude标志,也可以点击它。Ctrl/Cmd + Shift + P
VS Code 扩展提供了与终端非常相似的体验。你也可以选择退出界面,直接在设置中使用终端体验。
喷气脑
安装JetBrains市场的Claude Code插件。安装后,重启IDE。重新打开时,你会看到Claude的标志。点击它会打开一个终端界面,与编辑器协同工作。
桌面
安装并登录 Claude Desktop 后,你会在顶部看到一个标有“代码”的开关。界面和聊天界面类似,但允许你在特定文件夹中工作,更改权限,甚至在云环境中工作。
网络
在网页上,可以通过访问 ,或点击聊天应用侧边栏的“代码”标签访问 Claude Code。这和桌面应用类似,但你只能使用GitHub仓库。claude.ai/code
我应该用哪一个?
如果你想保持前沿,航站楼是最好的选择——功能先发货在那里。如果你更喜欢让 Claude Code 与代码编辑器更紧密结合,IDE 集成体验几乎相同。
桌面版很适合让Claude在后台运行,同时处理其他任务。
如果你想通过GitHub仓库远程做项目,Claude Code网页版是个不错的选择。
你想怎么用Claude代码,取决于你自己。
你的第一个提示
你和Claude Code交流就像和任何AI助手一样。在提交提示时,有一些可以保护你并让事情更轻松的事项需要考虑。
自动接受与批准
你可以选择 Claude 是否自动接受它建议的所有文件更改,还是每次都要求你明确授权。按键切换模式。Shift + Tab
审批方式:Claude 每次想编辑文件或执行命令时都会请求权限。
自动接受模式:文件编辑会自动批准,但命令仍需你的许可。
没有绝对的对错答案——关键是你觉得舒适。
计划模式
菜单中有计划模式。计划模式会根据你的提示,使用只读工具分析你的代码库并研究你建议的实现方案。它会在途中提出澄清问题,然后提交详细的执行计划。Shift + Tab
计划模式非常适合规划复杂变更或进行安全代码审查。很多时候你会要求Claude处理多步骤实现某个功能,而这正是《计划模式》的强项。
示例:添加暗色模式切换
让我们举个例子。假设你有一个应用程序需要暗模式切换。打开你项目的根目录并运行 。按几下进入计划模式,然后写出如下提示:claudeShift + Tab
My app needs a dark mode implemented across the entire app. Can you create a toggle switch on the header that allows a user to toggle between light mode and dark mode? I need you to find a good contrast color that works based on my existing light theme.
让克劳德来计划吧。在审核过计划后,如果看起来不错,就接受它,让Claude在每个步骤都征求你的批准。最后,你可以看到克劳德到底做了什么,以及它是如何得出结论的。
回顾
使用Claude代码时,尽量用提示词尽可能描述性。如果你想在每个环节都保持了解,你可以。使用计划模式让Claude在执行任何代码前,深入分析你想要实现的具体目标。
探索→计划→代码→提交工作流程
如果你从这门课程中带走一件事,那就是这个工作流程:探索、规划、编码和承诺。没有它,大多数人会直接让Claude写代码——这意味着后续还得修正更多方向。
探索与规划
处理这前两步最快的方法是使用计划模式。在计划模式下,Claude 无法编辑文件——它只能读取文件以收集关于实现方案的信息。
要进入套餐模式,请按直到看到文本输入下方的“套餐模式”。然后写一个提示,比如:Shift + Tab
I need to add WebP conversion to our image upload pipeline. Figure out where in the pipeline it should happen, whether we need new dependencies, and how to approach it.
Claude会阅读相关文件,进行一些网络搜索,并给你一个行动计划。审核一下,决定是否符合你的要求。如果没有,可以要求它修改具体区域。
这是修正方向的最佳地点,因为是在写代码之前。如果你只是想对代码库做个大致总结,而不打算之后做修改,也可以不在计划模式下运行探索子代理。
代码
一旦计划看起来良好,选择“批准”接受,让Claude处理清单项目。你可以选择Claude是自动接受文件编辑,还是每次都请求你修改。
Claude会尽力排查故障,然后才认为计划“完成”,但有时你需要介入。这就是使用计划模式的好处——执行后,你还能了解到结果的背景,这有助于引导克劳德的下一步决策。
一些让编程阶段更顺畅的建议:
定义一个成功标准。为了让Claude对结果充满信心,它需要明确“正确”是什么样子。在写计划时要明确说明这一点。
添加工具。帮助Claude完成目标的工具消除了大量的反复。比如,如果你在做网页界面,可以在Chrome扩展里安装Claude,这样Claude Code就能控制浏览器标签页,直接测试UI。
包含测试套件。给Claude一个可以持续验证的测试套件。Claude 甚至可以帮你写测试。在交接之前,确保检测是可靠的真实来源,以避免误报。
小贴士:如果你发现Claude一直遇到同样的问题,可以让它把解决方案保存到 CLAUDE.md 文件里。
提交
一旦你自己测试了更改并对结果满意,就可以推送你的代码了。在你承诺之前,先让一个子代理代码审查员检查你的作品。子代理对代码库有了全新的视角——它没有主代理可能存在的会话偏见。
然后让Claude生成你风格的提交消息。反复如此。
回顾
要有效使用Claude Code,请遵循探索、规划、编写和提交工作流程:
Explore为Claude提供了与你的项目相关的背景信息。
计划制定了克劳德用来衡量成功的行动计划。
代码是你和克劳德之间来回沟通,最终确定最终结果。
Commit 帮助你审查并推送代码,这样你就能开始开发下一个功能
情境管理
语境就是克劳德的工作记忆。它读取的每一个文件、执行的每一个命令、发送的每条消息——都占据了上下文窗口的空间。
什么是上下文窗口?
可以把上下文窗口想象成Claude内存中能容纳的空间。每当你输入提示,Claude读取文件、运行工具调用或收到工具调用结果时,这些都在上下文窗口中添加内容。由于空间有限,优化利用空间变得非常重要。
当上下文填满时会发生什么
当接近极限时,上下文窗口会自动压缩。压缩总结了重要细节,并剔除不必要的工具调用结果以释放空间。请注意,这个过程可能会丢失细节。
指挥
你可以用命令手动运行压实。这样可以压缩到那个点之前的所有东西。当你想腾出上下文空间,同时保留之前做过的内容时,这很方便。/compact
如果你想完全从头开始,完全不记得上一次会话,就运行。这样就能把所有东西都移除。/clear
要检查上下文状态,请执行命令。你会看到上下文大小的概览、占据最多空间的类别,以及一个可视化的分解图表。/context
何时使用哪种
一个通用的经验法则:
当你在开发某个特定功能且遇到上下文限制但需要继续时,使用/compact。保持上下文与你当前功能的相关性很重要。
想启动新功能时使用/clear。你不希望之前的对话给新事物带来偏见。对于你想让Claude在会话中记住的内容,可以放在你的 CLAUDE.md 文件里,这样它就不用从头重新发现。
节省上下文空间的技巧
具体点。一个模糊的提示可能看起来更小,但从长远来看,实际上会花费更多的上下文。没有明确的指令,Claude不得不更多地探索你的代码库并自行推理——这比详细提示占用更多的上下文空间。
管理你的MCP服务器。MCP服务器默认会把所有可用工具加载到上下文中,即使你没在用它们。如果你为当前项目设置了与当前项目无关的服务器,考虑关闭它们。你也可以试试“技能”,它类似于MCP服务器,但不会一开始就把所有内容加载到上下文中。
使用分代理剂。子代理与你的主代理并行运行,但有完全独立的上下文窗口。对于只需答案的任务——比如“认证端点在哪里?”——子代理会完成工作,只向主代理返回摘要,保持主上下文的干净。
回顾
在Claude代码中管理上下文至关重要。用来总结长时间的训练,也可以重新开始。要有效利用上下文窗口:具体提示,检查当前上下文中占用的是什么,并用子代理委派只需结果的任务。/compact/clear
代码审查
Claude Code 内置了一些功能,可以让你的 git 工作流程更快。我们来梳理一下。
与分代理的审核
在你推送PR之前,请让Claude用一个分代理审核你的更改。子代理在自己的上下文窗口中运行,视角焕然一新——它没有主代理那种用整个会话写代码的偏见。
创建代码审查子代理时,限制其只能使用只读工具。审核员应该标记问题,而不是编辑文件。把子代理配置导入你的仓库,这样整个团队都用同一个审核员。
/commit-push-pr 技能
该技能能在一键完成提交、推送和PR创建。不要手动完成,只需运行技能,Claude会帮你处理。/commit-push-pr
如果你的 Slack MCP 服务器配置了 CLAUDE.md 中列出的频道,它会自动将 PR 链接发布到你团队的频道。
与 –from-pr 的会话链接
当 Claude 通过 创建 PR 时,会话会自动与该 PR 关联。如果你之后需要回头查看——比如回复评审评论或修复失败的构建——运行:gh pr create
claude –from-pr <PR_NUMBER>
故事紧接你上次停下的地方。
回顾
在推送之前,先用一个子代理进行公正的代码审查。用于一步处理完整的提交到PR流程。之后还能继续写PR工作。这些都是小功能,但它们大大减少了你日常工作流程中的阻力。/commit-push-pr–from-pr
CLAUDE.md 档案
Claude Code 中最有用的功能之一是 CLAUDE.md 文件。它为Claude Code提供了关于你项目的持久记忆。
它解决的问题
当你打开没有 CLAUDE.md 文件的 Claude Code 时,每次都会重新开始。它必须重新探索你的代码库,弄清楚需要哪些依赖关系,并理解已经实现了哪些功能。有时它会做出假设,这让引导克劳德走上正确的方向变得更加困难。
CLAUDE.md 解决了这个问题。这是一个Markdown文件,你添加到项目根节点,每次启动会话时Claude Code会自动读取它。把它看作是你代码库的入职脚本。CLAUDE.md 文件的内容会附加到你的提示词中。
一个例子
以下是典型的 CLAUDE.md 文件长什么样:
Project
This is a Next.js 15 app using the App Router, Tailwind, and Drizzle ORM.
Commands
-
Dev server:
pnpm dev -
Run tests:
pnpm test -
Lint:
pnpm lint
Code Style
-
Use 2-space indentation
-
Prefer named exports
-
All API routes go in app/api/
-
Use server actions instead of API routes where possible
很简单。现在如果你让 Claude Code 创建 React 组件,它已经知道要用 Tailwind 来做样式并遵循你的代码规范。
CLAUDE.md 是针对 Teams 的
你可以(也应该)把 CLAUDE.md 投入到版本控制,这样团队就能受益。实际上,内存文件会根据用户不同有层级:
项目级 CLAUDE.md 存在于项目的根目录中。与团队共享。
用户级 CLAUDE.md 存储在你的配置文件夹里。这个建议只针对你,适用于你所有的项目。请在这里表达你的个人偏好。
小贴士
把修正保存到内存中。如果你发现自己反复纠正 Claude——比如让它总是用服务器动作而不是 API 路由——要明确要求 Claude 把那个规则存到记忆里。下次你打开项目时,它会知道。
参考项目文档。如果你的项目中有文档需要 Claude 引用,可以使用带有文件路径的符号:@
README.md
Please read if you need more info: @README.md
一开始就不带。我们建议你先开始一个没有 CLAUDE.md 文件的项目,这样你可以看到模型在哪些地方需要不断修正。这样你的 CLAUDE.md 保持紧凑,只专注于必要的信息。准备好了,就让克劳德帮你生成一个。/init
回顾
令人沮丧的 Claude Code 会话和高效会话的区别,往往取决于上下文——而 CLAUDE.md 文件则取决于你如何提供这些上下文。从你的堆叠、偏好和命令开始,然后逐步构建。
次级代理
Claude可以将任务委派给子代理,分工拆解并并行运行组件任务,提升你的上下文管理。每个子代理在其独立的上下文窗口中工作。
工作原理
在Claude Code中管理上下文很重要。上下文窗口的大部分内容都被工具调用、代码库探索或进行网络搜索等内容占据。克劳德在探索过程中发现的内容,并不总是与你正在开发的主要功能相关。
这就是子代理的用武之地。Claude 生成了一个子代理来处理类似“帮我探索这个代码库”这样的任务。子代理与自身上下文窗口并行运行,完成所有探索工作,完成后总结发现并将摘要反馈给Claude。
结果是:你得到了想要的答案,而不必为你付出的整个过程打乱了你的主要背景。
创建您自己的分代理
子代理在带有 YAML 前置的 Markdown 文件中定义。最简单的入门方式是让Claude帮你生成一个。跑步:
/agents
然后选择“创建新代理”。你将逐步完成步骤,包括选择代理人的范围、定义其用途、选择它可用的工具,甚至为它选择颜色。
Claude会为子代理人生成姓名、描述和提示。这也会根据你给出的提示告诉克劳德何时该联系子代理人。
进一步定制
子代理可以进一步定制。以下是一些重点:
持久记忆让你的子代理在对话中保留记忆。如果你在同一个项目上持续使用,这非常有用。
通过添加密钥并按技能名称列出,预加载技能到子代理中。注意,与主对话中的技能不同,整个技能在这里是加载到上下文中的。skill
回顾
保持上下文窗口干净是使用 Claude Code 保持高效的最佳方法之一。有了子代理,你可以在后台运行一个代理来处理繁重的工作,然后只将答案返回到主上下文窗口。
想更深入一点吗?欢迎查看我们的专门课程:子代理介绍
MCP
Model Context Protocol (MCP) is an open standard that lets Claude Code connect to external tools and data sources. When you ask a question, Claude automatically understands when it should use those tools to better handle your query.
A lot of your context lives outside your codebase — in databases, productivity apps, or public repositories. MCP bridges that gap.
What Can You Do With It?
First, it’s important to understand the concept of “tools” in agentic AI. Tools give agents like Claude Code the ability to perform actions that help them complete tasks more effectively. This is different from typical AI, where you just get a text response back.
For example, if your team uses Linear for project management, you can add a Linear MCP server to bring in the details of your specific issues. If you need up-to-date documentation for a dependency, a docs MCP server like Context7 can provide that to Claude Code.
Adding an MCP Server
You can add MCP servers with the command. There are two main types:claude mcp add
HTTP servers are for remote services. These are hosted by the service provider and connect over the network.
Stdio servers are for local processes that run on your machine.
You can manage your servers with inside a Claude Code session to see what’s connected, check status, and disable servers you don’t need./mcp
Scoping Servers
MCP servers can be scoped in three ways:
Local — only available in the current project, just for you.
用户——适用于你所有项目。
项目——使用一个文件,你可以在版本控制中验证,这样代码库上的任何人都会自动获得完全相同的服务器。.mcp.json
上下文成本
MCP服务器会在你的上下文窗口添加工具定义——即使你没有主动使用它们。如果你配置了很多服务器,这会消耗你可用的上下文。跑去看看连接了什么,禁用你没在用的设备。/mcp
如果一个工具有类似的CLI接口(比如GitHub或AWS),这个CLI更高效,因为它不会添加持久化的工具定义。ghaws
你也可以从使用技能中受益。技能会加载名称和描述到上下文中,Claude只有在确定需要使用时才加载完整的技能内容。
如果MCP工具超过上下文窗口的10%,Claude Code会自动切换到工具搜索模式,按需发现合适的工具——尽管这种方式可能不那么可靠。
回顾
MCP 将 Claude 代码连接到您的外部工具和数据源。添加带有 的服务器。把它们范围限定到你的项目,这样你的团队会自动获得。并且通过禁用你不活跃使用的服务器来关注上下文使用情况。claude mcp add.mcp.json
钩子
钩子让你在 Claude Code 生命周期的特定阶段执行命令。钩子与本课程其他内容的关键区别在于钩子是确定性的——它们总是运行。
为什么要用钩子
你可以在 CLAUDE.md 里告诉Claude每次编辑文件后运行Prettier。大多数时候会有帮助。但有时候不会。钩子每次都能让它成真,绝无例外。
常见的使用场景包括:
文件编辑后的自动格式化
记录所有已执行命令以确保合规
阻止危险操作,比如修改生产文件
当Claude完成任务时,给自己发送通知
它们的工作原理
钩子配置在你的 .你可以选择一个事件,选择性地设置匹配器来匹配它适用于哪些工具,并提供一个命令来运行。可参加的活动包括:settings.json
PreToolUse — 工具调用前的运行
PostToolUse — 工具调用完成后运行
UserPromptSubmit — 在你提交提示时运行,Claude 处理前
停止——克劳德回应完毕后跑动
通知——当Claude发送通知时运行
你可以通过 Claude Code 里的命令配置,或者直接编辑。/hookssettings.json
一个实际例子
最常见的引子:编辑后自动格式化。设置一个带有匹配器的PostToolUse钩子,这样每当Claude修改文件时都会触发。命令会检查文件扩展名并运行相应的格式化器——TypeScript用Prettier,Go用gofmt,或者你项目用的格式。“Edit|MultiEdit|Write”
使用PreToolUse进行定型
PreToolUse 钩子可以在工具执行前阻止调用。你的钩子在标准时会以 JSON 格式接收工具名和输入。退出代码决定了行为:
退出代码0 — 正常前进。
退出代码2——阻止行动。stderr消息会反馈给Claude,让它知道为什么被屏蔽并进行调整。
其他退出代码——一个非阻挡错误,显示给你看但无法阻止任何操作。
这就是执行硬性规则的方式。Block 写入生产配置文件目录。阻挡包含 的 bash 命令。Block 提交到主服务器。无论你的队伍如何,都应该是有保障的,而不是建议。rm -rf
与团队共享钩子
在中配置的钩子是项目级别的,可以被检入你的仓库。这意味着你的整个队伍会自动获得相同的钩子。在命令中使用环境变量引用项目中存储的脚本,这样它们无论Claude当前的工作目录如何都能正常工作。.claude/settings.jsonCLAUDE_PROJECT_DIR
回顾
钩子赋予你对克劳德代码行为的确定性控制。使用PostTool使用自动格式化和日志。使用PreToolUse来阻止危险操作。将它们配置为 。把他们存到你的仓库里,这样你的团队也能拿到。/hookssettings.json
如果每次都必须发生某件事,不要放在提示里。挂钩子。































