跳到主内容
✍️ 公众号文章
研究者
学生
经/管/金融人

start_with_cc

耶鲁金融学教授Paul Goldsmith-Pinkham的Claude Code入门指南:讲解智能体编程工具阶梯、安装方法、上下文窗口原理与压缩技巧、终端配置(Ghostty/Zellij/Oh My Zsh),以及与Cowork对比和基本交互循环,适合研究者上手AI编程。

李学恒10 分钟阅读#claude-code#ai-coding#context-window#terminal-setup#getting-started

封面

这篇文章来自耶鲁大学金融学教授 Paul Goldsmith-Pinkham 的 Substack 专栏。他是经济学界最早深度使用 AI 编程工具的学者,日常工作中约 90% 的时间都在用 Claude Code。文章是他为 Princeton 的 Markus Academy 录制的系列视频配套文字稿,从零讲解 Claude Code 的安装、核心概念和使用技巧。 特别适合想上手 AI 编程工具但不知从哪儿开始的研究者和数据分析师。

关于原作者

Paul Goldsmith-Pinkham 是耶鲁大学管理学院(Yale School of Management)金融学副教授,美国国家经济研究局(NBER)研究员,在哈佛大学获得商业经济学博士学位,研究方向涵盖消费金融、应用计量经济学和社会网络。他最知名的论文 “Bartik Instruments: What, When, Why, and How” 发表在 American Economic Review 上,被引用超过 3400 次。在学术研究之外,他是经济学界推广 AI 编程工具的标杆人物。他的 Substack 专栏 “A Causal Affair” 拥有超过 3000 名订阅者。

以下为原文的中文翻译

过去一两年,我一直在研究工作中使用 AI 编程工具。不过去年秋天开始用 Claude Code 之后,一切明显加速了。到现在,你大概率已经听说过 agentic AI(智能体 AI),以及它正在怎样改变编程和研究。社交媒体上越来越多帖子说“我让 AI 在 30 分钟内写了一篇完整论文!”,感觉一切都在加速变化。

AI 编程正在加速研究工作

如果你做实证研究却还没用这些工具,说实话,你亏大了。我觉得你必须接触这些工具,有两个原因:

  1. 你能做更多事,思考更多课题,学到新东西。 从研究想法到结果的距离缩短了很多。我并不觉得 AI 生成的原始想法有多惊艳,但想法的执行速度快了太多,效率也高了太多。那些枯燥的活——数据清洗、调试、格式转换、爬数据——都变得飞快。附带好处是,代码的可复现性也更容易保证了,因为整个过程都有电脑帮你记录。
  2. 即使你对使用这些工具没兴趣,了解它们能做什么、不能做什么也非常重要。 了解这些工具的进展,至少能帮你分辨哪些是 AI 吹牛、哪些是真本事。作为审稿人、导师或合作者,你需要对现状有准确判断。

这些文章(和配套视频)面向三类人:a)对 AI 工具完全陌生的人;b)用过这些工具但不太规律的人;c)已经在用而且很兴奋,但想要更多思路和背景知识的人。

什么是 Claude Code?

Claude Code 是一个运行在终端里的 AI 助手。你用自然语言打字,它就能读取你的文件、写代码、执行脚本、跟你的整个项目交互。你可以把它想成一个非常能干的 RA(研究助理),只不过住在你的电脑里。

它和在浏览器里用 ChatGPT 或 Claude 的关键区别在于:Claude Code 能访问你的本地文件系统。它可以看到你的项目结构、打开你的数据集、修改你的脚本、运行你的代码、给你展示输出结果。

打个比方:在浏览器里用 AI 就像和一个很懂技术的人发邮件(或者在 Stack Overflow 上搜索和发帖);用 Claude Code 就像这个人坐在你旁边,你俩边讨论,他边帮你写代码。你会发现效率飙升——等你能毫无愧疚地说“这看起来不错,你继续写,我忙别的去了!”就更爽了。

AI 编程工具的阶梯

我的好朋友 Kyle Jensen 有一个很好的比喻:AI 编程工具的使用像爬阶梯,每一级都是不同的境界。

  • Level 0-1:你在浏览器里用 ChatGPT,把代码复制下来,粘贴到编辑器里,运行,报错了,再把错误信息复制回去,如此循环。或者你在 IDE 里用 GitHub Copilot 做行内自动补全——有帮助,但本质上还是个聊天界面。(Markus 这里问了 Microsoft Copilot——澄清一下:GitHub Copilot 是在 VS Code 里运行的编程工具,跟 Word 或 Bing 里的 Microsoft Copilot 不是一回事。虽然两个都是微软旗下的,底层都用了 LLM。)
  • Level 2:你用上了一个智能体 IDE(agentic IDE)——比如 Cursor,它非常强调 AI 智能体。你告诉 LLM 做什么,它就在你屏幕上到处跑,编辑文件、读代码、查东西。它能自己分派任务。但它仍然在编辑器环境里运行。
  • Level 3:专用编程智能体——Claude Code、OpenAI 的 CodexGemini CLI,以及开源替代品如 Open Code。这些在你的终端里运行,能访问你完整的计算环境。它们能思考任务、读文件、写文件、使用工具、执行代码、制定计划,比 IDE 内的智能体更加自主。
  • Level 4:通过 MCP(Model Context Protocol,模型上下文协议)添加工具来编排和增强智能体——把它连接到数据库、API 和其他服务。
  • Level 5:你创建一个容器(container),告诉智能体要做什么,然后让它自己跑一个半小时。它自主工作直到完成。社交媒体上说 AI “半小时写完一篇论文”,说的就是这个。它不一定更好,但需要更多前期准备。

