Learn
Dify/07-prompt-orchestration

提示词编排

提示词是应用的「灵魂」。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 示例能显著提升稳定性
  • 变量需兜底;下一步理解变量与上下文机制 →