agent 的 prompt 包括作为输入提供给模型的所有内容。这包括各种组件:
-
System prompt:可以包含一般指令,以引导模型产生不同的响应风格或自主性水平
-
工具定义:可以向模型解释在何种情况下应使用或不应使用工具
-
工具输出:可以告知模型错误情况
-
用户说明:可以在展示给模型之前进行重写(提示增强)
-
模型在之前轮次中的自身输出:可以被压缩或截断以节省 tokens,从而使更长的对话历史能够适应上下文窗口。截断方式对质量至关重要
提示工程技巧
-
首先关注上下文:提示工程中最重要的因素是为模型提供最佳上下文——用户提供的信息(而非我们提供的提示文本)。这是模型执行任务时使用的主要信号。
-
呈现世界的完整图景:通过解释模型所处的环境并提供有助于其良好表现的细节,帮助模型进入正确状态。
-
在提示组件中保持一致:确保提示的所有组件(系统提示、工具定义等)以及底层工具定义保持一致。
-
将模型与用户的视角对齐:考虑用户的视角,并尝试将模型与该视角对齐。
-
彻底:模型受益于详尽的提示。不必担心提示的长度。当前的上下文长度很长,并且会持续增加:通过编写更长的提示,你无法对提示预算造成影响。
-
避免对特定示例过拟合:模型是强大的模式匹配器,会抓住提示中的细节。提供具体示例可能是一把双刃剑——它是引导模型朝正确方向发展的简便方法,但也存在模型过度拟合这些示例并在其他情况下表现不佳的风险。
-
考虑工具调用的限制
-
威胁和唤起同情有时奏效
-
注意提示缓存
-
模型更关注提示开头或尤其是结尾的信息
-
注意提示平台期:单纯提示所能实现的效果是有限的。提示工程进入收益递减领域,需要引入其他技术。
参考文献:
[1] https://www.augmentcode.com/blog/how-to-build-your-agent-11-prompting-techniques-for-better-ai-agents
知识星球服务内容:Dify源码剖析及答疑,Dify对话系统源码,NLP电子书籍报告下载,公众号所有付费资料。加微信buxingtianxia21进NLP工程化资料群。
(文:NLP工程化)