Claude Code 系列视频第 1 期

作者:Paul Goldsmith-Pinkham
发布于:2026-03-29
原文:https://paulgp.substack.com/p/getting-started-with-claude-code

这是“AI 编程工具如何服务实证研究”系列的第 1 篇,也是我在 Markus Academy 视频系列的配套文章。2025 年 12 月,我曾与 Ben Golub 一起制作过一套 Markus Academy 迷你系列,介绍如何使用 Cursor 和他开发的 Refine.ink,借助大语言模型开展理论经济学研究。本文延续了那个系列。

这些博客文章与我同 Markus 录制的视频配套使用。


过去一两年,我一直在研究工作流中使用 AI 编程工具。去年秋天开始使用 Claude Code 后,这一进程明显加快。到了现在,你很可能已经听说过智能体式 AI,以及它如何改变编程和研究。声称“我让 AI 在 30 分钟内写完了一整篇论文!”的帖子越来越多,让人感觉脚下的世界正在发生变化。

AI 编程工具概览

如果你从事实证研究,却还没有使用这些工具,就等于放弃了不少机会。我认为你有两个理由应该认真接触它们:

  1. 你可以完成更多工作、思考更多主题,也能学习新知识。从研究想法到实际结果之间的距离大幅缩短。AI 直接生成的原始想法并没有让我觉得特别惊艳,但执行想法的速度和效率确实高了很多。数据清洗、调试、格式转换和网页抓取等繁琐工作都会明显加快。

    它也会推动我们采用可复现性更好的编程方式。由于计算机在快速完成工作的同时记录了整个过程,你会更自然地保留完整路径。

  2. 即使你不打算使用这些工具,理解它们能做什么、不能做什么也非常重要。跟进工具发展,至少能帮助你分辨哪些是 AI 胡扯,哪些是真正可能实现的能力。无论作为审稿人、导师还是合作者,你都应该准确把握正在发生的变化。

这些文章及配套视频主要面向三类人:a)不熟悉 AI 工具的人;b)偶尔使用,但尚未形成习惯的人;c)已经积极使用这些工具,希望获得更多思路和背景知识的人。


Claude Code 是什么

Claude Code 是一款运行在终端里的 AI 助手。你用自然语言提出要求,它会读取文件、编写代码、执行脚本,并与整个项目交互。可以把它想成一位能力很强、恰好住在你电脑里的研究助理。

它与浏览器中的 ChatGPT 或 Claude 最关键的区别,在于 Claude Code 能访问本地文件系统。它可以查看项目结构、打开数据集、修改脚本、运行代码并展示结果。

如果要类比,网页版就像与一位精通技术的人交换邮件,或者在 Stack Overflow 上发帖、搜索答案;在电脑上使用 Claude Code,则像让这个人坐在你旁边,你们一边讨论一边写代码。正如后面会看到的,这可以极大提升速度,尤其当你终于可以毫无愧疚地说:“看起来很好,我先去做别的,你把代码写完吧!”

AI 编程工具的能力阶梯

我的好友 Kyle Jensen 总结过一套很实用的层级,用来描述人们使用这类工具所处的位置,像是一条有不同台阶的“开悟之路”。

  • **第 0–1 级:**在浏览器中使用 ChatGPT,把代码复制下来,粘贴进编辑器,运行后遇到错误,再把错误复制回网页,如此循环。或者使用带有 GitHub Copilot 等行内补全功能的 IDE。它们确实有帮助,但本质上仍接近聊天界面。

    (Markus 在这里问到了 Microsoft Copilot。需要澄清的是:GitHub Copilot 是运行在 VS Code 中的编程工具,与 Word 或 Bing 中看到的 Microsoft Copilot 不同,虽然两者都属于 Microsoft,底层也都使用大语言模型。)

  • **第 2 级:**使用智能体式 IDE,例如非常强调 AI 智能体的 Cursor。你告诉大语言模型要做什么,它便在屏幕上修改文件、阅读代码和查找资料,也能自行分派任务,不过仍局限在编辑器环境中。

  • **第 3 级:**使用专门的编程智能体,例如 Claude Code、OpenAI 的 CodexGemini CLI,以及 Open Code 等开源替代品。它们在终端中运行,可以访问完整的计算环境,能够思考任务、读写文件、调用工具、执行代码、制订计划,并且比 IDE 智能体更自主地完成工作。

  • **第 4 级:**通过 MCP(Model Context Protocol,模型上下文协议)添加工具,编排并改进智能体的工作方式,把它连接到数据库、API 和其他服务。

  • **第 5 级:**创建一个容器,告诉智能体需要完成什么,然后让它独立运行一个半小时,直至自主完成任务。社交媒体上所谓 AI“半小时写完一整篇论文”,通常指的就是这种方式。它不一定天然更好,只是前期配置要多得多。

