Transcript

00:00:00你可能已经了解过 Beemad、Speckit 等 AI 编码框架,但这些并非仅有的选择。
00:00:06有数百人在尝试并推出自己的工作流程,但当你真正使用它们时,会发现它们往往无法兑现承诺。
00:00:13这并非因为它们的方法不好,而是因为它们不适合你的特定使用场景。
00:00:18当我们构建应用时,大多数时候我们会创建自己的工作流程,而不是依赖现成的。
00:00:23这是因为工作流程应该围绕你的特定使用场景来构建,只有与你试图构建的项目保持一致时才能发挥作用。
00:00:30那么如何为自己的流程构建工作流呢?
00:00:32为此,你需要了解某些原则。
00:00:34这些原则是每个框架以某种方式都在使用的。
00:00:38在讨论主要原则之前,你必须了解这些 AI 工具的上下文窗口内包含什么。
00:00:44这非常重要,因为管理上下文基本上就是这些框架的核心工作。
00:00:48上下文窗口本质上是模型一次能记住的信息量。
00:00:53任何超出模型上下文窗口的内容都会从其工作记忆中消失,它无法再回忆起来。
00:00:59模型的上下文窗口是有限的。
00:01:00例如,Anthropic 的模型拥有 20 万 token 的上下文窗口,而 Gemini 模型有 100 万。
00:01:06尽管从你发送的消息数量来看,
00:01:08这些数字可能看起来很大,
00:01:10但实际上并没有那么庞大,
00:01:12因为在这些 AI 工具中,
00:01:14上下文窗口不仅包含你的系统提示词和用户消息,
00:01:17还包括许多其他内容,
00:01:19比如过往消息、
00:01:20内存文件、
00:01:21工具、
00:01:21MCP 调用等等。
00:01:23你需要学会如何充分利用这个有限的工作空间,这样当你构建工作流程时,模型才能准确执行你想要的操作。
00:01:30我将在整个视频中使用 Claude Code 作为主要编码工具,
00:01:35但你可以用任何平台构建工作流程,
00:01:37因为它们都具备这些原则所需的工具。
00:01:39最重要的原则,也是任何工作流程设计的核心,就是渐进式披露。
00:01:44这意味着只向大语言模型展示重要的内容,
00:01:47让模型的注意力集中在当前真正需要的内容上,
00:01:50而不是用它将来可能需要的所有内容填满上下文窗口。
00:01:54现在,
00:01:55像 Sonnet 4.5 这样的更高级模型内置了上下文编辑功能,
00:02:00它们能理解什么是噪音并尝试自行过滤,
00:02:03还会使用 grep 命令来缩小范围找到你想要的内容。
00:02:07但仅靠这一点还不够。
00:02:08当我们给出模糊的指令时,即使是这些较新的模型也会加载大量不需要的内容,污染上下文窗口。
00:02:14与其让 Claude 修复后端的错误,不如要求它逐个检查端点,而不是让它一次性修复所有问题。
00:02:23Claude 中的技能功能现在已经开源,所有工具都可以使用。
00:02:27技能基本上就是渐进式披露的具体体现。
00:02:29它们的描述提供了恰到好处的信息,让你的 AI 编码平台知道何时应该使用每个技能,而无需将所有内容加载到上下文中。
00:02:38人们常犯的一个巨大错误就是对所有事情都使用 MCP。
00:02:41你应该仅在需要外部数据时使用 MCP,其他所有情况都使用技能。
00:02:46第二个同样重要的原则是,当前不需要的信息不应该出现在上下文窗口中。
00:02:52为了实现这一点,这些工具使用结构化笔记。
00:02:55我们可以利用这一点,为 AI 工具提供外部文件,让它用来记录任何决策、问题或技术债务。
00:03:03这种方法允许你的智能体维护关键上下文,在构建非常复杂的内容时,这些上下文可能会丢失。
00:03:09这些工具还具有压缩功能来管理上下文窗口。
00:03:13当上下文重置时,你不必完全依赖压缩摘要。
00:03:17例如,你的智能体可以使用这些笔记来了解已经完成了什么以及还需要做什么。
00:03:23这种方法对于长期任务特别有用,因为这些任务本质上就很复杂。
00:03:28你可能熟悉 agent.md 文件。
00:03:30这是一个标准的上下文文件,所有智能体在启动会话前都会读取它。
00:03:34有些智能体不遵循这个标准,
00:03:36有自己的文件,
00:03:37比如 claud.md,
00:03:39我用它来指导智能体如何组织外部文件的结构以及在每个文件中写什么。
00:03:44有时这些智能体会在长时间运行任务的过程中随机暂停。
00:03:47这种情况很多时候是因为上下文已经超过其限制的 70%。
00:03:52这就是注意力预算概念的用武之地。
00:03:55你的上下文窗口是模型在生成输出时关注的内容。
00:03:59当它超过 70% 时,模型必须更加集中注意力,出现幻觉的可能性也更高。
00:04:04对于 AI 智能体来说,这会阻止它们有效使用工具,很多时候它们会直接选择忽略这些工具。
00:04:10为了解决这个问题,有几个内置工具可以使用。
00:04:14正如你所知,压缩功能允许模型以已发生事件的适当摘要作为起始提示词重新开始,并减少上下文窗口。
00:04:21所以与其让它填充到 90% 并触发自动压缩功能,不如试着留意上下文窗口并自己手动压缩。
00:04:28如果你在实验,
00:04:29可以使用 Claude 的内置回退功能,
00:04:31这样你可以删除不必要的部分,
00:04:33而不是继续它们并要求 Claude 进行更改。
00:04:36你还应该为任何新任务清空或启动新的上下文窗口,这样之前的上下文就不会拖慢模型速度。
00:04:42渐进式披露原则衍生出的另一个能力是,这些智能体能够在后台运行任务而不污染主上下文窗口。
00:04:51子智能体在自己的独立上下文窗口中工作,只将输出报告给主智能体。
00:04:57当处理彼此独立的任务时,
00:04:59这特别有用,
00:05:00因为你的主上下文窗口不会被子智能体进行的工具调用和搜索所膨胀,
00:05:06确保信息保留在其专用的工作区域中。
00:05:10由于这些智能体在后台运行,你可以继续与主智能体交互,让它处理真正需要你关注的事情。
00:05:17每当我想要研究某些内容时,比如我正在使用的新框架的规则,我就会使用这些子智能体。
00:05:23这样,它们的工具调用和搜索是隔离的,它们只需将答案返回给主智能体。
00:05:29如果你理解了笔记的原则,你也应该知道针对不同任务使用哪种文件格式。
00:05:34由于这些文件有不同的格式,它们会影响 token 数量,进而影响工作流程的效率。
00:05:40YAML 是最节省 token 的格式,所以我主要用它来存储数据库模式、安全配置和 API 详情。
00:05:46它的缩进有助于模型正确地组织信息结构。
00:05:49Markdown 更适合文档,比如你的 claud.md,因为标题级别使模型能够轻松地在各部分之间导航。
00:05:56XML 是专门为 Claude 模型优化的。
00:05:59Anthropic 表示,
00:06:01他们的模型经过微调能识别这些标签作为容器和分隔符,
00:06:05当你有不同的部分如约束条件、
00:06:07摘要或可视化细节时,
00:06:09这非常有用。
00:06:10其他模型通常更倾向于使用 Markdown 和 YAML 而非 XML。
00:06:13最后是 JSON。
00:06:14它是最不节省 token 的格式,
00:06:16因为有大量额外的括号和引号,
00:06:18所以我只将它用于小的内容,
00:06:20比如任务状态,
00:06:21大多数情况下不太推荐使用。
00:06:23Git 是你开始学习编程时最基础的东西之一。
00:06:26我们看到这些上下文工作流程的另一个趋势是,
00:06:30人们实际上将 git 提交历史作为提醒模型已取得进展的方式,
00:06:35无论是在整个项目还是单个任务上。
00:06:37即使你不想用它来存储进度,通常也应该在 git 初始化的仓库中使用这些上下文工程工作流程。
00:06:44拥有上下文工程工作流意味着你不让模型一次性完成所有事情,而是按照计划一步一步地执行。
00:06:51如果在任何阶段遇到问题,git 可以让你控制回退到哪个版本,并帮助评估是哪个更改导致了问题。
00:06:59人们还通过 git worktrees 实现了并行处理。
00:07:02我也展示了大量工作流,其中子代理在专用的 worktrees 中进行并行工作。
00:07:07无论你最终建立什么样的工作流,总会有一些情况需要你为常见流程重复相同的指令。
00:07:13一个很好的例子是你如何要求 AI 工具执行 git 提交或更新文档。
00:07:18在几乎所有这些 AI 工具中,都有方法可以重用你最常重复的提示词。
00:07:22我在自己的项目中经常使用自定义命令,因为它们基本上为 Claude 提供了可重用的指南。
00:07:28我经常使用一个 catchup 命令,
00:07:31其中包含关于我如何在上下文窗口之外构建记忆的说明,
00:07:34这样 Claude 就知道如何跟上项目进度,
00:07:37而无需阅读每个文件。
00:07:38它们也很擅长强制执行结构。
00:07:40为了让我的提交和文档遵循特定格式,
00:07:43我使用一个 commit 命令,
00:07:45它遵循特定的结构来编写提交消息,
00:07:48并规定在提交前应该进行哪些预提交检查。
00:07:51这样,这些命令让一切保持标准化,我就不必一遍又一遍地指导 Claude 按照我喜欢的方式执行任务。
00:07:58如你所知,每当需要外部数据时就应该使用 MCP。
00:08:01Jira 是使用最广泛的团队管理软件。
00:08:04如果你想从工作票中获取信息,可以使用 Jira MCP,这样它就能直接访问工作票并开始实施更改。
00:08:11同样,我使用 Figma MCP 为 Claude 提供应用的样式指南代码,然后它会用这些来构建设计。
00:08:18对于模型内置能力不足的任务,MCP 对于高效地与外部资源交互至关重要。
00:08:25你可以直接在命令中包含这些 MCP,使它们成为整个工作流的一部分。
00:08:31这就到了本期视频的结尾。
00:08:32如果你想支持本频道并帮助我们继续制作这样的视频,可以使用下方的超级感谢按钮。
00:08:39一如既往,感谢观看,我们下期见。

