Claude Code 最佳实践视频文稿

Claude Code best practices:https://www.youtube.com/watch?v=gv0WHhKelSE

双语字幕版:https://www.bilibili.com/video/BV1EqhJzmEqE/

引言:开启 Claude Code 之旅

大家好,欢迎来到“Claude Code 最佳实践”分享会。在接下来的时间里,我将首先宏观地介绍 Claude Code 的概念,然后深入探讨其内部工作原理。理解工具的原理是高效使用的基础,因此在了解这些之后,我们将一同探讨 Claude Code 的理想应用场景,并分享我们从内部实践和用户反馈中总结出的最佳实践,以帮助您最大化地发挥其潜力。

自我介绍与缘起

在正式开始前,请允许我做个简单的自我介绍。我叫 Cal,大约一年半前加入 Anthropic,参与创建了“应用 AI”团队。我们团队的使命是帮助客户与合作伙伴,基于 Claude 构建出色的产品和功能。这意味着我的日常工作就是大量地与 Claude 交互,通过提示工程(Prompt Engineering)来挖掘模型的最佳性能。

我本人也是一名编程爱好者,常常有很多新奇的想法并动手实践,但坦白说,我有很多项目都只是开了个头。去年底,我偶然听同事提起一个很酷的新工具,也就是 Claude Code 的前身。一个周五晚上,我下载并试着用它来构建我构思已久的一款笔记应用。

结果,整个周末的体验彻底颠覆了我对编程和软件工程的认知。我几乎是笔记本不离手,痴迷地看着 Claude Code 工作——我只需按下回车,切换到浏览器刷新,一个功能强大、结构复杂的应用就在我眼前逐步成型。我借助它所取得的进展,远超我独自一人所能达到的程度,这让我大开眼界。

有趣的是,我当时一边享受着编码的乐趣,一边又有些担心,因为我知道这会消耗大量的 token,生怕会因此惹上麻烦。但我不知道的是,Claude Code 团队内部有一个排行榜,追踪所有员工对该工具的使用情况。那个周末过后,我一路飙升到了榜首。

这让我有机会结识了 Claude Code 团队的早期成员,并凭借我对提示工程的理解,成功加入了这个团队,成为核心贡献者之一。我目前主要负责提示工程、系统提示、工具集成以及效果评估等工作,确保我们对工具的每一次迭代都能带来真正的提升。


第一章:Claude Code 是什么?—— 一个心智模型

当别人问我 Claude Code 是什么时,我喜欢用这样一个比喻:

Claude Code 就像你团队里那个总是在终端(Terminal)里完成所有工作的技术奇才。

他从不使用图形用户界面(GUI),能力超群。这让我想起我做初级工程师时的导师 Tony。每当我遇到难题求助于他,他总能迅速切换到终端,用一连串我看不懂的 Bash 命令和 Vim 操作轻松解决问题,每次都让我惊叹不已。

在你的电脑上拥有 Claude Code,就如同拥有了一个随时待命的 “Tony”。


第二章:深入内部:Claude Code 的工作原理

在 Anthropic,我们信奉“能奏效的简单方案”(The Simple Thing That Works)。Claude Code 正是这一理念的体现,它是一个我们认为非常纯粹的 AI 智能体(AI Agent)。

核心:纯粹的 AI 智能体

一个 AI 智能体,其核心构成可以概括为:

  1. 明确的指令 (Instructions)

  2. 强大的工具集 (Powerful Tools)

  3. 循环执行机制 (Loop)

模型会根据指令,在一个循环中持续调用工具,直到它自主判断任务已经完成。Claude Code 的工具集正是那些终端高手所钟爱的:创建和编辑文件的工具、执行终端命令的工具等。

独特的代码理解方式:智能体式搜索 (Agentic Search)

与传统编程AI工具不同,Claude Code 在理解代码库时,不进行任何形式的索引或 RAG(检索增强生成)

它的工作方式更像一个新人加入团队后熟悉项目的过程——通过探索来理解。我们称之“智能体式搜索”。它会使用你我都会用的 globgrepfind 等命令在代码库中穿梭,阅读文件,理解项目结构和逻辑。