我要强调一点:所有这些层级用的都是相同的底层 LLM。 底层模型就那一个——不管怎么包装,核心能力是一样的,区别只在于外面套了什么工具和架构。

AI 编程工具的阶梯

安装

两种方式:

方式 1:npm(如果你已经装了 Node.js)

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

方式 2:独立安装包

Claude Code 文档 下载。支持 Mac、Linux 和 Windows(通过 WSL)。

安装完成后,cd 到项目目录,输入 claude。接下来需要身份验证——订阅或 API key 按量付费都行。订阅有三个档位:Pro(20/月)、Max20/月)、Max(100/月)和 Max 20x(200/月)。我用的是Max,因为我用得非常多。如果你已经在花200/月)。我用的是 Max,因为我用得非常多。如果你已经在花 20/月用 Claude 的聊天功能,你已经能用 Claude Code 了——现在就可以试试。我建议入门选 2020 或 100 档。我觉得完全没必要上 $200 档。API(按量付费)也是一个选择,但订阅制有很大的价格优势(Anthropic 在补贴),对大多数人来说比按量付费划算。

有一点很重要:你的文件留在本地。对话通过 API 传输,但不会被持久化存储在 Anthropic 的服务器上。不过,如果 Claude 读取了你的文件,文件内容就会成为发送给 Anthropic 的上下文的一部分。这跟你把文件上传到任何聊天机器人网站是一样的。

所以如果你有高度敏感的研究数据,一定要隔离开。IRB 数据、PII(个人身份信息)、任何应该放在 HIPAA 合规服务器上的东西——别让 Claude 碰。也尽量不要粘贴 API key 或密码;Claude 经常会提醒你,但最好一开始就别这么做。我的经验法则是:如果你敢把数据放在 Dropbox 上,那放到 Claude 面前风险差不多。不会放 Dropbox 上的,也别放到 Claude 面前。 在后续文章中,我会讨论容器(container)和沙箱(sandbox)方案来处理更敏感的工作流。

上下文窗口:它是什么,为什么重要?

要高效使用这些工具,你需要对底层发生的事情有一个基本的心智模型。了解得越多越好,但现在我主要想解释上下文窗口这个概念。

当你给 Claude(或任何其他 LLM)发消息时,你并不是像跟人说话那样在“对话”。本质上更像是来回传递一份 非常长的文档每次你发消息,整个历史记录——你的提示词、Claude 的回复、它读过的每个文件、调用过的每个工具、每段代码输出——都会被打包成一个大输入发送出去。 模型读完全部内容,生成回复,然后回复被追加进去。下一轮再把整个东西发一遍。如果你之前在某个不相关的问题上兜了 10 分钟圈子,那些内容全都还在里面,每一轮都会被重新发送。

这个包就是 上下文窗口(context window),它有一个固定的大小限制,以 token(大约相当于 3/4 个英文单词)为单位。Claude 目前的限制大约是 200,000 个 token。听起来很多。但填满的速度比你想的快。

上下文窗口示意图

上面这张图展示了一次“聊天”在底层的真实面貌。你通常只看到两样东西——你的提示和模型的回复——但在中间,还有系统提示词(Anthropic 的指令)、开发者消息(工具定义)、模型的内部推理(“thinking”)、工具调用(网页搜索、文件读取、代码执行)和工具返回结果。所有这些都在上下文窗口里,都占用你的配额。

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

随着上下文增长——读了更多文件、更多对话历史、更多代码输出——性能会下降。模型要追踪的东西太多,就会开始跟丢。这是使用 AI 编程工具最需要理解的一件事。

性能与上下文关系

触及上限时会怎样:压缩(Compaction)

当你的对话填满了上下文窗口,Claude Code 会 自动压缩(auto-compact)——它把对话历史总结成一个压缩版本,然后用这个摘要加上系统指令重新开始。Markus 把这比作“睡觉时的记忆整理”——虽然不完全准确,但直觉上差不多。

压缩机制

这方法能用,但模型可能会忘记你三步之前做的某个具体决定,或者丢失你早期提到的某个约束条件。

更好的做法是主动压缩,而不是等上下文溢出。你可以在 Claude Code 里输入 /compact 来手动触发,甚至可以引导它记住什么——比如 /compact remember all the things related to the nonlinear programming we just studied (记住所有和我们刚学的非线性规划相关的东西),这会把摘要导向你真正关心的内容。