必须强调:所有层级使用的底层大语言模型都一样。无论怎样划分 AI 模型,核心思路最终还是相同,只不过在模型外围增加了不同的工具和结构。

AI 编程工具的能力阶梯

安装

有两种选择。

方案一:使用 npm(电脑上已安装 Node.js)

npm install -g @anthropic-ai/claude-code

方案二:使用独立安装程序

Claude Code 文档下载安装程序,支持 Mac、Linux 和 Windows(通过 WSL)。

安装完成后,先用 cd 进入项目目录,再输入 claude。接下来需要完成身份验证,可以使用订阅会员,也可以通过 API 密钥按调用付费。订阅分为三档:Pro(每月 20 美元)、Max(每月 100 美元)和 Max 20x(每月 200 美元)。我使用 Max,是因为用量很大。如果你已经每月支付 20 美元使用 Claude 聊天功能,就已经拥有 Claude Code 的访问权限,现在就可以试试。

刚入门时,我建议选择 20 美元或 100 美元档,完全不必直接升级到 200 美元。按量付费的 API 也是一个选择,不过订阅套餐得到了很大程度的交叉补贴,对大多数人通常更划算。

有一点非常重要:文件仍保存在本地。对话会经过 API,但不会持久化存储在 Anthropic 的服务器上。不过,只要 Claude 读取了文件,其中的内容就会成为发送给 Anthropic 的上下文。这与把文件上传到任何聊天机器人网站没有本质区别。

因此,高度敏感的研究数据一定要隔离。IRB 数据、个人身份信息,以及任何应该存放在符合 HIPAA 要求的服务器上的内容,都不要让 Claude 接触。也尽量不要粘贴 API 密钥或密码;即使 Claude 经常会发出警告,最好一开始就不要这么做。我的粗略判断标准是:如果数据可以放在 Dropbox 上,风险水平大致相近;如果你绝不会把它放进 Dropbox,也不要交给 Claude。

后续文章中,我会讨论如何通过容器和沙箱处理更敏感的工作流。

什么是上下文窗口,它如何工作

要高效使用这些工具,需要对底层过程建立一个基本的思维模型。理解得越多越好,但目前先解释一下上下文窗口

向 Claude 或其他大语言模型发送消息时,你并不是像与人说话一样进行对话。实际过程更像双方不断传递一份很长的文档。每当你发送消息,全部历史内容——你的提示词、Claude 的回复、它读取的每个文件、调用的每个工具以及所有代码输出——都会打包成一份巨大的输入。模型读取全部内容、生成回答,再把这次回答追加进去。

下一轮交互时,整份内容会再次发送。如果你曾经在一个无关问题上钻了 10 分钟牛角尖,那些内容依然留在里面,并在双方之间来回传输。

这整个信息包就是上下文窗口。它具有固定大小,以 Token 计量,一个 Token 大约相当于四分之三个英文单词。Claude 当时的窗口约为 20 万个 Token,听起来很多,但填满的速度比想象中快。

一次对话在底层的真实结构