这意味着模型可以先进行一次搜索,然后根据搜索结果判断:“嗯,我可能还需要了解另外几件事。” 于是它会进行更多的搜索,逐步构建起对整个代码库的认知。

完善的辅助系统

在这个核心智能体之上,我们还构建了一些关键部分:

  • 轻量级用户界面:让你能实时观察 Claude Code 的工作过程。

  • 权限系统:在 AI 智能体执行读取等安全操作时自动放行,但在执行写入文件、运行命令等可能具有风险的操作时,会请求人类用户授权,确保安全可控。

  • 安全性与灵活性:由于 Claude Code 只是模型之上的一个轻量级封装,你可以轻松地将其指向通过 AWS、GCP 等云服务商提供的 Claude 模型,以满足不同的安全与合规需求。


第三章:释放潜能:Claude Code 的应用场景

Claude Code 的应用范围非常广泛,几乎涵盖了软件开发的全周期。

  • 项目探索与上手 (Exploration):当你加入一个新团队或接触一个开源项目时,往往需要花费大量时间熟悉代码。Claude Code 可以极大缩短这个过程。你可以直接问它:“某个功能是在哪里实现的?”或者“通过 Git 历史,告诉我这段代码在过去几周发生了哪些变化?”

  • 成为你的思想伙伴 (Thought Partner):在动手编码前,你可以让 Claude Code 扮演军师的角色。例如,你可以说:“我准备实现这个功能,请你先研究一下代码库,为我提供两到三种不同的实现方案,并分析优劣。暂时不要写任何代码。” Claude 会利用其智能体式搜索能力,为你提供决策参考。

  • 高效构建与编码 (Building & Coding)

    • 从零到一:你可以把它放进一个空目录,让它为你创建一个全新的应用或游戏。

    • 在现有代码库中工作:这是我们关注的重点。它能极大地提升日常开发效率,例如,为现有代码快速添加单元测试。在 Claude Code 团队内部,我们的单元测试覆盖率非常高,这很大程度上归功于此。此外,我们还可以让它自动生成高质量的 Git 提交信息和 PR 描述。

  • 部署与运维 (Deployment & Lifecycle):通过 Claude Code SDK,你可以“无头模式”(Headless Mode)以编程方式使用它,将其集成到 CI/CD 流程或 GitHub Actions 中,实现自动化工作流。

  • 支持与规模化 (Support & Scaling)

    • 快速调试:帮助你更快地定位和修复 Bug。

    • 大型代码迁移:我们发现,许多团队因为技术债而推迟了大型重构项目(如旧版 Java 升级、PHP 迁移到 React)。Claude Code 这样的工具,使得这类原本望而生畏的项目变得更具可行性。

  • 终端工具大师 (Master of CLI Tools):记住,它精通各类命令行工具,如 Git、Docker、BigQuery 等。当你遇到棘手的 git rebase 冲突时,不必再头痛,直接启动 Claude Code,告诉它情况,让它帮你解决。


第四章:最大化效率:最佳实践与高级技巧