Key Takeaway

AI 编程的关键不在于使用哪个框架,而在于掌握上下文管理的核心原则,通过渐进式披露、结构化笔记、子智能体隔离等方法构建适合自己特定使用场景的工作流程。

Highlights

AI 编程工具的核心工作是管理上下文窗口,而不是简单地使用现成框架

渐进式披露原则:只向大语言模型展示当前真正需要的内容,避免污染上下文窗口

使用技能(Skills)而非 MCP 来实现渐进式披露,MCP 仅用于需要外部数据的场景

通过结构化笔记(外部文件)让 AI 记录决策、问题和技术债务,避免长期任务中上下文丢失

子智能体在独立上下文窗口中工作,防止主上下文被工具调用和搜索膨胀

不同文件格式的 token 效率:YAML 最节省,适合数据存储;Markdown 适合文档;XML 针对 Claude 优化;JSON 最不节省

利用 Git 提交历史和自定义命令来标准化工作流程,提高 AI 编程效率

Timeline

为什么现成的 AI 编码框架不适合你

视频开篇指出虽然市面上有数百个 AI 编码框架(如 Beemad、Speckit),但它们往往无法兑现承诺。问题的根源不是这些框架的方法不好,而是它们不适合你的特定使用场景。在构建应用时,开发者大多会创建自己的工作流程,因为工作流程应该围绕特定使用场景构建,只有与项目保持一致时才能发挥作用。因此,了解构建工作流程的核心原则比依赖现成框架更重要,这些原则是每个框架都在以某种方式使用的底层逻辑。

