提示词库/治AI的毛病/三、控制输入内容,减少无效上下文 三、控制输入内容,减少无效上下文
中文已实测✓exp-2798
输入内容越长,模型需要处理的信息越多。在长对话、知识库问答、文档分析和 Agent 场景中,如果每次请求都携带大量历史内容、无关材料或重复提示词,就会增加处理成本和响应延迟。
可以从以下几个方面优化输入内容。
1. 清理无关历史对话
多轮对话中,不一定需要把全部历史消息都传给模型。可以根据当前问题,只保留与本轮任务相关的关键信息。
例如,用户连续咨询订单问题时,可以保留订单号、问题类型、已确认状态等信息,而不必完整保留所有寒暄、重复确认和无关上下文。
2. 对长上下文进行摘要
对于较长的历史对话或文档内容,可以先沉淀为结构化摘要,再作为后续输入。
例如:
用户背景: - 用户已购买企业版套餐 - 当前问题是无法查看用量明细 - 已确认账号权限正常 - 需要继续排查组织空间配置
这种方式比直接传入完整对话更短,也更方便模型抓住重点。
3. 优化 RAG 检索结果
知识库问答场景中,常见问题不是模型能力不足,而是检索结果过多、过长或相关性不足。建议在进入模型前,对检索结果进行筛选和压缩。
可以考虑:
控制 Top-K 数量 去除重复片段 优先保留与问题最相关的段落 删除网页导航、页脚、版权说明等无关内容 对长文档片段做摘要后再输入模型
RAG 场景中,输入内容的质量往往比长度更重要。少量高相关内容,通常优于大量低相关内容。
4. 使用上下文缓存复用重复内容
如果业务中存在大量重复上下文,例如固定系统提示词、长期不变的工具说明、知识库说明、角色设定或历史对话片段,可以结合上下文缓存能力,减少重复内容带来的处理成本。
适合使用上下文缓存的场景包括:
多轮对话中反复使用相同系统提示词 知识库问答中反复使用相同背景材料 批量处理任务中反复使用同一套分析规则 长文档问答中围绕同一份文档连续提问
为了提高缓存命中效果,开发者可以从以下几个方面优化:
4.1 将稳定内容放在 Prompt 前部
在组织 Prompt 时,建议将 长期不变、可复用的内容放在前部 ,例如系统角色、回答规范、工具说明、业务规则等;将 每次请求都会变化的内容放在后部 ,例如用户本轮问题、检索结果、时间、订单状态等。
例如,知识库问答场景可以按以下顺序组织:
固定部分: - 你是一个企业知识库问答助手 - 回答要求:准确、简洁,不编造 - 如果资料不足,请说明无法确认 - 输出格式:先给结论,再补充依据 动态部分: - 用户本轮问题 - 本次检索到的知识库片段
这样做的好处是,前半部分在多次请求中保持稳定,更容易被缓存复用;后半部分虽然每次变化,但不会影响前面固定内容的复用效果。
4.2 保持系统提示词稳定
如果希望系统提示词被反复缓存,就不要在每次请求中频繁改写它。即使只是增加时间戳、随机编号、临时说明,或者调整段落顺序,也可能降低缓存命中效果。
不建议这样写:
你是一个客服助手。当前时间是 2026-06-08 14:32:10。 请根据用户问题回答。
如果时间不是模型判断所必需的信息,可以不要放入系统提示词;如果确实需要时间信息,可以放到用户问题或动态上下文中:
系统提示词: 你是一个客服助手。请根据业务规则准确回答用户问题。 动态上下文: 当前日期:2026-06-08 用户问题:我的套餐什么时候到期?
这样可以让系统提示词保持稳定,同时保留必要的动态信息。
4.3 把长文档、工具说明和业务规则做成固定模板
在 Agent、文档问答、代码审查等场景中,工具说明、任务规则、评分标准、输出格式往往很长。如果这些内容每次都需要传入,建议整理成稳定模板,避免每次请求临时拼接不同版本。
例如,代码审查场景中,不要每次都让系统随机生成审查标准,而是固定为一套稳定规则:
你是一个代码审查助手,请从以下方面进行检查: 1. 代码可读性 2. 潜在 Bug 3. 性能问题 4. 安全风险 5. 可维护性建议 请按“问题 - 原因 - 修改建议”的格式输出。
后续每次只替换待审查代码即可
请审查以下代码: {{code_snippet}}
这样可以让审查规则被反复复用,而真正变化的部分只保留在后面。
4.4 对高频任务使用统一 Prompt 模板
如果同一个业务场景下有多个入口,例如 Web 端、控制台、客服后台都在调用同一个模型能力,建议共用同一套 Prompt 模板,而不是每个入口各写一份类似但不完全相同的提示词。
例如,企业知识库问答可以统一成:
系统提示词: 你是一个企业知识库助手。请严格依据提供的资料回答问题。 如果资料中没有相关信息,请回答“当前资料中未找到明确说明”。 动态输入: 用户问题:{{user_question}} 检索资料:{{retrieved_context}}
这样不仅有利于缓存复用,也方便后续统一维护和评估效果。
4.5 将固定回复交给程序处理
上下文缓存可以减少重复上下文的处理成本,但并不意味着所有固定内容都要交给模型生成。对于高度固定的回复,建议直接由业务系统返回。
例如:
复制后粘贴到 AI 对话框发送,本次对话全程生效
出处:智谱 GLM 官方提示词教程 · docs.bigmodel.cn/cn/best-practice/latency-optimization · 可信度 S · 标签:中文 / 提示词工程 / 防幻觉 / 角色扮演 / 框架 怎么用(对话型)复制后粘贴到对话框发送,本次对话全程生效。想长期用:支持自定义指令的产品(设置→个性化)可设为默认。