本文来自于 Anthropic 组织的线下分享会,从时间上看应该是 5 月前组织的线下分享会,里面不仅有 Claude 工程和算法团队的分享,还包括 Google、Amazon、Manus 甚至是创业者和学生的分享,特别值得观看,这里把其中我认为比较优质的视频内容整理出来分享给大家。本篇文章来自于视频 Claude Code best practices,以下为原视频精华。
大家好,我是 Cal,在 Anthropic 的应用 AI 团队工作。我的日常就是和 Claude 打交道,想方设法地挖掘出这些模型最惊艳的潜力。不过,除了做提示词工程,我也是个不折不扣的编程爱好者。
你懂的,就是那种脑子里总有疯狂点子,喜欢启动一堆新项目,但最后能完成的寥寥无几的人。我的电脑里简直就是个“代码项目坟场”。
直到去年年底,我在公司内部听说了一个很酷的新工具。一个周五晚上,我下载了这个后来被命名为 “Claude Code” 的工具,并把它用在了我想开发的一个新笔记应用上。那个周末,彻彻底底地改变了我对编程和软件工程的看法。
我整个周末都抱着笔记本电脑,简直像上瘾了一样,看着 Claude 不断编写代码。我按下回车,切换到浏览器刷新,一个强大复杂的应用就在我眼前慢慢成形。我一个人绝对不可能在这么短的时间内做到这个地步,这感觉太震撼了。
当时我还有点小担心:“天啊,我这得用了多少 token,不会被老板发现我没在干正经活吧?” 但我不知道的是,Claude Code 团队内部有个排行榜,记录着所有员工的使用情况。一个周末下来,我直接冲到了榜首。
就这样,我认识了 Boris 和 Cat 这些 Claude Code 的早期团队成员。凭借着我对提示词的了解和对这个工具的热爱,我加入了他们,成为了核心贡献者之一。
今天,我想跟大家聊聊 Claude Code,分享一些我们内部总结的最佳实践。
把你的编程搭档,想象成一位终端命令行高手
如果有人问我 Claude Code 是什么,我的脑海里会浮现出一个画面:它就像你团队里那个精通命令行的同事。
他从不碰图形界面,手指在键盘上翻飞,用各种复杂的 Bash 命令和 Vim 快捷键解决问题。我刚当工程师的时候,就有个叫 Tony 的导师。每次我遇到 bug 去找他,他总是在终端里一顿操作,看得我眼花缭乱,然后问题就解决了。我总是想:“太牛了,我啥时候也学学这个。”——当然,我从来没学会。
但现在,拥有 Claude Code,就好像随时随地都有一个 Tony 坐在你旁边。
揭秘:Claude Code 是如何工作的?
在 Anthropic,我们信奉一个原则:“做那个能奏效的简单方案”。对于 Claude Code 来说,这意味着它是一个非常“纯粹”的智能体(Agent)。
它就是一个强大的模型 + 一套强大的工具 + 一个循环执行机制,直到它认为任务完成了。这套工具,就是终端高手会用到的那些:
- 创建和编辑文件
- 执行终端命令
- 通过 MCP(模型协作协议)调用其他服务
那么,它又是如何理解你的代码库的呢?
一年前,你可能会想,要做个编码工具,得先索引整个代码库,做成向量嵌入,然后用 RAG(检索增强生成)来找到相关文件。
但 Claude Code 不这么干。 我们没有做任何形式的索引。
相反,Claude Code 探索代码库的方式,就像你刚加入一个新团队,需要熟悉一个庞大的代码库一样。它使用人类开发者会用的那些工具进行“智能体搜索”(Agentic Search):
glob
grep
find
它会先搜索,然后分析搜索结果,心想:“嗯,看来我还需要更多信息”,于是它会进行更多轮的搜索,直到它对整个代码库的结构和逻辑了然于胸。
除此之外,我们还加了几个轻量级的设计:
- 一个漂亮的 UI 层:让你能实时看到 Claude 的工作过程,感受代码飞速生成。
- 一个权限系统:对于读取操作,它会自由进行;但当它要修改文件或执行可能危险的命令时,它会停下来征求你的许可(Yes/No/Always Allow)。
- 高度的安全性:你可以很方便地将 Claude Code 指向你在 AWS 或 GCP 上部署的模型,确保数据安全。
Claude Code 能帮你做什么?(几乎所有事)
这工具到底能用在哪些地方?答案可能比你想象的更广。
1. 项目探索与上手
无论是换团队、换公司,还是参与开源项目,快速熟悉新代码库都是个挑战。你可以直接问 Claude:
- “这个功能是在哪里实现的?”
- “看看这个文件,用
git history
给我讲讲它过去几周的演变故事。”
这能极大地缩短你的上手时间。
2. 成为你的技术“陪练”
在动手写代码之前,先和 Claude 聊聊。我会这么说: “嘿,Claude,我准备实现这个新功能。你先在代码库里到处看看,帮我构思一下,然后给我两三种不同的实现方案。先别写任何代码。” 它会利用智能体搜索能力,给你一份详尽的报告。你可以跟它一起评估方案,然后再开始动手。
3. 编码与构建(从 0 到 1,以及从 1 到 N)
它既能从一个空目录开始,帮你构建一个全新的应用或游戏(这过程非常有趣,也很有成就感),也能在现有的庞大代码库中游刃有余。
在我们 Claude Code 团队内部,我们的单元测试覆盖率出奇地高。因为用它来写测试实在是太轻松了。同样,我们还有非常规范的 commit 和 PR 信息,因为写完代码后,我们直接让 Claude 帮我们生成。
4. 部署与运维
通过 Claude Code SDK,你可以将这个编码智能体“无头”(headless)地、以编程方式集成到任何地方。比如:
- 嵌入到 CI/CD 流程中。
- 在 GitHub Actions 里自动处理一些任务。
5. 技术支持与大规模重构
- 快速 Debug:它能帮你更快地定位和修复错误。
- 大型代码库迁移:我们接触过很多客户,他们一直想把老旧的 Java 项目升级,或者把 PHP 项目迁移到 React/Angular,但工程量太大迟迟无法动手。有了 Claude Code 这样的工具,这些曾经遥不可及的项目,现在变得触手可及了。
别忘了,它是一个终端大师。这意味着它能熟练使用各种命令行工具,比如 Git
, Docker
, BigQuery
等。我再也不用担心把自己搞进某个棘手的 git rebase
困境了,直接打开 Claude Code,告诉它情况,让它帮我解决就行。
成为 Claude Code 高手的最佳实践
好了,干货来了。这里有一些我们总结出来的最佳实践,能让你的效率再上一个台阶。
1. claude.md
:给你的搭档一份“说明书”
这是最重要的一条。Claude Code 本身没有长期记忆,claude.md
文件就是我们跨会话、跨团队共享状态的主要方式。
当你启动 Claude Code 时,它会自动加载当前目录下的 claude.md
文件内容到提示词里。这等于告诉它:“嘿,这是开发者留给你的重要信息,务必遵守。”
- 放在哪里?
- 项目根目录(并提交到 git,团队共享)。
- 你的用户主目录(
~/
),存放一些通用的个人偏好。
- 放什么内容?
- 如何运行单元测试的命令:
npm run test
。 - 项目的结构概览:测试文件在哪,核心模块有哪些。
- 团队的代码风格指南。
- 你内部 CLI 工具的用法。
- 如何运行单元测试的命令:
2. 玩转权限管理,提升速度
默认情况下,修改或执行命令都需要你手动确认。但你可以通过一些设置来加速:
- 自动接受模式 (Auto-accept Mode):按下
Shift + Tab
,Claude 将会自动执行所有操作,无需你确认。 - 配置白名单:在设置里,你可以将一些常用且安全的命令(比如
npm run test
)设置为总是允许,免去重复点击。
3. 善用集成,扩展能力
记住,Claude Code 的超能力源于终端。
- 安装 CLI 工具:如果你常用的服务有 CLI(比如 GitHub 的
gh
),请务必安装它。Claude 能很好地利用这些工具。通常,对于成熟的应用,直接使用其官方 CLI 比配置 MCP 服务更简单高效。 - 告知内部工具:如果你公司有内部工具(比如我们 Anthropic 的
coup
),记得在claude.md
里告诉 Claude 如何使用它。
4. 管理上下文,保持高效
我们的模型有 200k 的上下文窗口,但在一次长对话中,你完全有可能把它用满。当右下角出现上下文告急的提示时,你有两个选择:
/clear
: 清空当前所有对话历史,重新开始(claude.md
的内容会保留)。/compact
: 这会触发 Claude 对当前整个对话进行一次“总结”,然后用这个总结作为新会话的开端,让你能接着之前的工作继续。我们花了很多时间优化这个功能。
5. 掌握高效的工作流
- 先规划,后执行:不要直接说“修复这个 bug”,而是说“我遇到了这个 bug,请先调查一下原因,然后给我一个修复计划”。这样你可以先审查它的思路,避免它走弯路。同时,留意它生成的待办事项列表(To-do list),及时干预。
- 聪明的“氛围编程” (Vibe Coding):
- 测试驱动开发 (TDD):让 Claude 先写测试,再写实现,小步迭代,确保每次修改后测试都能通过。
- 检查与验证:让它在编码后运行 TypeScript 检查和 Linting。
- 频繁提交:定期让它提交代码,这样即使后面走偏了,也能轻松回滚。
- 用截图来引导:Claude 是多模态的。你可以直接粘贴一张 bug 的截图,或者一个产品设计的 UI 稿(比如
mock.png
),然后说:“照着这个帮我实现前端页面。”
6. 进阶技巧:挑战极限
- 同时运行多个 Claude:我们内部有些高手会同时在不同的终端窗口(比如用 tmux)里运行 2-4 个 Claude 实例,像指挥官一样协同作战。这非常有趣,我目前只能驾驭两个,推荐你试试。
Esc
是你的好朋友:- 按一次
Esc
:随时打断 Claude 的当前操作,并给出新的指令。什么时候该打断,什么时候该让它自己解决,是掌握这个工具的关键。 - 隐藏功能:连按两次
Esc
(Esc Esc
):可以让你回退到之前的对话节点,重新编辑你的指令。
- 按一次
- 探索 Headless 自动化:这是我们最兴奋的方向。思考一下,除了在 IDE 和终端里,你还能在哪些地方以编程方式使用 Claude?比如集成到你的自动化脚本里。
最新动态与实用技巧(Q&A 精选)
我们正在飞速迭代,这里有些最新的功能和常见问题解答:
- 切换模型:现在你可以用
/model
或在/config
中,自由切换使用 Sonnet 或更强大的 Opus 模型。 - 思考升级 (Think Hard):现在,当你说 “think hard” 时,Claude 不仅在生成最终答案前思考,还会在每次工具调用之间进行思考。你会看到灰色的“思考”文本和工具调用交替出现,这让它的推理过程更透明,结果也更可靠。
- IDE 集成更智能:在 VS Code 和 JetBrains 插件中,Claude 已经能知道你当前打开和选中的文件是哪个。
Q: 我可以在一个项目里用多个 claude.md
文件吗?
A: 它默认只读取当前工作目录和用户主目录下的 claude.md
。这主要是为了防止在 monorepo 的根目录打开时,加载过多子目录的 claude.md
导致上下文爆炸。但 Claude 在探索代码时,如果发现子目录里有相关的 claude.md
,它会被鼓励去阅读。另外,你可以在主 claude.md
文件里用 @
符号来引用其他文件,实现模块化配置。
Q: 我的 Claude 好像不听 claude.md
的话,比如我让它别加注释,它还是会加。
A: 这是个好问题。其实在旧模型上,这是一个已知的“固执”行为。我们甚至在系统提示词里反复强调“不要加无用注释”,但模型就是热爱注释。好消息是,在最新的 Claude 模型(如 Opus)上,它遵循指令的能力已经大幅提升。很多早期测试者反馈,他们的 claude.md
突然变得前所未有的有效。现在也许是时候重新审视一下你的 claude.md
,看看哪些指令可以简化或更新了。
希望这些分享能帮助你更好地与你的“终端大师”搭档。现在,去打开你的终端,试试这些技巧吧。祝你编码愉快!