理解上下文窗口及其限制

上下文窗口是 AI 编程工具管理的核心,它本质上是模型一次能记住的信息量。虽然 Anthropic 模型有 20 万 token、Gemini 有 100 万 token 的窗口,但实际可用空间并不大,因为它不仅包含系统提示词和用户消息,还包括过往消息、内存文件、工具、MCP 调用等大量内容。任何超出上下文窗口的内容都会从模型的工作记忆中消失,无法再回忆。因此,学会如何充分利用这个有限的工作空间至关重要,这样模型才能准确执行你想要的操作。视频将使用 Claude Code 作为示例,但这些原则适用于所有平台。

渐进式披露:工作流程设计的核心原则

渐进式披露是任何工作流程设计的最重要原则,意味着只向大语言模型展示重要的内容,让模型的注意力集中在当前真正需要的内容上。尽管 Sonnet 4.5 等高级模型内置了上下文编辑功能,能理解噪音并自行过滤,但当给出模糊指令时,仍会加载大量不需要的内容污染上下文窗口。具体实践包括:要求 Claude 逐个检查端点而非一次性修复所有问题;使用技能(Skills)功能作为渐进式披露的具体体现,通过描述让 AI 平台知道何时使用每个技能而无需加载所有内容。视频强调一个巨大错误是对所有事情都使用 MCP,正确做法是仅在需要外部数据时使用 MCP,其他情况都使用技能。

结构化笔记与外部文件管理

第二个重要原则是当前不需要的信息不应该出现在上下文窗口中,通过结构化笔记来实现。开发者可以为 AI 工具提供外部文件,让它用来记录任何决策、问题或技术债务,这种方法允许智能体维护关键上下文,避免在构建复杂内容时丢失重要信息。当上下文重置时,智能体可以使用这些笔记了解已完成的工作和待办事项,而不必完全依赖压缩摘要。这种方法对长期任务特别有用,因为这些任务本质上就很复杂。视频提到 agent.md 文件是标准的上下文文件,所有智能体在启动会话前都会读取它,有些智能体使用 claud.md 等自定义文件来指导如何组织外部文件结构。

