1. 智能体工作流
GPT-4.1 是构建智能体工作流的绝佳选择。在模型训练中,我们强调提供多样化的智能体问题解决轨迹,我们的智能体框架在 SWE-bench Verified 上达到了非推理模型的最先进性能,解决了 55% 的问题。系统提示提醒
为了充分利用 GPT-4.1 的智能体能力,我们建议在所有智能体提示中包含三种关键类型的提醒。以下提示专门针对智能体编码工作流进行了优化,但可以轻松修改用于通用智能体用例。 1. 持久性: 这确保模型理解它正在进入多消息回合,并防止它过早地将控制权交还给用户。我们的示例如下:工具调用
与以前的模型相比,GPT-4.1 在有效利用作为 OpenAI API 请求参数传递的工具方面接受了更多训练。我们鼓励开发者专门使用工具字段来传递工具,而不是手动将工具描述注入到您的提示中并为工具调用编写单独的解析器,正如一些人过去所报告的那样。这是最小化错误并确保模型在工具调用轨迹期间保持分布内的最佳方法 - 在我们自己的实验中,当使用 API 解析的工具描述与手动将模式注入系统提示相比时,我们观察到 SWE-bench Verified 通过率提高了 2%。 开发者应该清楚地命名工具以指示其用途,并在工具的”description”字段中添加清晰、详细的描述。同样,对于每个工具参数,依靠良好的命名和描述来确保适当的使用。如果您的工具特别复杂,并且您想提供工具使用示例,我们建议您在系统提示中创建一个# Examples(示例)部分并将示例放在那里,而不是将它们添加到”description”字段中,该字段应该保持详尽但相对简洁。提供示例有助于指示何时使用工具、是否在工具调用旁边包含用户文本以及哪些参数适合不同的输入。请记住,您可以在 Prompt Playground 中使用”Generate Anything”(生成任何内容)为您的新工具定义获得一个良好的起点。
提示引导的规划和思维链
如前所述,开发者可以选择性地提示使用 GPT-4.1 构建的智能体在工具调用之间进行规划和反思,而不是静默地以不间断的序列调用工具。GPT-4.1 不是推理模型 - 这意味着它不会在回答之前产生内部思维链 - 但在提示中,开发者可以使用上面显示的规划提示组件的任何变体来引导模型产生明确的、逐步的计划。这可以被认为是模型”大声思考”。在我们对 SWE-bench Verified 智能体任务的实验中,引导显式规划将通过率提高了 4%。示例提示:SWE-bench Verified
下面,我们分享了我们用来在 SWE-bench Verified 上获得最高分数的智能体提示,其中包含有关工作流和问题解决策略的详细说明。这种通用模式可用于任何智能体任务。2. 长上下文
GPT-4.1 具有高性能的 100 万 token 输入上下文窗口,对各种长上下文任务很有用,包括结构化文档解析、重新排序、在忽略无关上下文的同时选择相关信息,以及使用上下文执行多跳推理。最佳上下文大小
我们在干草堆中找针的评估中观察到了非常好的性能,最高可达我们的完整 100 万 token 上下文,并且我们观察到在具有相关和无关代码及其他文档混合的复杂任务中表现非常强。但是,随着需要检索的项目增多,或执行需要了解整个上下文状态的复杂推理(例如执行图搜索),长上下文性能可能会下降。调整上下文依赖
考虑回答您的问题可能需要的外部知识与内部知识的混合。有时模型使用一些自己的知识来连接概念或进行逻辑跳跃很重要,而在其他情况下,仅使用提供的上下文是可取的。提示组织
特别是在长上下文使用中,指令和上下文的位置会影响性能。如果您的提示中有长上下文,理想情况下将您的指令放在提供的上下文的开头和结尾,因为我们发现这比仅在上面或下面表现更好。如果您更喜欢只有一次指令,那么在提供的上下文上方比下方效果更好。3. 思维链
如上所述,GPT-4.1 不是推理模型,但提示模型逐步思考(称为”思维链”)可以是一种有效的方式,让模型将问题分解为更易管理的部分,解决它们,并提高整体输出质量,代价是与使用更多输出 token 相关的更高成本和延迟。该模型已被训练在智能体推理和现实世界问题解决方面表现良好,因此不需要太多提示即可表现良好。 我们建议在提示的末尾使用这个基本的思维链指令:4. 指令遵循
GPT-4.1 表现出出色的指令遵循性能,开发者可以利用它来精确塑造和控制其特定用例的输出。开发者经常为智能体推理步骤、响应语气和声音、工具调用信息、输出格式、要避免的主题等进行大量提示。但是,由于模型更字面地遵循指令,开发者可能需要包含有关做什么或不做什么的明确规范。此外,为其他模型优化的现有提示可能不会立即与此模型一起使用,因为现有指令被更紧密地遵循,隐含规则不再被强烈推断。推荐的工作流
以下是我们推荐的在提示中开发和调试指令的工作流:- 从包含高级指导和要点的总体”响应规则”或”指令”部分开始。
- 如果您想更改更具体的行为,请添加一个部分来指定该类别的更多详细信息,例如
# 示例短语。 - 如果您希望模型在其工作流中遵循特定步骤,请添加有序列表并指示模型遵循这些步骤。
- 如果行为仍然不符合预期:
- 检查是否有冲突、未充分指定或错误的指令和示例。如果存在冲突的指令,GPT-4.1 倾向于遵循更接近提示末尾的指令。
- 添加演示所需行为的示例;确保您的示例中演示的任何重要行为也在您的规则中引用。
- 通常没有必要使用全大写或其他激励措施,如贿赂或小费。我们建议在没有这些的情况下开始,并且只有在您的特定提示需要时才使用这些。请注意,如果您现有的提示包含这些技术,它可能会导致 GPT-4.1 过于严格地注意它。
常见失败模式
这些失败模式并非 GPT-4.1 独有,但我们在此分享它们以提高一般意识并便于调试。- 指示模型始终遵循特定行为有时会引起不良影响。例如,如果被告知”您必须在响应用户之前调用工具”,如果它们没有足够的信息,模型可能会产生幻觉工具输入或使用空值调用工具。添加”如果您没有足够的信息来调用工具,请向用户询问您需要的信息”应该可以缓解这种情况。
- 当提供示例短语时,模型可以逐字使用这些引用,并开始对用户听起来重复。确保您指示模型根据需要对它们进行变化。
- 如果没有具体说明,一些模型可能渴望提供额外的散文来解释他们的决定,或者在响应中输出比可能需要的更多的格式。提供指令并可能提供示例以帮助缓解。
示例提示:客户服务
这展示了虚构客户服务智能体的最佳实践。观察规则的多样性、特异性、用于更详细的额外部分的使用,以及演示包含所有先前规则的精确行为的示例。5. 一般建议
提示结构
作为参考,这是构建提示的一个好起点。分隔符
以下是为提示选择最佳分隔符的一些通用指南。有关该上下文类型的特殊注意事项,请参阅长上下文部分。- Markdown: 我们建议从这里开始,并使用 Markdown 标题作为主要部分和子部分(包括更深的层次结构,到 H4+)。使用内联反引号或反引号块来精确包装代码,并根据需要使用标准编号或项目符号列表。
- XML: 这些也表现良好,我们通过此模型提高了对 XML 中信息的遵守。XML 可以方便地精确包装包括开始和结束的部分,向标签添加元数据以获得额外的上下文,并启用嵌套。以下是使用 XML 标签在示例部分中嵌套示例的示例,每个示例都有输入和输出:
- JSON 是高度结构化的,在编码上下文中被模型很好地理解。但是它可能更冗长,并且需要字符转义,这会增加开销。
- XML 在我们的长上下文测试中表现良好。
- 示例:
<doc id='1' title='The Fox'>The quick brown fox jumps over the lazy dog</doc>
- 示例:
- Lee 等人提出的这种格式(参考)在我们的长上下文测试中也表现良好。
- 示例:
ID: 1 | TITLE: The Fox | CONTENT: The quick brown fox jumps over the lazy dog
- 示例:
- JSON 表现特别差。
- 示例:
[{'id': 1, 'title': 'The Fox', 'content': 'The quick brown fox jumped over the lazy dog'}]
- 示例:
注意事项
- 在一些孤立的情况下,我们观察到模型抵制产生非常长的、重复的输出,例如,逐个分析数百个项目。如果这对您的用例是必需的,请强烈指示模型完整输出此信息,并考虑分解问题或使用更简洁的方法。
- 我们看到了一些罕见的并行工具调用不正确的实例。我们建议测试这一点,如果您遇到问题,请考虑将 parallel_tool_calls 参数设置为 false。
附录:生成和应用文件差异
开发者向我们反馈说,准确且格式良好的差异生成是支持编码相关任务的关键能力。为此,相对于以前的 GPT 模型,GPT-4.1 系列在差异能力方面有了实质性的改进。此外,虽然 GPT-4.1 在给定明确的指令和示例的情况下在生成任何格式的差异方面表现强劲,但我们在这里开源了一种推荐的差异格式,该模型已在该格式上进行了广泛的训练。我们希望特别是对于刚刚起步的开发者来说,这将消除自己创建差异时的大部分猜测。Apply Patch(应用补丁)
请参阅下面的示例,了解正确应用我们推荐的工具调用的提示。参考实现:apply_patch.py
这是我们在模型训练中使用的 apply_patch 工具的参考实现。您需要将其制作成可执行文件,并在模型将执行命令的 shell 中作为apply_patch 可用:
其他有效的差异格式
如果您想尝试使用不同的差异格式,我们在测试中发现 Aider 的多语言基准测试中使用的 SEARCH/REPLACE 差异格式,以及没有内部转义的伪 XML 格式,都具有很高的成功率。 这些差异格式共享两个关键方面:(1)它们不使用行号,(2)它们提供要替换的确切代码和要替换它的确切代码,两者之间有清晰的分隔符。 SEARCH/REPLACE 格式示例:总结
本指南提供了充分利用 GPT-4.1 强大功能的全面最佳实践。关键要点包括:- 智能体工作流:使用持久性、工具调用和规划提醒来构建强大的智能体
- 长上下文处理:有效利用 100 万 token 上下文窗口,注意指令放置
- 思维链:引导模型逐步推理以提高复杂任务的性能
- 指令遵循:利用改进的指令遵循能力,使用清晰、明确的规范
- 提示结构:使用合适的分隔符和组织良好的提示结构