基础最佳实践

  1. 善用 claude.md 文件

    • 作用:这是在不同会话或团队成员间共享状态和指令的核心方式,相当于 Claude 的“长期记忆”。当 Claude 启动时,它会自动读取当前工作目录下的 claude.md 文件,并将其内容作为核心指令。

    • 内容建议:你可以在里面存放项目特定的信息,如“如何运行单元测试”、“项目目录结构概览”、“团队代码风格指南”等。你也可以在你的用户主目录(Home Directory)下放置一个全局的 claude.md 来存放通用指令。

  2. 智能管理权限

    • 加速工作流:默认情况下,写文件或执行命令需要手动确认。你可以使用“自动接受模式”(快捷键 Shift + Tab)让 Claude 直接执行。

    • 自定义规则:你可以在设置中将某些常用且安全的命令(如 npm run test)配置为始终自动批准,从而减少不必要的中断。

  3. 优化集成设置

    • 安装 CLI 工具:如果你使用的工具有命令行版本(如 GitHub 的 gh),请务必安装它。这能让 Claude 更方便地与外部服务交互。

    • 告知内部工具:如果你的公司有内部命令行工具,记得在 claude.md 文件里告诉 Claude 它的存在和用法。

  4. 有效管理上下文

    • 背景:我们的模型拥有 20 万 token 的超大上下文窗口,但在长时间的会话中仍有可能被填满。

    • 策略:当右下角出现上下文即将用尽的警告时,你有两个选择:

      • /clear:清空当前会话,重新开始。

      • /compact:这是一个非常强大的功能。它会启动一个内部提示,让模型将当前会话的所有工作总结成一份摘要,然后用这份摘要作为新会话的“种子”,让你无缝地继续工作。

  5. 构建高效工作流

    • 先计划,后执行:不要直接命令“修复这个bug”,而是说“我遇到了这个bug,请先调查原因,然后给我一个修复计划”。这样你可以在它动手前验证其思路是否正确。

    • 利用待办事项 (To-Do List):在处理复杂任务时,Claude 会生成一个待办事项列表。你可以观察这个列表,如果发现方向不对,可以随时按 Escape 键打断它,并调整计划。

    • 拥抱测试驱动开发 (TDD):让 Claude 进行小范围修改、运行测试、检查代码规范、然后提交。这种小步快跑的方式能确保项目不会偏离轨道。

    • 利用多模态能力:你可以随时粘贴截图,或者让 Claude 读取图片文件(如 mock.png),并根据视觉设计来构建界面。

高级技巧

  1. 同时运行多个 Claude 实例:当你熟练后,可以尝试在 Tmux 或多个终端标签页中同时运行多个 Claude 智能体,让它们并行处理不同任务。这是一个有趣的挑战。

  2. Escape 键是你的超能力

    • 单击 Escape:你最好的朋友。随时用它来打断 Claude 的当前操作,并给出新的指示。知道何时打断,是最大化效率的关键。

    • 双击 Escape:一个隐藏功能。双击可以让你撤销到上一次对话,相当于一次“重置”。

  3. 无头模式与自动化:这是我们最兴奋的领域。探索如何通过编程方式(SDK)在各种场景(如 GitHub Actions)中使用 Claude,将 AI 智能体的能力“撒”向开发工作流的每一个角落。


第五章:新功能速览与问答

最新功能

我们发布新功能的速度非常快,保持关注很重要。

  • /model 命令:你现在可以在 Claude 中输入 /model 来查看并切换当前使用的模型(如从 Sonnet 切换到 Opus)。

  • 工具调用间的思考过程:从 Claude 3(Opus)开始,模型可以在两次工具调用之间进行“思考”。你会看到用浅灰色文本显示的思考过程,这对于理解其决策路径和调试非常有帮助。

  • IDE 深度集成:我们与 VS Code 和 JetBrains 的集成为你带来更流畅的体验。

你可以在我们公开的 Claude Code GitHub 项目中找到更新日志,建议每周查看。

现场问答 (Q&A)

  • 问:一个项目里可以有多个 claude.md 文件吗?

    • 答: 在同一个目录下不行。Claude 启动时只读取当前工作目录下的 claude.md。为避免在单一代码库(Monorepo)中上下文爆炸,它不会默认读取子目录的 claude.md。但你可以在主 claude.md 中用 @ 符号引用其他文件,或者在启动 Claude 时,鼓励它去搜索并阅读相关子目录中的 claude.md

  • 问:我让 Claude 遵守 claude.md 里的指令(比如不留注释),但它不听怎么办?

    • 答: 这是一个典型的模型行为问题,尤其在旧模型上更常见。好消息是,新一代模型(如 Opus)在遵循指令方面的能力已大幅提升。我们收到的反馈显示,用户普遍感觉 claude.md 的指令在新模型上被遵守得更好了。建议您升级模型,并借此机会重新审视和优化您的 claude.md 文件。

  • 问:可以实现多智能体并行执行,并让它们共享上下文吗?

    • 答: 目前我们的理念是专注于打造一个极度强大的单一智能体。对于多智能体协作,今天的最佳实践是通过文件进行状态同步。你可以让一个智能体将其中间结果或状态写入一个共享文件(如 ticket.md),然后让另一个智能体去读取这个文件,从而实现间接的协作。未来我们可能会探索更原生的多智能体协作功能。


谢谢大家。