本文来自于 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

它会先搜索,然后分析搜索结果,心想:“嗯,看来我还需要更多信息”,于是它会进行更多轮的搜索,直到它对整个代码库的结构和逻辑了然于胸。

除此之外,我们还加了几个轻量级的设计:

  1. 一个漂亮的 UI 层:让你能实时看到 Claude 的工作过程,感受代码飞速生成。
  2. 一个权限系统:对于读取操作,它会自由进行;但当它要修改文件或执行可能危险的命令时,它会停下来征求你的许可(Yes/No/Always Allow)。
  3. 高度的安全性:你可以很方便地将 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,看看哪些指令可以简化或更新了。


希望这些分享能帮助你更好地与你的“终端大师”搭档。现在,去打开你的终端,试试这些技巧吧。祝你编码愉快!