AI 见闻
精选

Claude 5代模型的上下文工程新规则

Hacker News (AI)··mellosouls·约 9 分钟阅读
社区热度 166

Claude 5代模型的上下文工程新规则我们删除了Claude Code 80%以上的系统提示,以获取更高级的型号。如何将我们学到的经验教训应用于Claude Code中的上下文工程以及您自己的代理。

但当您向Claude发送消息时,提示只是它得到的上下文的一小部分。您的大部分上下文都是从您的系统提示符Skills,Claude中组装的。MD文件、内存和其他源。我们称之为上下文工程,它对您使用Claude Code或构建自己的代理时生成的结果产生很大影响。

与提示不同,上下文通常用于许多请求,因此它不能那么具体。如何为Claude构建这些一般提示和指导,尤其是当您不知道用户的提示可能是什么时?随着克劳德自身能力的发展,这可能会变得出奇地困难。最近,我们注意到我们推荐最新一代Claude模特的方式有了很大的飞跃。

我们删除了Claude Code超过80%的系统提示,用于Claude Opus 5和Claude Fable 5等模型,并且编码评估没有可衡量的损失。以下是我们了解到的有关推动此类新模型的信息,以及如何利用它来更新上下文工程。

我们已将这些最佳实践放入“claude doctor”中;“使用Claude Code中的命令/doctor来调整您的技能,以及CLAUDE。MD文件。

放开克劳德总体而言,我们发现我们通过系统提示符和CLAUTE对Claude Code进行了过度约束。MD文件和技能。

例如,当我们阅读自己内部使用Claude Code的文字记录时,我们会在单个请求中看到几条相互冲突的消息,例如“酌情留下文档”或“请勿添加评论”,因为我们的系统提示、技能和用户请求相互冲突。

一般来说,Claude可以解释用户的意图以获得正确答案,但Claude在决定该怎么做之前必须更仔细地考虑这些重叠和冲突的消息。虽然曾经需要这些约束来避免最坏的情况,但我们发现我们可以删除其中许多约束,并让模型使用周围的上下文和判断。

此外,Claude Code现在拥有更多工具。克劳德曾经依赖克劳德。MD作为记忆、信息和指导的来源。现在我们拥有了记忆、工件和技能,Claude可以使用这些来创建跨会话加载和共享上下文的新方法。

之前有许多上下文工程最佳实践已成为神话。包括:。然后:给克劳德规则现在:让克劳德做出判断当我们第一次推出Claude Code时,我们需要确保Claude避免最坏的情况,例如删除文件。

这意味着我们会给出特别强有力的指导,但这些指导可能并不总是正确的,例如,在系统提示中我们曾经说:在代码中:默认不写任何评论。切勿编写多段文档字符串或多行评论块-最多一行。除非用户要求,否则不要创建规划、决策或分析文档-从对话上下文中工作,而不是中间文件。

但对于某个提示子集,这个指导是错误的。对于文档,用户可能有自己的偏好,或者非常复杂代码的特定部分可能需要多行注释块。尽管如此,如果没有老型号的这些护栏,克劳德写的评论在许多情况下都是不正确的,我们不得不接受这种权衡。

但较新的模型有更好的判断力,并且可以在没有明确规则的情况下很好地处理这些决策。在新的系统提示中,我们说:编写读起来像周围代码的代码:匹配其评论密度、命名和习语。然后:给克劳德举个例子现在:设计界面工具使用的首要规则是向Claude提供如何使用它们的示例。

通过我们最新的模型,我们发现给出例子实际上将它们限制在一定的探索空间。与其使用示例,不如更多地考虑工具、脚本和文件的设计-Claude有哪些参数以及如何使它们更具表现力?

例如,在Todo工具示例中,只需将状态列为未决、in_programation和已完成之间的列举,即可向Claude提示如何使用它。将一项保留在_programation中的指令有助于定义我们请求的行为。

然后:把这一切都提前现在:使用渐进式披露由于Claude Code专注于编码,因此我们的系统提示包含有关如何进行代码审查和验证的详细信息。这些并不总是需要的,但当它们需要时,这就是至关重要的信息。

从那时起,Claude Code就非常擅长使用渐进式披露--在正确的时间加载正确的上下文。例如,我们将验证和代码审查转移到Claude Code可以选择性调用的自己技能中。但渐进式披露不仅仅是为了技能,我们也将其用作工具。

我们的一些工具是“延迟加载”的,这意味着代理必须在使用它们之前使用Tools Search搜索它们的完整定义。这使我们能够拥有更多工具(例如我们的任务工具),直到需要时才会占用上下文。同样的情况也适用于您自己的CLAUTE。

MD和技能。MD文件。一个常见的神话是,你想让这些成为你可能遇到的每一种已知实践的中央存储库,因为克劳德以其他方式找不到它。相反,请考虑拥有一个可以在正确时间加载的文件树。

然后:重复自己的话现在:简单的工具描述早期的Claude模型有时可能需要重复的指令,或者更有可能在上下文窗口结束时听指令,而不是在开始时。这意味着我们的系统提示符有时会在主系统提示符中引用工具,以及工具描述中的说明。

我们发现我们可以删除这些重复的示例,并在工具描述中而不是系统提示中添加有关如何使用工具的说明。然后:克劳德的记忆。MD文件现在:自动内存我们曾经鼓励用户使用# hotkey写入他们的CLAUTE,将内容保存到Claude的记忆中。

MD自动。相反,Claude现在会自动保存与工作和您相关的记忆。然后:简单规格现在:丰富的参考资料在计划模式下,Claude Code严重依赖包含计划的降价文件。将这些文件作为计划存储可以帮助克劳德在需要时参考它们。

另一个类似的最佳实践是将规范存储在代码库中,供Claude在处理较长的项目时参考。但我们发现克劳德可以处理越来越复杂的引用。Claude可以引用由我们的新工件功能创建的HTML工件,而不是简单的降价文件。

您还可以以代码的形式向Claude提供参考。规范还可能是详细的测试套件,或者Claude可能移植的不同代码库中的函数。标题是另一种形式的引用。

标题允许克劳德尝试验证您在特定领域的品味(例如。G.一个好的API设计是什么样子)通过使用动态工作流程并使用这些标题启动验证器代理。将其应用于您的上下文将这些放在一起,当您组装上下文时,这是什么样子?

系统提示系统提示与产品上下文密切相关。它告诉Claude它正在运营什么产品以及正在做什么。对于Claude Code,您可能永远不会修改它,但如果您正在构建自己的代理工具,那么这就是您应该花很多时间的地方。

Claude. MD保留你的克劳德。md轻量级并简要描述您的仓库的用途,但将大部分令牌花在代码库内的陷阱上。例如,您可以组织代码以将类型保留在一个单一文件中,而不是在其他任何文件中。避免陈述Claude通过查看您的文件系统或存储库应该知道的“显而易见”的事情。

大量使用渐进式披露,

原文出处
The new rules of context engineering for Claude 5 generation models

本文为机器翻译辅以 AI 润色,仅供参考。原始事实以原文为准。