Dify解惑:Prompt变量插值与Context上下文为什么分开设计?
在 Dify 中,Context 上下文不是一个"可有可无"的附加功能,而是面向企业级、知识型、多轮对话类应用的核心底座 。
很多新手只把它当成"放文档的地方",但实际上,Context 的设计目标是:统一管理外部知识、自动处理超长文本、保留引用溯源、支撑多轮对话。
本文把 Context 上下文的真实适用场景一次性讲透,让你知道:什么时候必须用 Context?为什么不能用普通 Prompt 插值代替?
一、RAG 知识库问答
适用说明
用户提问 → 系统从知识库/文档库检索相关片段 → 交给 LLM 生成答案。
为什么必须用 Context?
- 自动拼接多段召回文本
一次检索可能返回 3~10 段文档,Context 会自动把它们合并成干净格式。 - 自动截断超长内容,防止超 Token
Prompt 插值需要你手动处理长度,很容易超限报错;Context 自带智能截断。 - 保留来源信息,支持引用溯源
答案下方可以显示:- 参考文档:《产品手册V3.0》
- 段落位置:第 2.4 节
- 文档ID、分段ID、文件名全部保留
普通 Prompt 插值完全做不到。
典型使用方式
请仅根据下面提供的参考资料回答用户问题,不要编造答案:
{{context}}
用户问题:{{query}}
二、多文档/多文件联合问答场景
适用说明
一次回答需要参考:
- 产品说明书
- 合同条款
- 历史聊天记录
- 接口文档
- 工具返回结果
Context 优势
- 支持同时绑定多个上游文本节点
- Dify 自动去重、自动排序、自动整合
- 你只需要写一个
{``{context}},不用手动拼接 N 个变量
对比
- Prompt 插值:
{``{doc1}} {``{doc2}} {``{doc3}}容易乱、容易超长 - Context:自动托管,干净稳定
三、长文本处理(报告总结、文档阅读、长资料分析)
适用说明
- 读取 PDF/Word 长文档
- 总结会议纪要
- 分析合同、法规、年报
- 处理 10k~100k 字符级别的长文本
Context 为什么更适合?
- 内置按模型最大上下文长度自动截断
- 自动保留最重要、最相关的内容
- 不会因为文本太长直接报错
- 支持分段检索 + 全局上下文组合
普通 Prompt 插值一旦文本过长,直接触发 400 错误或模型拒绝响应。
四、需要"引用来源/引文标注"的正式场景
适用说明
- 法律问答
- 医疗咨询
- 企业合规问答
- 政务问答
- 教育助教
- 金融文档解读
这些场景必须标明答案来源,否则不可用。
Context 核心能力
- 自带chunk 元数据
- 支持前端显示引用标记
- 支持回溯原文
- 满足企业合规要求
普通 Prompt 插值只是纯文本,无法溯源。
五、多轮对话 + 长期记忆场景
适用说明
- 智能客服
- 私人助手
- 连续咨询类应用
- 多轮次复杂任务
Context 作用
- 与 Dify 会话历史(History)底层打通
- 系统自动管理:历史对话 + 当前上下文资料
- 多轮对话不会丢失资料
- 支持"带着文档跟你聊 20 轮"
普通 Prompt 插值无法参与会话管理。
六、工具调用结果自动注入上下文(Function Call)
适用说明
- 搜索工具
- 数据库查询
- API 接口
- 计算器、代码解释器
- 自定义工具
工具返回的结果最适合放入 Context。
优势
- 工具返回 → 自动进 Context
- LLM 统一阅读上下文
- 结构干净、不污染 Prompt 模板
七、企业级标准化应用(模板复用、多人协作)
适用说明
- 团队协作编排
- 模板统一管理
- 多环境发布(测试/生产)
- 可维护、可迭代的正式应用
Context 让提示词模板更干净:
- 提示词只管逻辑
- 上下文只管资料
- 结构清晰,不会越写越乱
八、禁止模型编造、必须严格依据资料回答的场景
适用说明
- 客服问答
- 政策解答
- 产品参数问答
- 技术支持
- 知识考核类应用
Context 配合提示词:
你只能根据提供的参考资料回答,不允许使用外部知识,不知道就说"未找到相关答案"。
{{context}}
稳定性远高于普通插值。
九、哪些场景【不推荐】用 Context?
为了让你更清晰,这里明确不适合的场景:
- 简单固定配置(如角色设定、温度、规则)
- 极短变量(如用户名、日期、ID)
- 不需要溯源、不需要长文本、不需要多轮的极简单轮对话
这些场景用 Prompt 直接插值 更简单。
十、 Context 最适合哪些场景
| 场景 | 是否推荐用 Context | 核心原因 |
|---|---|---|
| RAG 知识库问答 | ✅ 必须用 | 引文溯源、自动截断、自动拼接 |
| 多文档联合问答 | ✅ 强烈推荐 | 统一托管多来源资料 |
| 长文本总结 | ✅ 强烈推荐 | 防止超 Token |
| 法律/合规/政务问答 | ✅ 必须用 | 必须溯源 |
| 多轮对话助手 | ✅ 必须用 | 与会话记忆打通 |
| 工具调用结果 | ✅ 推荐 | 干净不污染 Prompt |
| 简单角色设定 | ❌ 不推荐 | 用 Prompt 插值更简单 |
| 短变量注入 | ❌ 不推荐 | 没必要 |
十一、总结
Context 上下文 = 外部知识容器 + 长文本处理器 + 溯源管理器 + 多轮对话记忆体
凡是需要参考资料、文档、知识、工具返回、长文本 的场景,一律用 Context。
凡是固定设定、简短变量、简单逻辑,用 Prompt 插值。