掌握Augment官方推荐的11种提示词技巧,让你的AI编程智能体成为得力助手。在现代软件开发中,Prompt Engineering(提示词工程)已经成为一项核心技能。你提供给AI智能体的prompt(提示词)不仅决定了它的规划方式、使用工具的方式,也决定了它是能顺利构建代码还是会破坏你的整个流程。往往只需一些细微改变——比如多加一条上下文、澄清一个约束条件或调整指令顺序——就能带来准确性和可靠性的大幅提升。
本文总结了我们在Augment Code打造自治AI智能体时所用的实践技巧,帮助大家构建出像严谨队友一样工作的AI,而不是只会“瞎编乱码”的工具。文中的示例主要围绕编码型智能体,但这些方法大多具有普适性。本文详解11种提示词技巧,让你直接获得这些实用经验。
什么是提示词工程?
一个AI智能体的Prompt包括提供给模型的所有输入内容。其中常见的几个组成部分有:
系统提示(System prompt)
工具定义(Tool definitions)
工具输出(Tool outputs)
用户指令(User instructions)
模型在之前对话回合中的输出
提示词工程指的就是,通过给模型提供更好的Prompt,来让它在特定任务上发挥更好表现的艺术。我们可以对提示的所有部分进行改进,比如:
在系统提示词中加入通用性指令,以引导模型朝不同的回复风格或自主度前进
在工具定义中向模型解释在什么情况下应该或不应该使用该工具
在工具输出中告知模型错误信息或异常状态
在把用户指令展示给模型前,对其进行重写(提示增强)
对过去模型输出内容进行压缩或截断,从而节省tokens,让更多的对话历史能放进上下文窗口。而截断的方式也会影响最终质量
如何看待模型?
模型是(人造的)智能体。给模型下指令更像是和一个人对话,而不是编程操控计算机。模型对世界的理解只基于提示中包含的内容。你给它的世界信息越完整、越一致,它的表现往往也就越好。
我们看到的是一个自然语言界面,这和我们平时接触的编程语言界面是分开的。最好把语言模型(LM,区别于我们平常的大语言模型LLM)的接口当作一个真实的抽象层来看待:我们不仅可以在这里获取到“理想化的输出”,也可以在这里反馈错误、发送变更提醒等——和模型进行充分的沟通。
举个例子:
如果模型错误地调用了某个工具,不要在智能体的代码中抛出异常,而是返回一个工具的结果,说明错误原因:
工具被调用时缺少必须的参数xyz。这样模型就能自行纠正并重新尝试。
如何评估提示词?
如果目标是让模型执行非常具体的任务,自动化评估提示往往就不再困难。但在大多数场景下,需要通过人为设计一些场景来测试提示在各方面的表现,并检查在某些特定示例中是否会出现退化现象。
一个能说明问题的例子是:Augment Code 通过同样的提示工程手段,拿下了 SWE-bench开放源代码排名第一(官方验证),从而可以看到这些评估方法的实际效果。
提示工程技巧:11种核心方法
按照以下提示词技巧,你们就能解锁AGI级别的AI编程体验。
1. 首先专注于上下文
在提示词工程中,最重要的一点是为模型提供最优质的上下文信息:也就是用户真正需要给模型的内容,而非我们自行添加的文本。这些上下文信息通常是模型最主要的信号来源。
当前的模型非常擅长从大段内容中提取有用的部分。所以,如果有疑虑,宁愿多给一些信息,只要能保证其中包含了对模型有帮助的、与任务相关的上下文。
在设计提示时,你应该问自己的第一个问题是:“提示中是否包含了所有可能相关的信息?出现的可能性有多大?” 这个问题并不总是好回答。
举个例子:
当我们想要把很长的命令输出截断后再提供给模型时,截断的方法很重要。通常情况下,我们会截断末尾部分。但对于命令输出来说,前缀和末尾信息往往最关键;比如崩溃时的堆栈信息通常在最后。所以,为了让模型尽可能拿到最有用的信息,可考虑在中间部分进行截断,而把开头和结尾都保留给模型。
