Context-Minimization Pattern

Nikola Balic (@nibzard)· emerging

问题

用户提供或受污染(tainted)的文本会残留在对话上下文中,从而影响后续生成。

方案

清除或脱敏不可信片段,在其完成用途后:

  • 将输入转换为安全中间形式(查询、结构化对象)后,从上下文中移除原始提示。
  • 后续推理仅看到可信数据,消除潜在注入。
sql = LLM("to SQL", user_prompt)
remove(user_prompt)              # 污染 token 已移除
rows = db.query(sql)
answer = LLM("summarize rows", rows)

如何使用

客服对话、医疗问答,以及任何首轮文本不应主导后续步骤的多轮流程。

权衡

  • 优点:实现简单;无需额外模型;通过减少整体上下文用量有助于缓解上下文窗口焦虑
  • 缺点:后续轮次会失去对话上的细微差别,可能影响体验;过度激进的最小化可能删掉有用上下文。

参考文献

关键词

Beurer-Kellner 等人论文中关于上下文最小化的小节;Claude 博客强调消除提示中矛盾的重要性。

直译

Beurer-Kellner et al., §3.1 (6) Context-Minimization.

该小节讨论在 Agent 与多步提示流程中,如何在使用完用户输入或不可信内容后将其从上下文中移除,仅保留可信的中间表示(如结构化查询、抽取结果),从而降低提示注入与上下文污染风险;论文将此类做法归纳为「上下文最小化」模式。

Building Companies with Claude Code链接

文中强调消除提示与上下文中矛盾的重要性,并指出:若提示里存在矛盾,模型将产出更低质量的结果。因此在实际构建基于 Claude 的产品时,应保持上下文一致、及时移除已失效或与当前目标冲突的片段,与上下文最小化思路一致。

来源摘要

正在获取来源并生成中文摘要…

来源: https://arxiv.org/abs/2506.08837

← 返回社区