上图展示了单次“对话”在底层真正包含的内容。通常你只看到自己的提示词和模型回答,但两者之间还有系统提示词(Anthropic 的指令)、开发者消息(工具定义)、模型内部推理、工具调用(网页搜索、文件读取和代码执行)以及工具结果。它们全都存在于上下文窗口中,也都会占用额度。

为什么这很重要?因为 AI 编程的效果大致遵循这样一条规律:

上下文越大——读取的文件越多、对话历史越长、代码输出越多——模型表现越差。它需要同时追踪的信息增加,渐渐就会失去主线。这是使用 AI 编程工具时最重要的一条认知。

上下文增长与性能下降

达到上限后会发生什么:上下文压缩

对话填满上下文窗口后,Claude Code 会自动压缩:把对话历史总结成更短的形式,然后携带这份摘要和系统指令重新开始。(Markus 把它比作“睡觉时进行训练”。面对这些工具很难完全避免拟人化;这个类比并不精确,但直觉有些相似。)

Claude Code 上下文压缩

这种方法能够工作,但模型可能忘记三个步骤前做出的具体决定,或者丢失你在早期提出的某项约束。

更好的方式,是主动压缩,而不是等上下文溢出。可以在 Claude Code 中输入 /compact 手动触发,甚至告诉它应该记住什么。例如,执行 /compact 记住我们刚才研究的所有非线性规划相关内容,会引导摘要重点保留你真正关心的信息。

核心思路是:定期让 Claude 把进度和计划写入磁盘文件,然后开始一段读取这些文件的新对话。

开始新会话前把进度写入文件

例如,数据分析进行到一半时,可以说:“把目前完成的工作和剩余事项写入 progress.md。”然后启动新的 Claude Code 会话,说:“读取 progress.md,从上次停止的位置继续。”新会话拥有完整、干净的上下文预算,同时又能从文件中加载全部相关信息。

这个习惯值得尽早养成。下面是一些实际建议。不过,随着 Claude Opus 4.6 等近期改进的出现,这些建议已经不像以前那么重要;我注意到新版模型会主动完成其中很多工作,而且性能下降得似乎也更慢。

  • **长会话会退化。**如果已经来回交流 20 轮以上,又产生了大量代码输出,可以考虑重新开始。模型在第 30 轮的表现会明显弱于第 3 轮。

  • **把状态写入文件。**不要让关键信息只存在于对话中。如果 Claude 做出重要设计决策,让它写进 README 或计划文件。文件可以长期保留,对话上下文不行。

  • **把工作拆成小块。**不要进行一场马拉松式会话,而应该开展目标明确、每次 5 到 10 轮的短会话。例如:“这次只让数据清洗脚本正常工作。”绘图则放到一段新会话中。

终端配置为什么重要

你完全可以在默认终端中运行 Claude Code。但既然以后会在这里投入很多时间,花 15 分钟改善配置很值得。我推荐两款工具。

Ghostty

Ghostty 是一款使用 GPU 加速的现代终端。实际体验就是:速度快、文字渲染清晰,面对大量代码输出也不会卡顿。安装命令如下:

brew install ghostty

Zellij

Zellij 是一款终端复用器,可以把它理解成更容易使用的 tmux。它最有价值的功能是分屏:左侧运行 Claude Code,右侧查看文件。反复调整分析过程时,同时看到 Claude 的代码和产生的结果非常实用。

brew install zellij

一项配置提示:

  • **快捷键:**在 Zellij 中依次按 Ctrl+pd 可以拆分面板,使用 Alt+方向键 在面板之间切换。

Oh My Zsh

配置终端时,也值得再花五分钟改善 Shell。如果使用 Mac,你很可能已经在用 zsh,因为从 macOS Catalina 开始它就是默认 Shell。Oh My Zsh 是一个能显著改善 zsh 使用体验的框架。安装命令如下:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

