在生成式 AI 时代,工程领域有一个至关重要的事实,那就是无论你使用何种 AI 编码工具,都不会改变这一事实。无论你是 Cursor、Windsor、Fline、Codeex 的粉丝,还是 Claude Code 的用户,你都已经知道:“上下文就是一切”,“上下文为王”。如果你的代理无法获取关键信息,就根本无法构建出你所需的内容。而以下这三个基本目录,就能全面、系统地解决这个问题。
AI 文档(AI Docs)
可以将 AI 文档视为 AI 编码工具的持久内存,一个 AI 工具可以即时访问的知识库。在上周的视频中,我们讨论了一个重要概念:云代码中的可编程代码库。在云代码库中,我们有一个 AI 文档目录,其中包含两个 Markdown 文件:《云代码最佳实践》和《OpenAI 代理 SDK》。现在,我可以启动任何代理,让它们快速阅读这些文件,然后迅速开展工作。
那么,AI 文档中应该包含哪些内容呢?这里有第三方 API 文档、集成细节、自定义模式和约定,以及任何特定于代码库的实现说明。我主要将其用于第三方文档,这样我就可以在构建代码库时,一次又一次地快速上手。AI 文档目录是 AI 代理的持久数据库。
规范目录(Specs)
“Specs”是“Specification”的缩写,也可以理解为“计划”。你可能知道它们是 PRD(产品需求文档)或其他类似的名称。在使用 AI 编码工具完成大量工作时,这些规范文件是新的重要单元。
现在,借助强大的代理编码工具,如 Claw Code、Cursor、Fline 等,我们可以在单个提示中使用多个工具。规范目录是整个代码库中最重要的文件夹,我们在这里制定出色的计划,利用计算能力实现大规模工作,在一次巨大的操作中完成比以往更多的任务。例如,将一个 1000 个令牌的提示扩展为一个完整的代码库,这正是代理编码的强大之处。我们可以在提示中编写自我验证循环。请记住,代理编码是 AI 编码的超集,是一个非常庞大的超集。像 Claw Code 这样的优秀工具,使我们能够从规范目录中获取所有计划,并将其扩展为完整的代码库和功能。
因此,在每个代码库中,你都应该有一个规范目录,详细说明你要交给强大的代理编码工具的所有工作。如果你还在反复地来回提示,那我可以保证,你正在浪费时间,而且没有充分利用计算能力。坐下来,花时间思考、规划,然后再构建。
在本视频中,我们将展示一种强大的新规划技术,你可以在规划过程中使用计算能力,借助 AI 编码工具更快地迭代。这里的关键思想非常简单:每个有原则的 AI 编码成员都知道这一点,每个关注本频道的人也都知道,“计划就是提示,优秀的计划就是优秀的提示”。你可以通过编写详细、全面的规范、计划或 PRD(无论你怎么称呼它)来扩展你的能力。然后,你可以将这项工作交给 AI 编码工具和代理编码工具,它们会为你完成工作。
Claude 目录(.claude)
需要明确的是,这是专门针对 Claw Code 的目录,但你在这些目录中编写的内容并不局限于 Claw Code。以“Just Prompt”代码库为例,打开.claude 并进入 commands 目录,你会看到几个不同的命令。
这些命令实际上就是提示。在“Just Prompt”代码库中打开 Claw Code,输入“/”,你可以在顶部看到所有这些命令的名称。它们是可重用的可运行提示,我们可以在不同会话中使用。
我建议你在所有代码库中设置的最重要的可重用提示是上下文启动提示。这是你提示 Claw Code、Codeex、Cursor 或其他任何工具的地方,这并不是 Claw Code 特有的。这些目录的名称实际上可以是任何名称。
例如,如果你要启动或只是提示服务器,我们将执行基本的上下文启动。它将通过工具调用运行这些命令,读取自述文件,然后运行“get ls files”以了解项目的上下文。
我建议你在每个代码库中都设置这个,以便你可以快速操作重要的文件和想法。我们在这里的主要目的是,随着时间的推移,轻松设置新的代理工具实例。这里的“随着时间的推移”,既指日常工作,也指每个会话。
如果你使用过 Claw Code、Codeex 或任何其他 AI 编码工具,你会发现它们的上下文是有限的。许多最先进的模型的当前上下文窗口限制为 200K 或 100 万令牌。当使用 AI 编码工具时,你最终会用完上下文,然后不得不重置。这就是上下文启动提示的作用,也是.claude 命令目录为你提供的,特别是针对 Claw Code,但你可以将其应用于任何 AI 编码工具。
例如,我打开一个新窗口,打开 Codeex - m3,复制相对路径并执行,它的作用与在 Claw Code 中完全相同。我们在这里所做的与在 Claw Code 中一样,为 AI 编码工具设置初始上下文,使其了解所有内容,知道一切位置。现在,它已经准备好了,上下文已启动。
这些目录不仅限于上下文启动。我们构建了一个超差审查,创建了一个差异,然后让多个语言模型审查该差异并提供反馈。这是我们将在本频道上大量讨论的内容。
由于代理编码工具的出现,你的提示功能现在变得无限强大。你可以运行任何工具,可以运行自定义 MCP 服务器,就像我们这里有一个一样。通过在代码库中拥有可重用提示,你可以做很多事情。
总结
这就是我在每个代码库中都包含的三个基本目录。AI 文档是 AI 编码工具的持久知识库,规范目录是你定义计划的地方,是你定义所有要交给 AI 编码工具和代理编码工具的工作的地方,而.claude 目录(你可以随意命名)是你放置随时可用的可重用提示的地方。
可重用提示是一种基本模式,不仅在编码中如此。你希望能够以不同的形式和方式反复使用计算能力,这可以通过创建可重用、可验证和可改进的提示来实现,特别是在构建电子邮件时。
让我们通过在 Pocket Pick 中构建一个简单、简洁的全新功能来看看这在实际中的应用。作为工程师,我们经常重用想法、模式和代码片段,但跟踪这些内容可能很困难。Pocket Pick 就是解决这个问题的方案。这个简单的 MCP 服务器创建并存储所有个人知识库项目,包括任何代码片段、文件和文档,这些都存储在一个简单的 SQLite 数据库中。
我们今天要做的关键更改是更新“add”命令。查看这里的数据类型,要向 Pocket Pick 数据库添加新项目,我们有文本、标签和数据库路径。目前,ID 是自动生成的。我想改进搜索功能,以便在使用“pocket add”和“pocket add file”创建口袋项目时可以传入 ID。这将使通过 ID 运行“pocket git”和“pocket to file”变得非常容易。
我们将如何实现这一点呢?我们将使用这三个基本目录。借助这些目录,我们可以在本会话中以及随着时间的推移更快地完成任务。
首先,我将使用 Claw Code,因为它是我目前最喜欢的工具。我已经有了这个命令,这为我节省了时间。它将运行“tree get ignore”,以树状格式为编码工具显示。
接下来,我们进入全屏模式。我将让它读取以下文件,这样所有内容都已加载。我们可以输入“/cost”查看确切的成本。我们有 20 美分来启动我们的代理。
现在是开始实际工作的时候了。我们不会像 2024 年那样反复提示。我们将创建简洁的代理计划。我将进一步采用一种我喜欢称之为“计划起草”的新兴技术。这里的主要区别在于,我和我的 AI 编码工具都将参与起草这个计划。
我不会自己编写计划、创建文件或做任何这些工作,而是让 Claw Code 创建计划的初稿。我们在自述文件中进行了一些初步规划,希望将此功能添加到“pocket add”和“pocket add file”中,并将计划分解为这些部分。
我将使用 Ultraink,这可能有点大材小用,但这将触发 Claw Code 的推理能力。我在这里让 Claw Code 根据它对代码库的了解起草计划的初稿。
新的流程是:构建计划的基本要素,让 AI 编码工具创建初稿,然后迭代计划,最后执行计划。
我将接受这个初稿。你可以看到,我们创建了一个新的规范,让我们来看看它的样子。
这是计划的初稿,看起来相当不错。它非常简洁地描述了问题,当用户使用“add”和“add file”工具向 Pocket Pick 数据库添加项目时,ID 是自动生成的。然后是解决方案陈述,此功能将修改这些工具,要求用户提供 ID 作为必填参数,使用户能够更好地控制并更轻松地识别项目。
现在我们正在进行审查。我们越来越多地成为信息的审查者、代码创意的审查者,然后将其交给我们的 AI 编码工具。重要的是,我们不会反复更新代码库,使其处于不良的临时状态。我们将仅在这个文件中进行操作。
我可以查看所有内容。你可以看到,服务器模块中添加了新的 ID 字段,这也是一个重要的更改。添加功能看起来很棒,服务器实现也很出色。测试更改也很详细,它知道所有文件的位置,这是非常重要的。我们结合了上下文启动,由于我们不是最初实例化这个代码库,所以这里跳过了 AI 文档目录。
你可以看到,它有一个自我验证部分,并且更新了自述文件。通过提供正确的上下文(使用上下文启动可重用提示),并编写一个相当简短但信息丰富的提示,我们激活了推理模型的能力,得到了一个相当不错的计划。我很确定这将带我们完成大约 80%的工作。
我将删除一些额外的内容,例如一些建议。我不希望代理编码工具构建任何这些额外的可选想法。通常,如果有更多文本,编码工具或语言模型会尝试创建意义并找到模式。
我将添加一个调整,检查其他测试以查看它们是否使用任何“add”功能并更新它们以使用此功能。这很重要。我还将打开这个路径以使其非常清晰。这实际上完全没有必要,但我只是喜欢这样做以确保清晰。
现在,作为一个好习惯,在启动计划之前,我总是喜欢提交一个更改。让我们确保还原我们在这里所做的任何更改,然后提交计划。
接下来,我们将对计划进行操作。我将说“实施此文件”。Claw Code 有一个新功能,它有一个待办事项列表系统。这是代理编码工具中的一种新兴模式,你可以先创建计划,然后逐步完成计划。
看起来很棒。我将进入代理模式或“yolo”模式,这样自动接受就开启了,我们的 AI 编码工具将飞速完成所有工作。
需要注意的是,我应该同时添加 AI 文档 MCP 服务器 Git 存储库混合集成。但由于此功能已经运行,我实际上并不需要它。代码库中已经嵌入了所有必要的信息,无需从第三方文档中获取额外信息。
在处理较大的更改时,你通常不需要特定于功能的上下文启动。你只需要基本的上下文启动方法。代理编码工具正在快速完成这些更改。
这一切都回到编写出色的计划。我对我的 IDKs 非常详细和简洁。我所有的关键字都包含了丰富的信息,我非常详细地说明了我想要什么。你可以看到这些项目被引用,自述文件正在更新。
这是因为我让我的 AI 编码工具看到了正确的信息,然后我指导它使用我知道效果很好的特定结构集创建计划。这就是你的经验、判断和品味发挥作用的地方。你必须在一定程度上了解你的代码库。
你可以看到,它正在进行自我验证和测试。我在最后添加了这一点,“更新其他测试文件以包含 ID 参数”。
为了总结,我们创建了一个很棒的提示来创建计划。我们现在正在提示我们的代理为我们编写计划,我们对其进行调整和迭代,然后将该计划交给我们的 AI 编码工具或代理编码工具。
你可以看到,它正在处理这些测试,需要将 ID 参数添加到所有“add”命令中以确保一切正常。它一直在为我们努力工作。这就是 Claw Code 如此出色的原因。它不会停止工作,也不会问你是否要继续做更多的工作,它只是不断运行。
我一遍又一遍地说,Anthropic Cloud Co 团队正在做令人难以置信的工作,很明显他们在使用这些工具。
我们错过了一个测试用例“test find”。我们可以随时打开它进行并排查看。我们可以看到需要添加的 ID 现在已经添加。
这是工作的简要总结。最重要的是,我们开启了自我验证,所以我几乎可以保证一切都正常工作,所有测试都通过了,我们的代理编码工具正在自我测试。
如果我们打开那个规范,你可以在底部再次看到自我验证非常重要。我们给了它命令,它需要自我评估。
这就是代理编码和 AI 编码之间的巨大区别。我不仅仅是编写生成代码的提示,而是编写执行工程工作的提示,包括构建、规划和测试,涵盖整个开发生命周期。
这就是你可以解锁的力量和能力。我致力于每周一与你分享和传递有价值的想法。
如果还没有订阅,一定要加入我们的旅程。我们将构建能够在我们睡觉时为我们构建的动态软件。这三个基本目录:AI 文档、规范和 Claude 目录,是我们扩展工程工作的方式,是我们将更多工作交给 AI 编码工具和现在的代理编码工具的方式。
请确保喜欢这个视频,让算法知道你对此感兴趣。