人人都会AI编程

提示词管理、对话管理、答案编排

更新时间:2026-07-12

提示词管理

提示词(Prompt)决定了模型如何理解任务、如何使用检索到的资料以及如何组织回答。在 RAG 系统中,提示词不再是开发阶段一次性写死的几行文本,而是需要像代码一样被设计、测试和迭代的系统组件。提示词管理就是指对这些提示模板的创建、版本控制和持续优化的过程。

1. 提示词为什么需要专门管理

  • 知识库变化时,提示词可能也要调整:比如新增了“回答时须区分国内和国际政策”这样的全局要求,需要在提示词里加入对应指令。
  • 不同场景可能需要不同风格或约束:客服助手的回答要亲切,而法审助手的回答则要求直接引用条款编号,无法使用同一套提示词。
  • 调试和回溯:当线上回答出现系统性问题时,需要立刻知道当时用的提示词版本来定位原因。

2. 实用的提示词管理做法

  • 使用模板变量,而不是硬编码具体内容

典型的 RAG 提示词模板包含几个插槽:{context}(检索到的资料)、{question}(用户问题)。在需要时可扩展,例如 {role_description}(角色描述)、{format_instruction}(格式要求)。

示例模板:

  你是{role_description}。请根据以下资料回答问题。
  资料内容:
  {context}

  问题:{question}

  要求:
  - 只用资料中的信息回答
  - 回答末尾注明资料来源
  - {format_instruction}
  
  • 集中存储,线上实时读取

将提示词模板存储在配置文件、数据库或专门的提示词管理工具中,而非散落在代码各处。系统每次调用 LLM 时动态读取并填充,这样就可以在不重新部署的情况下修改提示词。

  • 版本管理,能够快速回滚

为每个提示词模板维护版本号。测试新版本提示词时不影响线上服务,验证通过后再切换。一旦新版本产生意外效果,可以一键切回旧版本。这类似于代码发布流程,成本却很低。

3. 真实场景建议

  • 对每个业务场景创建独立的提示词模板,避免“万能模板”顾此失彼;
  • 新模板上线前,用一组典型的用户问题做批量测试,检查回答质量;
  • 保持提示词简洁。过于冗长的指令反而会让模型忽略关键约束,好的提示词通常只包含角色、资料引用方式、输出要求这几点核心要素。

对话管理

RAG 不是只能处理单轮问答,在客服、助手等场景中往往需要进行多轮对话。对话管理负责维护用户与系统交互过程中的会话状态,确保模型能记住上下文,并正确处理连续提问、追问和话题切换。

1. 多轮对话中的特有挑战

  • 上下文截断与拼接:LLM 的输入长度有限,不能简单地无限追加历史消息。需要选择合适的消息裁剪策略,同时保留最重要的检索信息。
  • 对话中的指代消解:用户第二轮问“它支持快充吗?”,模型必须知道“它”指的是上一轮提到的某个产品。
  • 话题切换:如果用户前一句在问“退货流程”,下一句问“地址在哪”,系统需要判断是在问公司地址,还是已经切换到另一个话题。

2. 实用的对话管理策略

  • 维护会话消息队列

每个会话对应一个消息列表,系统按时间顺序记录用户消息和模型回复。列表中每一条消息包含角色(用户/助手)和内容。这是多数 LLM API 原生支持的对话格式。

  • 滑动窗口裁剪

当历史消息过长时,丢弃最早的非关键消息,但保留最近几轮对话。一般保留最近 5–10 轮交互,附带系统在第一时间设置的角色指令。

  • 将检索结果作为系统消息注入

在多轮对话中,每一轮用户问题都可能需要重新检索。将当轮的检索资料以系统消息(system 或类似角色)的形式插入到当前轮次的消息列表中,而不是直接塞进用户消息,这样可以更清晰地界定资料边界,防止模型混淆历史资料和当前资料。

  • 意图与话题跟踪(可选的进阶做法)

对于复杂场景,可以借助轻量级的话题标记,让系统知道当前处于“政策咨询”还是“技术支持”等状态,从而在提示词中加入对应领域的说明。并非所有项目都需要这一步,简单场景靠最近的对话上下文通常就能解决指代问题。

3. 真实场景建议

  • 在正式使用前,用几组典型的连续提问做对话穿测,特别关注模型在切换话题或引用前文时的表现;
  • 设定明确的重置条件,比如用户输入“结束”或长时间无输入时,自动清空会话历史,避免多轮对话的上下文污染到下一段全新会话;
  • 给模型提供当前对话的简要背景(例如“以下是用户与助手的对话历史”),帮助它正确理解时序。

答案编排

检索到的原始资料往往只是零散的文本片段,如果直接原样返回,阅读体验可能很差。答案编排是指在模型生成最终回复前或之后,对输出进行结构化处理、格式化增强和引用整合,让最终呈现给用户的答案更清晰、可操作。

1. 为什么需要答案编排

  • 纯粹的自然语言回答有时不够直观:例如相关政策条目很多,只靠一段长文本,用户很难抓住重点。
  • 需要明确指示操作:工单场景中,答案最好包含规范的操作步骤或链接,而不仅仅是一段解释。
  • 多来源信息需要统一整合:一个问题的答案可能引用三份文档,需要合理编排,避免重复或矛盾。

2. 答案编排的实用方式

  • 生成阶段的格式约束

在提示词中明确要求模型以特定结构输出,比如:

  • 先一句话总结结论;
  • 再分点列出依据;
  • 最后提供相关链接或操作入口。

这能在模型生成阶段就直接得到结构化内容,减少后续处理。

  • 后处理增强

有些编排可以在生成后由程序完成,不改动模型输出内容本身:

  • 引用链接化:识别输出中的“【来源:文档A】”标记,自动替换为可点击的文档链接或跳转按钮。
  • 列表与表格渲染:如果需要对比多个数据,可要求模型生成 Markdown 表格,前端直接渲染。
  • 敏感信息脱敏:在最终呈现前对姓名、电话等隐私信息做遮盖,而不让模型负责脱敏(避免遗漏)。
  • 多模态编排(可选)

在知识库中包含图片、图表时,检索结果可以返回图片链接,答案编排模块将图片嵌入到文字回答中,形成图文并茂的回复。这常用于产品使用说明等场景。

3. 真实场景建议

  • 优先从提示词层面规范输出格式,可以减少后处理复杂度和异常情况;
  • 编排不要过度美化:如果回答不准确,再好的格式也没有意义。始终以内容正确性为第一前提;
  • 为不同终端(网页、手机、工单)设计不同的编排逻辑,保证答案在各端都有良好可读性。

提示词管理、对话管理和答案编排三者共同构成了 RAG 系统在“生成”这一侧的工程实践。它们将模型能力与业务需求紧密衔接,是把技术原型变为可稳定运行的产品的关键所在。