为什么值得折腾?下面几项能力与我们的工作流直接相关:

  • **更好的自动补全。**文件路径、Git 命令和 Python 环境的 Tab 补全会顺畅很多。当你频繁切换 Claude 生成的脚本时,快速导航很重要。

  • **在提示符中集成 Git 信息。**Oh My Zsh 会直接在终端提示符里显示当前 Git 分支和状态。之后我们会大量使用 Git 追踪 Claude 的修改,因此一眼看到是否存在未提交工作很有价值。

  • 插件生态。z 插件会学习最常访问的目录,并允许模糊跳转,例如 z markus 可以进入 ~/repos/markus-ai-talkvirtualenv 插件则会显示当前激活的 Python 环境。这些细小的体验改善会不断累积。

不必深入定制,默认配置已经比裸 zsh 好很多。选择一个主题——我使用只显示目录和 Git 分支的简单主题——再启用几个插件(gitzvirtualenv),然后继续工作即可。

Claude Code 与 Cowork 对比

还需要介绍一下 Cowork。它是一种基于网页的替代方案,下载 Claude 桌面应用后会与普通聊天界面一起提供。下面做一个简单比较:

Claude Code Cowork
界面 终端 网页浏览器(基于 Chromium)
文件访问 完整的本地文件系统 沙箱环境
互联网 完整网络访问 IP 地址受限
最适合 完整项目、高级用户 快速探索、分享协作
学习曲线 中等 较低

理解 Cowork 的沙箱限制很重要。它会限制智能体可以访问的 IP 地址:虽然必须访问 Anthropic 来获取大语言模型回答,但它连接广泛互联网的能力非常有限。你可以调整权限,例如在桌面应用中允许它联网,并放宽数据进出限制;不过在默认状态下,它远不如 Claude Code 自主。

这也有好处,因为风险更低。但不要仅仅试用 Cowork,觉得能力有限,就得出“AI 没那么强”的结论。那将是错误的认知更新,因为你给大语言模型施加了很多限制。

我大约 90% 的工作使用 Claude Code,因为我希望完整访问文件、Git 和终端工具。不过,Cowork 很适合快速制作原型或提出一些问题。

基本交互循环

下面看看 Claude Code 的真实使用方式。进入项目目录,启动会话,然后开始对话:

> 这个项目中有哪些文件?请总结目录结构。

Claude 会读取目录,用自然语言给出概览。接手合作者的代码时,仅这一点就非常有用。

> 阅读 clean_data.py,并逐步解释它的作用。

它会打开文件、梳理逻辑,并指出潜在问题。

> 加载 data/employment.csv,显示前几行,
  并计算汇总统计量。

Claude 会编写脚本、运行脚本,然后直接在终端展示输出。

循环就是这样:描述需求,Claude 编写并执行,你再继续迭代。习惯之后,整个过程非常自然。

入门技巧

下面是我总结的几点经验:

  1. 表达要具体。“分析这份数据”很差;“加载 employment.csv,按行业计算月度增长率,并用 BLS 风格绘制时间序列”则很好。

  2. **持续迭代并做好备份,同时管理上下文窗口。**输出不完全正确时,直接指出即可。“把图例调大,移到左上角”就是很好的后续要求,不必重新说明全部背景。不过,不要与大语言模型争论。另一种选择是按 ESC 回退,再重新运行命令,这会把上下文恢复到之前的状态。

  3. **尽早纠正。**如果 Claude 正朝错误方向前进,立即打断。一句“实际上,请使用 R 而不是 Python”就能节省很多时间。

  4. **信任,但必须验证。**对研究代码而言尤其如此。Claude 很强,但也会犯错,特别是统计方法的边界情况。始终根据预期检查输出。就像与研究助理合作一样:助理可以产出结果,但你仍需要验证,因为它最终会成为你的工作。

Markus 提出的一个问题值得澄清:如果希望 Claude 编写并运行 R 或 Python 代码,电脑上必须已经安装 R 或 Python。代码是在本机执行的,不会被 Claude 拿到某个云端环境中运行。如果没有安装 R,可以让 Claude 改用 Python,也可以让它帮你安装 R,但实际计算仍发生在你的硬件上。

这正是 Claude Code 相比沙箱替代方案的一项优势——它可以使用电脑上已经存在的一切。