核心思路是:定期让 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 是一个终端复用器(terminal multiplexer)——类似 tmux,但好用得多。杀手级功能:分屏。左边跑 Claude Code,右边看你的文件。当你在迭代分析时,能同时看到 Claude 的代码和输出结果,非常有用。

brew install zellij

一些配置技巧:

  • 快捷键:在 Zellij 里,Ctrl+p 然后按 d 可以分屏。Alt+方向键 在窗格之间切换。

Oh My Zsh

既然在设置终端,值得花五分钟搞一下 shell。如果你用 Mac,你大概已经在用 zsh(从 macOS Catalina 开始就是默认的了)。Oh My Zsh 是一个框架,能让 zsh 好用很多。安装方法:

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

为什么要折腾?几个和我们工作流相关的理由:

  • 更好的自动补全。 Tab 键补全文件路径、git 命令和 Python 环境变得顺滑很多。当你在 Claude 生成的脚本之间跳来跳去时,快速导航很重要。
  • 终端提示符里的 Git 集成。 Oh My Zsh 会在终端提示符里直接显示当前的 git 分支和状态。我们后面会大量用 git 来追踪 Claude 的改动,一眼看到有没有未提交的工作很有用。
  • 插件生态。 z 插件会学习你最常访问的目录,让你用模糊匹配跳转(z markus 就能跳到 ~/repos/markus-ai-talk)。virtualenv 插件会显示当前激活的 Python 环境。这些小改善会积少成多。

你不需要深度定制——默认设置已经比裸 zsh 好很多了。选个主题(我用的是一个简单主题,显示目录和 git 分支),启用几个插件(gitzvirtualenv),然后就可以了。

Claude Code vs. Cowork

这里要提一下 Cowork,它是一个基于网页的替代方案,下载 Claude 桌面应用时会一起安装(和常规聊天界面并列)。快速对比:

Claude CodeCowork
界面终端网页浏览器(基于 Chromium)
文件访问完整的本地文件系统沙箱隔离
网络完整的网络访问受限的 IP 地址
适合完整项目、高级用户快速探索、分享
学习曲线中等

Cowork 的沙箱机制值得了解一下。它限制了智能体能访问的 IP 地址——它需要向 Anthropic 请求 LLM 响应,但上网能力很受限。你可以在桌面应用里调整权限、放宽网络限制。但默认状态下,它远没有 Claude Code 那么自主。这有好处——风险更低——但 不要因为用了 Cowork 觉得受限,就得出“AI 没那么厉害”的结论。这个结论下早了——你只是给 LLM 加了一堆限制。

我日常工作约 90% 用 Claude Code。我需要完整地访问我的文件、git 和终端工具。但 Cowork 很适合快速原型验证或问问题。

基本交互循环

用 Claude Code 实际是什么样的?你导航到项目目录,启动一个会话,然后开始对话:

> What files are in this project? Summarize the structure.

Claude 读取目录,给你一个通俗的概览。当你接手合作者的代码时,这已经很有用了。

> Read clean_data.py and explain what it does, step by step.

它打开文件,逐步讲解逻辑,标出潜在问题。

> Load data/employment.csv, show the first few rows, and compute summary statistics.

Claude 写一个脚本,运行它,在终端里给你看输出——全部搞定。

这就是循环:描述你想要什么,Claude 写代码并执行,你迭代。 习惯了之后会觉得出奇地自然。

入门技巧

几个我学到的经验:

  1. 要具体。 “分析这个数据” → 不好。“加载 employment.csv,按行业计算月度增长率,画一个 BLS 风格的时间序列图” → 好。
  2. 迭代和备份,管理好你的上下文窗口。 如果输出不太对,直接说。“把图例放大,移到左上角”是完全正常的后续指令。你不需要重新说明所有东西。但是,不要跟 LLM 争论。或者,按 ESC 回退重新运行命令(这会把上下文重置到之前的状态)。
  3. 尽早纠正。 如果 Claude 走偏了,打断它。一句“其实,用 R 而不是 Python”能省很多时间。
  4. 信任但要验证。 这对研究代码尤其重要。Claude 很强,但也会犯错——特别是在统计方法的边界情况上。一定要对照你的预期检查输出。就像你跟 RA 合作一样:RA 能出结果,但你还是要核实。归根结底,论文上写的是你的名字。

Markus 问了一个值得澄清的问题:如果你想让 Claude 写 R 或 Python 代码并运行,你需要在自己的电脑上装好 R 或 Python。代码是在你本地机器上执行的——Claude 不是在云端某个地方跑。如果你没装 R,你可以让 Claude 改用 Python,或者让它帮你安装 R。但实际的计算发生在你自己的硬件上。这就是 Claude Code 相对于沙箱方案的一个好处——你机器上已有的一切,它都能用。

原文信息

related