真实用户分享 Claude Code 使用两周的实际效果与踩坑经验,HN 高热度讨论。具有直接参考价值的工具评测内容。
Cursor(我的最爱)在几天前开始折腾限流。在 2025 年 6 月 16 日之后的大约两周内,我们几乎获得了无限的 API 请求访问权限。那段时间我有很多代码相关的工作,因为我在做 Gumroad 悬赏任务,同时还做着 AI 工程/LLM 评估相关的咨询工作。除了纯粹的代码生成,我还用这些工具来更快地熟悉/理解代码库,并在一般情况下提出大量问题。
但有一天,他们关闭了大门,开始进行速率限制。我承认我用得太过分了,所以对此并不介意。值得思考的是,到底是我在折腾,还是 Cursor 在折腾。
但在这次改变之后,人们被限流的速度快得多,而且只有通过自动模型功能才能获得无限使用。就我个人而言,我真的只信任 Sonnet 4 和 o3。两者在 AI 智能体搜索和代码生成方面都是野兽级别的。用 API 使用付费的方式使用这些模型可能会很快导致"哦老公...现在我们无家可归了"的局面。
我对 Gemini Pro 2.5 和 GPT-4.1 的信任度稍好一点,但我使用前两个的频率最高。哦,我忘了提 Opus 4 能真正帮助解决一些 Sonnet 4 要折腾数小时的 bug,所以当我在 Cursor 中陷入困境时,我会短时间切换到 API 使用付费,解决问题(或者就把代码转到 Claude 聊天平台上)。
使用 Cursor 的一大原因(除了出色的开发者体验)是花 20 美元就能获得价值 100 美元的 API 信用额度,多亏了风投爸爸们,但我不确定今后是否还会保留这一点。
最近,Cursor 上的请求速度也开始变慢了——特别是 Sonnet。也许这是 Anthropic 的问题(有人给这家公司多配些 GPU 和高级分布式系统工程师,让他们的 API 保持正常运行吧)。
除了以上这些,我还受到了很多 tpot 圈子里的人的影响,比如 @tokenbender、@thepushkarp、@xeophon_、@menhguin 等等。Tokenbender 的博客展示了你可以在系统上做很多高级用户和多 AI 智能体的工作,这也让我产生了兴趣。
孩子们,这就是我如何认识 Claude Code 的故事。我已经有了一个 20 美元的订阅。我通过订阅开始使用 Claude Code;他们只提供 Sonnet 4,在 90% 的情况下对我来说都足够了。我在 Cursor 内部安装了 Claude Code。
Cursor 的 diff 审查工作流太方便了,我无法放弃这一点。我喜欢审查我的大部分 diff,不像某些人那样只是不停地按"全部接受"...(Anya Heh 表情 .jpeg)
你可以审查所有的 diff,解决合并冲突,以及所有那些不错的编辑器功能。
有时候你只是想要那么一点点 o3 的使用或 Grok 4 或其他令人兴奋的新模型。其他时候你只是想格式化一些东西,因为在 Claude Code 中复制时保持正确的格式仍然很糟糕。在这一点上,我也已经被 Cursor 的通知音效进行了 RLHF 训练。抱歉,这变成了一篇 Cursor 怀旧帖子,但我保证接下来的部分都是关于 Claude Code 的。
无论如何,由于 Cursor 限流太多,而我有大量的编码工作要做(工作工作加上 Gumroad 悬赏哈哈),我决定尝试 200 美元的 Claude Max 订阅。它基本上是无限的 Sonnet 4 和 Opus 4(而且最好如此),我开始进行实验。我认为 100 美元的方案对大多数人来说应该已经足够了。
在我讲述我的工作流之前,想提供一些我正在使用的编程语言和代码库类型的背景。在过去两周的大部分时间里,我在中等规模的 Python 代码库和一个 Ruby + Typescript 的大型开源代码库上使用了 Claude Code。5000 万+ 个 token。他们有规范和端到端测试,所以当我完成一个功能时我确实有反馈——我可以运行规范,Claude Code 可以形成一个循环。我通常会建议它逐个修复规范。--fail-fast 来快速查找错误。在 Claude Code 之前,我已经使用 Cursor 大约一年了。
最初,我只是输入内容来进行改动。我盯着屏幕,看着它慢慢地找到文件并执行编辑。尽管模型是 Sonnet 4,但我花了一些时间来信任它——尽管花了 2-3 天(哈哈,我当时犹豫是否要打开自动编辑模式)。
一旦我获得了信心,我开始更多地探索命令。我的目标是真正精通基本命令——你需要实验/探索才能找到这些。当你只是阅读内容时很容易错过这些。
接下来的几个部分正是我上面提到的——一个初学者指南,除了我迄今为止的经验之外。我目前的 Claude Code 工作方式是从零开始,像我在和治疗师说话一样倾倒我的整个问题,然后当事情变得复杂时切换到 Opus(/model Opus → Shift+Tab 进入规划模式)。
这些天我告诉它在 CLAUDE.md 中记下笔记。CLAUDE.md 是一个 markdown 文件,会在会话开始时被 Claude 读取。自然地,你会想编写希望 Claude 在开始时始终意识到的指令,并以某种方式引导它。这些是项目特定的。
指令可以是任何东西,比如"不要添加注释"或你的项目特定工作流或你想如何运行审查,或提及你制作的任何自定义命令或你的项目后端架构的详细信息。阅读 Anthropic 的关于编写 CLAUDE.md 的官方指南,了解更多提示,比如"从简单开始,有意地扩展"。
我花了 4 天才发现这个技巧,但有时当我想要捕捉重要观点或保留思考和决策的痕迹时,我会让 Claude 持续编写思想并在 .claude 文件夹内的 'branch-analysis.md' 文件中更新进度。基本上是给它一个草稿本。
你也可以通过让 Claude 先将所有内容写到文件中,然后从那里复制来在某种程度上解决复制粘贴的噩梦。
提示:广泛使用 Shift+Tab;在规划模式和自动编辑模式之间循环。从 Opus 获取规划,用 Sonnet 4 完成 80-90% 的任务。这会更快。下面的截图来自我和我的朋友 Pushkar 的一次聊天,他在这里印证了我们的讨论。
如果你使用 Claude Code,它会显示 X%,直到压缩发生。我看到那一刻,就会在之后开始一个新的聊天——告诉 Claude 在文件中记下重要要点,然后我就会开始一个新的聊天。我直观地觉得开始一个新聊天会更好。
有时候,当我真的喜欢一个笔记并且我绝对想要一些上下文保留时,我会进行压缩。否则,我不会。而且压缩需要花费相当长的时间才能完成。
许多 AI 智能体框架都利用了"草稿本"的想法。你可以告诉 Claude 持续记录它的改变在草稿本中。它会记录所有文件和所有编辑/删除/添加,也许还有用户笔记(你可以告诉它)。当你回到分支并开始新会话时会有很大帮助。顺便说一下,你可以通过 /resume 恢复一个旧会话。我在使用一周后才发现这个功能😭。下面的截图来自 token 的博客。
我在开始使用 Claude Code 的那天发布了这条,哈哈,算法抓住了它。下面有一堆不错的回复。
原帖核心意思是 Claude Code 可能是用它目前使用的相同工具进行后训练的。它在当前环境中只是更舒适。现在我也体验过了,我可以说他们实现的"工具调用"选择对此有帮助。
我认为它也管理上下文更好——Cursor 可能对上下文进行了某种压缩或优化(猜测),而 Claude 只是以香草的方式读取行。我也感觉 Claude Code 可能以更高效的方式使用 token。
顺便说一下,最近我开始在独立终端中更多地使用 Claude Code,而不是 Cursor,因为后者有 bug。
当你看到这个可爱的待办事项列表时——它是 Claude sub-agents 在起作用。这些是由主 Agent(你正在交谈的 Claude)启动的 Claude(Sonnet/Haiku)实例。我不知道待办事项列表如何具体生成或你如何能够手动使其生成的详细信息,但它有助于更好的上下文管理。
我会在后续文章中详细讨论这些——
"任务"编排器实际上是一个函数/工具调用,决定要调用的 sub-agent 的类型以及要给它的提示。回到七月,他们曾经显示"任务"而不是"浏览",然后是一些 sub-UI 组件显示所做的工具调用类型,如 read/edit/grep。
Claude Code 现在字面上有一个叫"Sub-agent"的功能,它启动一个具有单独上下文窗口和由用户定义的自己系统提示的 agent。Sub-agents 仍然通过我提到的相同的任务工具调用来调用。
Claude Code 现在有一个称为"Sub-agent"的功能,可以启动一个具有独立上下文窗口和用户定义的系统提示的 AI 智能体。Sub-agents 仍然通过我前面提到的 Task 工具调用来使用。
TodoWriteTool 的工作原理将在后续文章中介绍。
Cursor 允许模型进行普通搜索和语义搜索。如果我没记错的话,agentic 搜索就是让模型自己探索代码库,并自由使用 grep、ripgrep 这样的工具。Cursor 提供了语义搜索工具调用。正因为这样,我认为总体上 Cursor 的搜索要快得多,因为相似度搜索能更快地找到相关结果。有时候 grep 或关键词搜索甚至可能会因为找不到精确匹配而遗漏某些文件。语义搜索的优点在于它具有模糊匹配能力。
Claude Code 的搜索似乎相当慢(可以通过上面提到的上下文管理技巧来缓解)。加快搜索速度的一种方法是告诉 Claude Code 遍历整个代码库——比如"使用 3 个 sub-agents 来理解 xyz",它就会启动三个 Task sub-agents(独立的 Claude 实例)来搜索并将输出返回给主 Claude 智能体(你交互的那个)。
使用这种方法可以在大型代码库中进行大量搜索,而且运行速度很快,因为这些实例/sub-agents 的运行方式类似于多线程,由 Task 工具编排。它们与主智能体独立运行,可以使用 Haiku 3.5/Sonnet 3.5。由于这些是更小的模型,它们运行更快。
你可以指定模型,主智能体会用该模型启动新的 sub-agent,例如"启动 3 个基于 Sonnet 的智能体"。我个人倾向于在大多数任务中使用更好的模型,但如果需要进行 grep 工具调用、读取和过滤代码,我认为即使是 Haiku 也足够了。
参考资料:"Task tool"。
Anthropic 的官方文章 claude-code-best-practices 提供了大量有价值的指导,说明你应该如何规划、探索和开始编码。
下面的截图是 Anthropic 文章的核心内容。我的工作流程与此类似。需要注意的一些关键建议是何时使用 Plan、何时使用 sub-agents,以及如何使用 /think、/think hard 和 /ultrathink 提示。
我曾经想知道如何在不打开新终端窗口或选项卡的情况下使用 bash 模式。后来我查看了快捷键 Shift + ?。你只需按下 !。我是在使用大约一周后才了解到这一点的(笑)。
它可以运行一次性命令,但我认为它不能运行 Python 交互式 shell,就像在普通终端中一样。顺便说一句,我喜欢这些颜色。
另外,可以使用 claude -p "search the internet and tell me about anthropic" 以无头模式运行 Claude,因为它是一个真正的 CLI 工具。
继续往下...这听起来可能很傻,但我不知道你可以使用 @ 符号来引用文件。@ 用来引用文件。花了我 3-4 天的使用时间才知道这一点。最后是 @Josh9817 告诉我的。如果我之前查看过快捷键,我早就意识到这一点了。
另一个功能是 memorize(记忆)。到目前为止我还没有经常使用它,但它就像在系统提示中添加自定义说明。它会在不同的会话中使用这些内容。
Claude Code 以递归方式读取记忆:从当前工作目录开始,Claude Code 向上递归到(但不包括)根目录 /,并读取它找到的任何 CLAUDE.md 或 CLAUDE.local.md 文件。这在处理大型仓库时特别方便,当你在 foo/bar/ 中运行 Claude Code,同时在 foo/CLAUDE.md 和 foo/bar/CLAUDE.md 中都有记忆时。
Claude 还会发现当前工作目录下的子树中嵌套的 CLAUDE.md。它们不是在启动时加载,而是仅在 Claude 读取这些子树中的文件时才包含。
Sonnet 在大约 90% 的时间内能完成工作,实际上它在 SWE-bench 上的得分甚至略高于 Opus 4。它非常擅长 Python 和各种前端开发。当上下文变长时,Sonnet >> Opus,而且它更具 agentic 特性,速度更快。
我注意到 Opus 在经过几个指令回合后往往会变得困惑。我解决这个问题的方法 → 在这些情况下,我通常会告诉它把东西存储在 .Claude 文件夹内的某个文件中,然后开始一个新的对话。如果是某个困难的 bug,我会先用 Opus。否则,我就用 Sonnet 开始。如果你已经向 Sonnet 提供了所有相关的上下文,大多数时候 Sonnet 都能完成工作。
当 Sonnet 卡住时 Opus 表现良好——开启一个新窗口,多用 Opus。
/pr-comments 和 /review 默认可用,但它们反映了自定义命令的样子。你需要安装 GitHub CLI。
假设我在一个分支上做了一些改动,现在想要重新开始对话。在这种情况下,有两个选项:
你可以使用 review 功能让它审查 diff
还有一个命令可以获取 PR 评论
我可以在某个文件中提到评论相关的人员,这样我们就可以跳过其他机器人之类的。你还可以做的另一件事是告诉它"我们想要开始新的会话",然后我们会通过 review PR 看到 diff。这会需要更多步骤,但会有更多上下文。一个更简单的方法是告诉它"嘿,请检查一下与 main 的 diff"(这就像替代 Cursor 中我也喜欢的"从 main 分支 diff"功能)。
快速按两下 Esc,你可以从对话中的任何地方分叉!
你可以做 / permissions 来在会话前调整权限
使用 claude --dangerously-skip-permissions 如果你感觉大胆的话
我想定义一些自定义命令并类似地使用它们
我想尝试一些 MCP 服务器,比如 Playwright 服务器,来自动化前端开发。我们需要专注于为 Claude 创建反馈循环,这样它就可以截图、看到截图,然后迭代 UI。
所有在 how-i-bring-the-best-out-of-claude-code-part-2 中提到的东西
我想尝试一些提示词优化。这一直在我的待办事项列表中,因为我在工作中有一对两个关于这个的任务。我认为这会是这样的过程——首先我必须确定我会根据什么标准来判断提示词。从某些简单/容易开始,然后逐步完善。我可以把它放在一个文件 rubric.md 中。然后我可以有几个文件包含可能进入我的 prompt.md 的上下文。prompt.md 存储提示词。然后我们使用提示词运行 Claude,把输出传给另一个 Claude 实例用于评判,让一个 Claude 实例找出缺陷,然后随后更新提示词。这可以像一个单一的 Claude 实例循环或一个多智能体系统一样。(受 Nirant 的文章启发)
多智能体系统,其中我使用多个 Claude Code 实例,并允许它们使用动作日志相互通信
我认为 Cursor 也是一个强大的使用工具,它的 UI/UX 非常精致。但是 Claude Code 在强大使用方面更进一步(但显然在 UI/UX 和陡峭的学习曲线上落后)
总的来说,由于 Claude Code 基于 CLI 的性质,它促使用户进行更多探索。我认为正因为缺乏视觉 UI 线索,它鼓励探索。许多东西是隐藏的,你需要找到它。它奖励你的好奇心。由于这个原因,它可能对极客和超级用户来说感觉更好。
一个可能的 UI 集成(你可以查看 Claudia,但只是时间问题他们会做)
像我们在 Cursor 中那样的检查点。我知道 Git 存在,但 Cursor 的检查点仍然太方便了。
更好的复制粘贴 😭
允许使用其他模型(好吧,他们不会给这个)
如果你坚持到了这里,感谢你的阅读!希望你学到了新东西。
这是一篇关于 Claude Code 体验的伟大博文 https://t.co/jkl012
编辑:我们在 HackerRank 中排名第 5
这是我第二次上 Hackernews 首页。你可能也喜欢我的第一篇 Hackernews 首页博文《Shape Rotation 101: An Intro to Einsum and Jax Transformers》