提示词编排
提示词是应用的「灵魂」。Dify 把提示词工程变成可视化、可变量化的配置。本章讲清系统提示、角色设定与占位符三大件。
1. 系统提示(System Prompt)
系统提示定义模型的身份、目标与约束,出现在每轮对话最前面,对整体行为影响最大。
一个好的系统提示通常包含:
- 角色:你是谁(如「资深技术支持工程师」)
- 目标:要帮用户做什么
- 风格/约束:语气、长度、禁忌(如「不知道就明说」)
- 输出格式:是否用列表、是否带步骤
你是一名严谨的「IT 支持助手」。
目标:帮助员工解决常见的电脑与账号问题。
要求:
1. 用中文,分步骤说明,必要时给出命令示例。
2. 涉及密码等敏感操作,提醒用户通过官方渠道处理。
3. 无法确认时,明确告知并建议提交工单。💡把约束写具体
「回答要专业」太模糊。改成「用中文、分步骤、每条不超过 3 行、敏感操作给官方渠道」——越具体,模型越稳定。
2. 对话角色与多角色设定
对话型应用默认是「系统 + 用户 + 助手」三角色。Dify 支持在编排里指定:
- 开场白(Opening):首条助手消息,引导用户
- 建议问题(Suggested Questions):提供快捷提问按钮
- 可通过提示词让模型扮演特定人格或遵循特定应答模板
3. 变量占位符
提示词里可以用 {{变量名}} 引用变量,让同一段提示词适配不同输入。
你正在为 {{user_name}} 提供服务。
他/她是 {{department}} 部门的员工。
请结合其部门特点,回答关于 {{topic}} 的问题。运行时 {{user_name}} 等会被实际值替换(变量如何定义见第 8 章)。这让提示词从「写死」变为「参数化、可复用」。
⚠️变量要兜底
如果变量可能为空(如用户未填部门),在提示词里加一句「若未提供部门,按通用情况回答」,避免模型因空值产生奇怪输出。
4. 提示词模板进阶
- Few-shot 示例:在提示里放 1–3 个「问→答」样例,引导格式
- 结构化指令:用编号、关键词(必须/禁止)强化约束
- 条件分支:结合工作流(第 10 章)实现「不同输入走不同提示」
示例:
问:怎么重置密码?
答:请访问 account.example.com/reset,用企业邮箱验证后设置新密码。
(遵循此格式回答类似问题)5. 调试技巧
- 在预览窗口逐条测试边界问题(空输入、超长输入、敏感词)
- 用「对话日志」(第 15 章)回看模型实际收到的完整提示词
- 提示词改动后保存再发布,草稿态不影响线上
🎯动手优化
把你第 6 章的提示词,按「角色 + 目标 + 约束 + 格式」四段式重写,并加入一个 {{product_name}} 变量,对比改写前后的回答质量。
小结
- 系统提示定义角色/目标/约束,是行为总开关
- 用
{{变量}}让提示词参数化、可复用 - 具体约束 + Few-shot 示例能显著提升稳定性
- 变量需兜底;下一步理解变量与上下文机制 →