上下文管理:单轮对话与多轮对话、法律语境构建、长文本分段处理技巧
说实话,上下文管理是法律AI提示词工程里最容易被低估的一环。
我见过太多人,明明提示词写得不错,模型也选对了,结果对话一长就崩。要么模型忘了前面说了什么,要么回答开始前后矛盾。嗯,这其实不是模型笨,是我们没教会它怎么「记住」和「忘记」。
单轮对话 vs 多轮对话:什么时候该「清零」?
先搞清楚一个基本概念。单轮对话,就是每次提问都是独立的。模型不会参考你上一句说了什么。多轮对话则相反,模型会带着历史信息来理解当前问题。
我在项目中遇到过这样一个场景:用户问「张三涉嫌盗窃,能判几年?」模型回答完。接着用户又问「那如果他是初犯呢?」——如果这是单轮对话,模型会懵掉,因为它不知道「他」指的是谁。
所以我的建议是:
- 法律检索类任务:用单轮对话。每次检索都是独立的,历史信息反而会干扰结果。
- 合同审查、案情分析:用多轮对话。你需要模型记住前面讨论的条款或事实。
- 法律咨询模拟:必须用多轮对话。客户不会一次性把所有信息告诉你。
核心原则:如果后续问题依赖前文信息,就用多轮。否则,果断清零。
法律语境构建:让模型「进入角色」
你想想看,法律领域最怕什么?最怕模型用「常识」去推理「法理」。比如问「合同无效的情形」,模型可能凭生活经验回答,而不是依据《民法典》。
怎么解决?构建法律语境。
我个人习惯在每轮对话的开头,都加一段「语境锚点」。比如:
你是一名资深民商事诉讼律师,执业10年。
请严格依据《中华人民共和国民法典》及相关司法解释回答。
回答时需引用具体法条编号。
如果法条有争议,请说明主流观点和少数观点。
为什么要每轮都加?因为多轮对话中,模型可能会「漂移」。它聊着聊着就忘了自己是律师,开始用普通人的口吻说话。我曾经吃过这个亏——让模型分析一份股权转让协议,前三轮回答都很专业,第四轮突然冒出一句「这个条款有点坑,建议改掉」——完全没有法律依据。
从那以后,我养成了一个习惯:
- 每轮对话开头,重复一次语境描述(可以简写)
- 关键术语用「」括起来,比如「不可抗力」「情势变更」
- 明确要求引用法条,而不是「根据相关法律规定」这种模糊表述
小技巧:把语境描述做成一个「系统提示词」,放在对话的最前面。这样模型从一开始就进入角色,不容易跑偏。
长文本分段处理:别让模型「一口气读完」
法律文本有多长?一份尽职调查报告可能上百页,一份判决书可能几万字。模型有上下文窗口限制,你不可能一次性全塞进去。
怎么办?分段处理。
我常用的方法是「三段式」:
- 拆段:按章节、条款或自然段落切分。每段控制在2000字以内。
- 摘要:让模型对每段生成摘要,保留关键信息。
- 合并:把所有摘要拼接起来,再让模型做整体分析。
举个例子,我之前处理一份50页的《股权转让协议》:
第一轮:请阅读以下第1-5页内容,提取关键条款:
[粘贴第1-5页]
第二轮:请阅读以下第6-10页内容,提取关键条款:
[粘贴第6-10页]
...(重复)
最后一轮:基于以上所有摘要,请分析这份协议中:
1. 对甲方最有利的条款
2. 对乙方最有利的条款
3. 存在法律风险的条款
4. 建议修改的条款
这样做的好处是:每段信息量可控,模型不会因为信息过载而「胡言乱语」。坏处是:会消耗更多token。但比起得到一个错误的分析,这点成本值得。
注意:分段时不要破坏法律条款的完整性。比如一条完整的「违约责任」条款,即使很长,也不要拆到两段里。否则模型可能理解错上下文。
知识体系图:上下文管理的核心逻辑
下面这张图,是我自己总结的上下文管理决策流程。你可以参考一下:
实战中的几个坑
最后分享几个我踩过的坑:
- 别让模型「猜」法条:如果分段后某段没有法条引用,模型可能会自己编一个。我建议在提示词里明确写「如果该段没有明确法条,请标注『未引用具体法条』」。
- 注意token消耗:多轮对话+长文本分段,token消耗会翻倍。我一般会在本地先做预处理,把无关内容(比如页眉页脚、目录)删掉再喂给模型。
- 语境不要变:一旦设定好法律语境,不要在对话中途切换。比如一开始说「你是原告律师」,中途改成「你是法官」——模型会混乱。
我的习惯:每次开始新任务前,先花30秒想清楚——这次对话需要几轮?文本需要分几段?语境锚点怎么写?想清楚了再动手,效率反而更高。
好了,上下文管理这块就聊到这儿。说白了就是三件事:选对模式、建好语境、切好文本。你试试看,效果会很不一样。