注意力预算与上下文窗口管理

AI 智能体有时会在长时间运行任务过程中随机暂停,这往往是因为上下文已经超过其限制的 70%。注意力预算概念指出,当上下文窗口超过 70% 时,模型必须更加集中注意力,出现幻觉的可能性更高,对 AI 智能体来说会阻止它们有效使用工具,很多时候会直接忽略这些工具。解决方法包括:使用压缩功能以适当摘要作为起始提示词重新开始,减少上下文窗口;与其让它填充到 90% 触发自动压缩,不如手动留意并压缩;使用 Claude 的内置回退功能删除不必要的部分;为任何新任务清空或启动新的上下文窗口,避免之前的上下文拖慢模型速度。

子智能体隔离与并行处理

渐进式披露原则衍生出子智能体能力,允许在后台运行任务而不污染主上下文窗口。子智能体在自己的独立上下文窗口中工作,只将输出报告给主智能体,这在处理彼此独立的任务时特别有用。主上下文窗口不会被子智能体的工具调用和搜索所膨胀,确保信息保留在专用工作区域中。由于子智能体在后台运行,开发者可以继续与主智能体交互处理需要关注的事情。具体应用场景包括:研究新框架的规则时使用子智能体,让它们的工具调用和搜索保持隔离,只将答案返回给主智能体。理解笔记原则后,还需要知道针对不同任务使用哪种文件格式,因为不同格式会影响 token 数量和工作流程效率。

文件格式选择与 Token 优化

不同文件格式对 token 数量的影响直接关系到工作流程效率。YAML 是最节省 token 的格式,适合存储数据库模式、安全配置和 API 详情,其缩进有助于模型正确组织信息结构。Markdown 更适合文档(如 claud.md),因为标题级别使模型能轻松在各部分之间导航。XML 专门为 Claude 模型优化,Anthropic 表示他们的模型经过微调能识别这些标签作为容器和分隔符,适用于有不同部分如约束条件、摘要或可视化细节的场景,但其他模型通常更倾向于使用 Markdown 和 YAML。JSON 是最不节省 token 的格式,因为有大量额外的括号和引号,只适用于小的内容如任务状态,大多数情况下不推荐使用。

Git 版本控制在 AI 工作流中的应用

Git 作为编程基础工具,在上下文工作流程中发挥着重要作用。人们将 git 提交历史作为提醒模型已取得进展的方式,无论是在整个项目还是单个任务上。即使不用它存储进度,通常也应该在 git 初始化的仓库中使用这些上下文工程工作流程。拥有上下文工程工作流意味着不让模型一次性完成所有事情,而是按计划一步一步执行。如果在任何阶段遇到问题,git 可以让开发者控制回退到哪个版本,并帮助评估是哪个更改导致了问题。此外,人们还通过 git worktrees 实现了并行处理,视频展示了大量子代理在专用 worktrees 中进行并行工作的工作流。

自定义命令与提示词重用

在任何工作流中,总会有一些情况需要为常见流程重复相同的指令,例如执行 git 提交或更新文档。几乎所有 AI 工具都有方法可以重用最常重复的提示词。视频作者在自己的项目中经常使用自定义命令,为 Claude 提供可重用的指南。具体例子包括:catchup 命令包含关于如何在上下文窗口之外构建记忆的说明,让 Claude 知道如何跟上项目进度而无需阅读每个文件;commit 命令遵循特定结构编写提交消息,并规定提交前应进行哪些预提交检查。这些命令让一切保持标准化,开发者就不必一遍又一遍地指导 Claude 按照特定方式执行任务,大大提高了工作效率。

MCP 的正确使用场景

视频总结了 MCP(Model Context Protocol)的正确使用原则:只在需要外部数据时使用。Jira 是使用最广泛的团队管理软件,如果需要从工作票中获取信息,可以使用 Jira MCP 让其直接访问工作票并开始实施更改。同样,Figma MCP 可以为 Claude 提供应用的样式指南代码,用于构建设计。对于模型内置能力不足的任务,MCP 对于高效地与外部资源交互至关重要。开发者可以直接在命令中包含这些 MCP,使它们成为整个工作流的一部分。视频最后鼓励观众支持频道,使用超级感谢按钮帮助制作更多这样的内容。

Community Posts

View all posts