00:00:00Claude code 最近的表现并不理想。
00:00:02我们团队每天都在使用它,但在过去的几周里,我们的额度用尽速度
00:00:06远快于预期。
00:00:07100 万 token 的上下文窗口本该让情况变好,但实际上
00:00:12反而让情况更糟了。
00:00:13这就是为什么我们去研究了各种优化方法,希望能让 Claude code 的额度维持更久。
00:00:18在我们深入探讨如何充分利用额度之前,让我们先
00:00:22讨论一下 Claude 的订阅方案和限制系统到底是如何运作的。
00:00:26这一部分是为了向那些还不熟悉限制机制的人
00:00:30进行解释。
00:00:31Claude 有两个付费方案,分别是 Pro 和 Max 方案。
00:00:34Max 是最贵的,而 Pro 则是每月只需 20 美元的较便宜方案。
00:00:38这两个方案都能访问免费方案所没有的功能,包括
00:00:43Claude code、co-work 等等。
00:00:45但它们都遵循同样的规则。
00:00:46无论哪种方案,都会在 5 小时窗口内给你有限的消息发送次数,
00:00:51一旦该窗口结束,你的消息计数就会重置。
00:00:55你获得的消息数量因方案而异。
00:00:575 小时窗口从你发送第一条消息开始计时,无论是在 Claude 桌面版、
00:01:01网页版还是任何 Claude 界面。
00:01:03窗口开始后,你发送的每条消息都会计入该方案设定的限额。
00:01:08你可能以为窗口只在你活跃使用时才会计时。
00:01:11但即使你在中间处于闲置状态,然后在第 5 个小时大量使用,该窗口
00:01:15依然在计时,你必须等待整整 5 小时过去,限制
00:01:20才会重置。
00:01:215 小时窗口也不受设备限制。
00:01:23所以,如果你在同一个账号下使用多个设备,所有使用量都会被计入
00:01:27同一个限额内。
00:01:28对于 Pro 方案,每个 5 小时窗口大约可以发送 45 条消息。
00:01:32Max 方案提供 225 条,而比 100 美元方案更贵的 Max 20 倍方案,
00:01:37在同一窗口内提供 900 条消息。
00:01:41这些数字会根据你使用的模型而变化,使用 Sonnet 会有更多消息,
00:01:46而使用 Opus 则会更少。
00:01:47你可能觉得这个消息数量对你的使用场景来说绰绰有余。
00:01:51但这只是一个粗略的计数,还有其他因素会影响它。
00:01:54第一个因素是你使用的模型。
00:01:56对于同样的请求,Opus 模型消耗的 token 约是 Sonnet 的 3 倍,
00:02:01因为它们更强大,计算量也更大。
00:02:03所以如果你一直使用 Opus,你在 5 小时窗口内无法获得 45 条消息,
00:02:08你的限额会耗尽得快得多。
00:02:10Pro 方案的整体限制较低。
00:02:12至于 Max 方案,虽然个人使用可能够用,但 Max 通常是
00:02:16由组织购买并分发给团队成员的,所以在多人使用的情况下
00:02:20它支撑不了多久。
00:02:21我们在 AI labs 也是这样做的,我们购买了 Max 方案并分发给团队。
00:02:26即便如此,我们仍经常用尽限额,这促使我们去研究
00:02:30如何让它维持更久的方法。
00:02:31第二个因素是你执行的任务类型。
00:02:34计算密集型任务或需要调用多个工具的任务会消耗大量 token。
00:02:38因此,窗口会比平时耗尽得快得多,在 Pro 方案上你可能
00:02:43甚至发不到 45 条消息。
00:02:44最重要的是,Anthropic 最近在工作高峰期——也就是很多人
00:02:48同时大量使用服务的时候——会更快地缩减会话限制。
00:02:52所以你的 Claude 方案可能还没等干完正事就用完了。
00:02:56这就是为什么现在是学习如何最大限度利用窗口、
00:03:00整天高效使用 Claude 的最佳时机。
00:03:02但在继续之前,先听听我们的赞助商 Twin 怎么说。
00:03:05如果你尝试过用 Zapier 或 N8N 等工具进行自动化,你应该深有体会。
00:03:09工作流死板、经常崩溃,还要浪费数小时连接应用。
00:03:13而像 Claudebot 这样的本地代理既是安全噩梦,又太昂贵。
00:03:17Twin 改变了这一切。
00:03:18它是一个无代码 AI 代理,能在你睡觉时真正帮你完成工作。
00:03:21它在有 API 时通过 API 连接工具;如果没有 API,它能即时
00:03:26构建集成,为你提供无限的集成库。
00:03:29如果没有 API,Twin 甚至可以像人类一样浏览和交互。
00:03:33此外,你还可以内置访问 Perplexity、Gamma、VO3 和 Nanobanana 等工具。
00:03:38他们刚刚推出了 Twin API。
00:03:40所以你可以从任何地方触发代理,并将其接入你现有的工作流。
00:03:44而最棒的部分是什么?
00:03:45这些代理具有学习能力。
00:03:46它们能在出错时自我修复,随时间优化并全天候运行。
00:03:50别再守着那些坏掉的自动化程序了。
00:03:52点击置顶评论中的链接,去看看 Twin 吧。
00:03:55现在你可能已经知道 Claude code 的源代码泄露了。
00:03:58很多人发现其中存在许多问题,会导致额度
00:04:02比预期消耗得更快。
00:04:04其中之一是截断的响应会留在上下文中。
00:04:07比如当你遇到达到频率限制等错误消息时,它可能会产生一个
00:04:12部分响应。
00:04:13针对这种情况,它会重试,但会保留之前的上下文以及
00:04:17那个包含错误的部分消息。
00:04:18这会让上下文中充斥着不必要的信息,浪费 token。
00:04:22技能列表也被注入进来,主要是为了更快的访问,尽管由于
00:04:27已经存在更快的技能工具处理方式,它们并没提供太多价值。
00:04:31除此之外,还有一些其他问题。
00:04:33正因如此,很多人都在抱怨 Claude 的限制比预想中来得更快。
00:04:38所以为了应对官方限制和这些隐藏的 token 损耗,你必须采取
00:04:43某些措施,让 Claude code 在你构建产品时维持得更久。
00:04:47我们在本频道分享关于用 AI 构建产品的一切发现。
00:04:51所以如果你想看更多此类视频,请订阅并关注后续更新。
00:04:55我们将从一些你可能在之前的视频中听过的技巧开始。
00:04:59第一个是 clear 命令。
00:05:00每当你完成一项任务且不再需要之前的上下文时,就使用它。
00:05:01例如,当你完成应用开发并准备进入测试阶段时,
00:05:05你不需要之前的上下文。
00:05:09因此,最好重置它,并在全新的上下文窗口中开始下一个任务。
00:05:11但有时你确实想保留一部分上下文。
00:05:15在这种情况下,你可以运行 compact 命令。
00:05:18它会总结整个交互过程,通过在上下文中存储摘要来释放空间。
00:05:21我们希望你使用这些命令的原因是,Claude 每次发送消息时,都会
00:05:25包含截止目前的所有对话,以及系统提示词、你的工具和所有
00:05:29之前的对话历史。
00:05:34随着每条新消息的产生,这个窗口会不断膨胀,导致
00:05:35每条消息消耗的 token 越来越多。
00:05:40现在,即使进行了压缩,如果你在主窗口问题外话,依然在
00:05:41用无关内容撑大它。
00:05:46所以你可以使用 by the way 命令来问一个简短的题外话。
00:05:47它会在一个独立的会话上下文窗口中回复。
00:05:50这个题外话不会包含在你发送的下一条消息中,从而减少
00:05:53每个请求消耗的 token。
00:05:57虽然规划听起来像是个消耗 token 的任务,但你必须
00:05:58以此开始你的项目。
00:06:02这是因为如果你不花时间规划,稍后当 Claude 的实现
00:06:03与你的需求不符时,你就必须对其进行纠偏。
00:06:07前期在规划上花费 token 可以避免后期在纠错上
00:06:10浪费更多的 token。
00:06:14有时 Claude 不会完全按照你的指令行事。
00:06:15遇到这种情况,我们通常会再次提示它正确的实现方式。
00:06:18但与其重新提示,不如运行 rewind 命令将对话
00:06:22和代码恢复到 Claude 出现偏差之前的某个点,
00:06:26然后直接在提示词中进行修改。
00:06:31你也可以双击 Esc 键来执行相同的操作。
00:06:32这会从上下文窗口中移除错误的实现,错误的输出
00:06:35就不会被发送给模型。
00:06:39这些命令都能帮你节省会话过程中的 token。
00:06:41但更大的影响来自于你项目最初的结构设置。
00:06:44你可能已经使用了 Beemad、SpecKit 等不同的框架来
00:06:47构建你的项目。
00:06:52但这些框架中的大多数其实都非常消耗 token。
00:06:53所以如果你在自己的应用中使用它们,请做好 token 限制会更快被触发的心理准备。
00:06:56虽然这些框架在 Max 方案上还能维持,但在 Pro 方案上绝对不行。
00:07:00现在,即使你没用现成的框架,你可能也建立了自己的体系。
00:07:04为了创建 Claude.md 文件,你一定用过 init 命令,它会扫描你的代码库
00:07:07并为你创建一个 Claude.md 文件。
00:07:12它确实创建了一个,但其中包含很多问题。
00:07:14这个文件本该为 AI 代理提供指导,但它列出了一些
00:07:17AI 已经自己知道的事情。
00:07:20例如,它显示的命令是用来运行各种开发服务器的,而 Claude 早就
00:07:22知道该怎么做了。
00:07:27除非你运行服务器有特殊的标志位,否则没必要
00:07:28把它们加进去。
00:07:31至于架构方面,Claude 能读取文件名并根据名称
00:07:32推断每个文件的作用,因为它理解文件系统并利用它进行导航。
00:07:37所以除非有特殊情况需要额外指导,否则
00:07:41真的不需要这类指令。
00:07:45如果你打算自己写 Claude.md,它的长度理想情况下应少于 300 行。
00:07:47文件越短,表现越好,Claude 也会更专注于
00:07:52真正核心的内容。
00:07:56它应该作为一个引导文件,而不是一份解释如何做每件事的详细手册。
00:07:57你包含的任何内容都应该是通用且适用于整个项目的,而不是将
00:08:01各个部分的具体细节全部塞进一个文件里。
00:08:05只在 Claude.md 中包含 Claude 不该做的事、你的开发习惯
00:08:08以及其他 Claude 默认不知道的类似指令。
00:08:13你需要妥善配置此文件,因为它在每个会话开始时都会被加载到
00:08:16上下文中并一直留在那里。
00:08:20因此,上下文窗口中的冗余信息意味着你在每一轮对话中
00:08:22都在浪费那些原本不需要提前加载的 token。
00:08:27对于项目的特定方面,如数据库、模式或其他需要
00:08:28不同规则的领域,请将它们拆分成独立的文档,并在 Claude.md 文件中建立链接。
00:08:33这能让 Claude 循序渐进地仅拉取它实际需要的文档。
00:08:37我们在之前的视频中也提到过,创建针对特定路径的项目规则
00:08:41能帮助 Claude 保持专注。
00:08:45这样,Claude 的上下文中就只有相关信息,从而避免不必要的 token 消耗。
00:08:48所以你还应该为特定区域的逻辑分离出规则文件,以便 Claude 仅
00:08:53加载所需内容。
00:08:57你还需要利用“技能”来处理重复性工作流,并添加脚本和参考,
00:08:58使其能更准确地执行任务。
00:09:03技能通过仅按需加载所需部分来提供帮助,这让 Claude 能
00:09:05专注于任务的相关方面。
00:09:10捆绑脚本则能避免在那些可以程序化处理的
00:09:12确定性任务上浪费 token。
00:09:16分离文件的理由很简单。
00:09:17如果 Claude 正在处理某个部分,它不需要无关区域的信息。
00:09:19但如果所有东西都放在同一个 Claude.md 文件里,每次都会被加载,
00:09:24导致不必要的 token 损耗。
00:09:29你还可以使用 append system prompt 标志位来将特定指令
00:09:30直接添加到系统提示词中。
00:09:35会话将带着这些指令开始,而不是把所有东西都塞进
00:09:36Claude.md 文件。
00:09:40这些指令是临时性的,一旦会话结束就会被移除。
00:09:41这听起来可能像是在增加上下文,但其实比把
00:09:44一次性指令放在 Claude.md 中更高效。
00:09:48如果你加在那儿,Claude 会永久保留在上下文中,白白浪费 token。
00:09:51通过追加的方式,你只在需要时提供指令。
00:09:56另外,如果你喜欢我们的内容,请考虑按下 Hype 按钮,因为这能
00:09:59激励我们制作更多此类内容,并让更多人看到。
00:10:03你还需要设置所用模型的 effort 级别。
00:10:06如果你处理的任务不需要太多思考,就将其设为 low,因为
00:10:10low 设置可以节省 token。
00:10:14默认情况下,它被设为 effort auto,意味着由模型决定
00:10:15投入多少思考量,但你可以手动更改。
00:10:20如果你的任务不是很复杂,就没必要使用 high effort 设置。
00:10:21正如我们之前提到的,Opus 是最消耗 token 的模型。
00:10:25所以如果你在处理简单的任务,请切换到 Haiku。
00:10:28如果你的任务需要一定水平的思考,请使用 Sonnet。
00:10:31它虽然不如 Opus 强大,但仍然很高效且能节省更多 token。
00:10:34如果你为一个项目配置了多个 MCP 且不需要其中某个,只需将其
00:10:39禁用,以免它通过向上下文窗口注入不必要的信息来浪费 token。
00:10:43另一个重要步骤是创建钩子 (hooks),过滤掉那些不该出现在
00:10:48Claude 上下文窗口中的内容。
00:10:52例如,我为我的项目配置了测试用例。
00:10:54当我们运行它们时,它们会报告通过和失败的测试,所有这些内容
00:10:57都会被加载到上下文中。
00:11:01但 Claude 主要关注的是失败的测试,因为那些才是需要修复的部分。
00:11:02所以你可以创建一个钩子,通过脚本阻止已通过的测试用例进入
00:11:05上下文窗口,只包含失败的那些。
00:11:10与注入所有测试报告相比,这能节省大量 token。
00:11:13你可以用同样的方法为许多其他任务配置钩子,以优化 token 使用。
00:11:17除此之外,你还需要在 .claud 文件夹中进行
00:11:21某些配置以提高性能。
00:11:25第一个是将 disable prompt caching 设为 false。
00:11:27这会让 Claude 缓存你最常用的前缀,从而减少 token 消耗。
00:11:30Anthropic 不会对重复发送的部分收费,你只需为
00:11:34新增内容付费。
00:11:38你也可以禁用 auto memory,以防它向上下文中添加内容
00:11:39并增加 token 损耗。
00:11:43Auto memory 是一个后台进程,它会分析你的对话并将有用的
00:11:44信息整合到你特定项目的记忆文件中。
00:11:49禁用它意味着它不会追踪你的习惯,但会因为不在后台运行而
00:11:52节省 token。
00:11:56还有一个名为 disable background task 的标志位,它能停止后台进程
00:11:57持续消耗 token。
00:12:00这些进程包括 dream、记忆重构与清理以及后台索引。
00:12:02关闭这个选项有助于节省 token,因为即使你没有在聊天,这些
00:12:06进程仍然会在你的对话上工作。
00:12:10在不需要时你也应该禁用 thinking,因为 thinking 会消耗大量
00:12:13上下文,并在那些甚至不需要它的任务上大量浪费 token。
00:12:16现在,这与我们之前讨论的 effort 设置不同。
00:12:20Effort 设置控制 Claude 在回复中进行多少推理,所以较低的 effort
00:12:23意味着较少的思考,但它仍然在思考。
00:12:28完全禁用 thinking 会关掉内部推理步骤,Claude 直接
00:12:30生成回复。
00:12:34所以如果你的任务不需要深层推理,请彻底禁用 thinking。
00:12:35如果需要一些推理但不需要很多,请降低 effort 级别。
00:12:39最后,将 max output tokens 配置为一个固定数值。
00:12:43虽然没有默认值,但限制这个参数可以控制模型的生成量。
00:12:46如果你想大幅节省 token,就设低一点;如果任务需要较长
00:12:50的输出,就增加它。
00:12:55现在,本视频的 Claude.md 模板和其他资源已在 AI Labs Pro 提供,
00:12:56包括我们之前所有视频的资源,你可以在那里下载并用于自己的项目。
00:13:00如果你觉得我们的工作有价值并想支持本频道,这是
00:13:05最好的方式。
00:13:09链接在描述栏中。
00:13:10视频到这里就结束了。
00:13:11如果你想支持本频道并帮助我们继续制作这类视频,你可以
00:13:13点击下方的 Super Thanks 按钮。
00:13:17一如既往地感谢您的收看,我们下期再见。
00:13:19一如既往,感谢您的观看,我们下期再见。