什么是 Claude Code?
本节信息
讲师 Elie Schoppik(Anthropic)· 时长 08:15 · ▶ 原视频
这第一节课,我们会过一遍 Claude Code 的 agent 工作流程、它用来在你代码库里穿梭的那些工具,以及它跨会话保留的记忆。我们直接开始。
Claude Code 到底是什么
先聊聊 Claude Code 本质上是个什么东西。
当我们谈「agent 系统」的时候,脑子里通常有三样东西:一个模型、一套工具,以及一个能跑这些工具的环境。
模型很擅长「输入进去、输出出来」。但很多时候,模型并不了解你的代码库——它不知道怎么找文件,也不知道怎么处理多个任务。所以,我们不会让你直接跟模型对话,而是给模型套上一层很轻量的「外壳」(harness)。然后通过命令行,借助这层外壳去调动模型的智能,来完成复杂的编程任务。
换句话说,与其把任务直接丢给模型、再让它自己在代码库里到处翻信息,我们不如给它配上一套工具、一个运行环境,再加上一些别的功能,让模型能够走进代码库、解决复杂得多的问题。
那「一些别的功能」具体指什么?
- 记忆:让模型记住用户的偏好、我们正在看的代码库,以及手头的任务。
- 环境:让模型能搞清楚自己需要哪些数据、定出一个计划,然后动手执行。
就靠这么一点点代码,我们就能把模型的智能调动起来,做出相当惊艳的成果。
下面这个小演示,就带你跟着一个问题,走完「模型 → 工具 → 环境 → 记忆」这一圈:
教学示意:真实运行中,「模型 ↔ 工具 ↔ 环境」这个循环可能反复跑很多轮,直到任务完成。
用 Claude Code 时,你可以选 Opus 或 Sonnet 模型,具体看任务的复杂度、类型,以及你的订阅。
它不只是「写一堆代码」
一说到 Claude Code 能干什么,大家很容易想当然地以为:这就是个「狂写代码」的工具。但随着课程深入,你会发现我们其实是从它最强大的能力之一讲起的——那就是发现、解释、设计的能力。
在你动手用 Claude Code 写代码之前,先拿它来快速摸清一个代码库。这门课里,我们会花不少篇幅讲怎么用 Claude Code 写代码;但也会讲怎么在终端之外的环境里用它,比如在 GitHub 上。我们还会聊重构、调试报错,以及这个工具真正大放异彩的地方。
而且它不只对写代码有用——在数据分析,以及任何「模型智能能帮你产出漂亮的可视化、素材或交付物」的场景里,它都能派上用场。
工具:让模型从「助手」变成「agent」
前面说过,我们给模型套了层外壳、给了它一个收集上下文并采取行动的环境,也聊了给模型的记忆(一会儿我们会看看这个底层记忆长什么样)。现在来说说我们让模型知道的那些工具。
举个工具调用的例子:用户问「某个文件里写了什么代码」。模型本身并不知道怎么导航、怎么找文件——这时候工具就登场了。Claude Code 开箱就带了一小批工具,其中之一就是「读取文件」。模型一旦知道该做什么,就能去把那个文件读出来、拿到内容、再把结果返回给用户。
正是这种工具调用的能力,让模型从一个简单的助手,变成了极其老练的 agent 工具。
Claude Code 内置的工具大致分几类:一些用来编辑各种文件、一些用来读取各种文件,还有一些用来做额外的动作,比如查找模式、在网上搜索,甚至创建并运行子代理(subagent)来啃那些特别难、特别有挑战的任务。最后,因为我们在命令行里,所以还需要一个能执行 bash 或 shell 命令的工具。
工具调用,就是 Claude Code 收集所需上下文和信息的方式。这让它能啃下更难的问题,也让它不必给你整个代码库建索引——而建索引可能带来安全隐患。
另外,Claude Code 很容易扩展。你刚看到的是它内置的工具清单,但你还能通过连接 MCP 服务器,给它加上更多工具。MCP(即 Model Context Protocol,模型上下文协议)是一个开源、与具体模型无关的协议,让数据和 AI 系统之间能轻松通信。这些 MCP 服务器能为 Claude Code 加上各种各样的新能力,本课后面会带你体验几个。
「不建索引」是什么意思
我想多花点时间解释一下「不给代码库建索引」。
它的做法不是给代码库造一个结构化的表示、然后不停地分析它,而是用一个叫 agentic search(自主搜索) 的特性。它也不要求把你的代码库发到某个服务器、可能离开你所在的环境;而是用一个或多个 agent、配上一套套工具,在你的代码库里直接找它要找的东西。
这样一来,你的代码既不必整个塞进上下文,也不必离开它所在的环境——而后者本来是会带来安全顾虑的。
记忆:CLAUDE.md
说到 Claude 的记忆——也就是它记住之前对话里发生了什么、以及各种操作的能力——这是靠一个叫 CLAUDE.md 的 markdown 文件实现的。
在你的 CLAUDE.md 里,你可以定义常用配置或风格规范。这些文件在启动时会被自动加载进上下文。
你和 Claude Code 的对话会存在你本地的机器上。聊的过程中你可以随时清空,开一个全新的上下文窗口;但万一你需要接着之前那次聊、或者恢复早先的对话,也能轻松做到。
上手演示:一句话做个可视化
我切到 VS Code 里的终端。可以看到我这儿有个叫 demo 的文件夹,里面空空如也。
先用 claude 命令打开 Claude Code。视文件所在位置而定,尤其是第一次,它可能会问我是否信任这个文件夹里的文件——我信任。这里它给了几条上手小提示,不过我就用一个特别简单的提示词开始:
下面这段会话回放,就还原了这个过程。点「下一步」,一步步看 Claude Code 怎么把活干完:
点「下一步」开始这段会话回放 ↓
接下来你会看到 Claude Code 开始列一张待办清单。换个场景,这个任务可能是「在代码库里搜索」「编辑文件」「写测试」「给出洞见」,而我们这次是「做个可视化」。具体做出来是粒子、烟花还是别的,看 Claude 当时「心情」如何——我只是想让你看看,开箱即用,多快就能看到 Claude Code 带来的变化。
因为我们是在 Visual Studio Code 里操作,而 Claude Code 跟这个编辑器有集成,所以改动会可视化地显示出来。我点「接受」。(往后的演示里,我会让 Claude Code 不用每次都问我、直接改。)
可以看到,一个可视化做好了。我让 Claude Code 帮我在浏览器里打开——它会确认一下命令——我们去看看效果。喏,可视化出来了。加点粒子,看起来更好了一些。你可以开关动画、看看效果,也可以清空重来。
想怎么扩展都行:改功能、加东西,全在这儿。我只是想让你感受一下,上手这个工具有多顺滑、多快。
下一节,我们会看看怎么在一个更大的代码库上用 Claude Code,退一步去体会:它在解释大型、复杂代码库这件事上,到底有多强。