提示词教程
上下文窗口管理与长文本处理策略:让AI在有限Token中发挥最大效能
发布时间:2026年08月19日 18:00:00掌握上下文窗口管理与长文本处理策略:理解Token限制对输出的影响、设计上下文压缩与分段处理方案、构建滑动窗口和摘要链、管理多轮对话的上下文膨胀、在有限Token中保持输出质量,解决AI处理长文本时的核心瓶颈。
学习目标
完成本教程后,你将能够:
- 理解Token限制的影响:上下文窗口如何约束AI能力
- 设计压缩策略:在有限Token中保留最大信息量
- 构建分段处理流程:将长文本拆分为可处理的片段
- 管理多轮对话上下文:防止上下文膨胀导致质量下降
- 实现滑动窗口与摘要链:在长对话中保持连贯性
一、理解上下文窗口
上下文窗口的基本概念
输入Token + 生成Token ≤ 上下文窗口上限
例如:128K上下文窗口
- 输入:120K Token
- 生成:8K Token
上下文窗口对输出的影响
| 场景 | 问题 | 表现 |
|---|---|---|
| 输入过长 | 超出窗口限制 | 截断或报错 |
| 输入接近上限 | 生成空间不足 | 回答被截断 |
| 多轮对话累积 | 上下文膨胀 | 早期信息遗忘 |
| 长文档处理 | 无法一次输入 | 需要分段处理 |
| RAG检索过多 | 检索结果过长 | 关键信息被稀释 |
各模型上下文窗口对比
| 模型 | 上下文窗口 | 适用场景 |
|---|---|---|
| GPT-5.6 | 128K-200K | 通用 |
| Claude Opus 5 | 200K-500K | 长文档 |
| Gemini 3.7 | 1M-2M | 超长文本 |
| DeepSeek V4 | 128K | 通用 |
二、上下文压缩策略
策略1:摘要压缩
## 摘要压缩提示词
将以下内容压缩为摘要,保留关键信息:
### 压缩规则
1. 保留所有数据、数字和事实
2. 保留关键结论和决策
3. 删除重复和冗余信息
4. 删除过渡和客套语
5. 使用列表和表格压缩格式
### 压缩比例
- 目标:压缩至原文的30%以下
- 保留信息完整度:>90%
### 原文
{待压缩的长文本}
### 输出
1. 压缩后的摘要
2. 保留的信息点列表
3. 删除的信息点列表
策略2:关键信息提取
## 关键信息提取提示词
从以下内容中提取后续步骤需要的关键信息:
### 提取维度
1. 核心结论:{列出主要结论}
2. 关键数据:{提取所有数字和数据}
3. 决策点:{列出需要决策的项}
4. 待办事项:{提取行动项}
5. 风险点:{提取风险提示}
### 原文
{长文本}
### 输出格式
{
"conclusions": ["结论1", "结论2"],
"data": {"指标1": "数值1", "指标2": "数值2"},
"decisions": ["决策1", "决策2"],
"actions": [{"task": "任务", "owner": "负责人", "deadline": "期限"}],
"risks": ["风险1", "风险2"]
}
### 约束
- 仅提取信息,不做判断或推理
- 保留原文的准确性,不修改数据
- 如信息不明确,标注"未明确"
策略3:分层压缩
## 分层压缩提示词
将以下内容按三个层次压缩:
### 第一层:超摘要(1-2句话)
{整个内容的核心要点}
### 第二层:结构摘要(5-8个要点)
{按主题组织的要点列表}
### 第三层:详细摘要(保留关键细节)
{包含数据和论证的摘要}
### 原文
{长文本}
### 使用方式
- Token极度紧张时:注入第一层
- Token较紧张时:注入第二层
- Token充足时:注入第三层
三、长文本分段处理
分段处理架构
长文档 → 分段 → 逐段处理 → 合并结果 → 最终输出
分段策略提示词
## 长文本分段处理
### 第一步:分段规划
分析以下文档,规划分段策略:
文档长度:{总字数/Token数}
上下文窗口:{可用Token数}
分段规则:
1. 每段不超过上下文窗口的60%
2. 段落边界应在自然段落或章节处
3. 相邻段保留10%的重叠区域
4. 记录每段的起始和结束位置
输出分段方案:
| 段号 | 起始位置 | 结束位置 | 预计Token | 重叠区 |
### 第二步:逐段处理
对以下第{N}段内容进行处理:
{当前段落文本}
前序摘要(如有):
{前一段的摘要}
处理任务:{具体任务}
约束:
- 基于当前段落和前序摘要处理
- 如需要后续段信息,标注"待后续段补充"
- 输出当前段的处理结果和摘要
### 第三步:结果合并
合并以下各段处理结果:
{所有段的处理结果}
合并规则:
1. 合并重复信息
2. 解决矛盾(以原文为准)
3. 补充"待后续段补充"的信息
4. 生成连贯的最终输出
分段处理示例:长报告分析
### 场景:分析100页年度报告
#### 分段方案
| 段号 | 章节 | 页数 | 预计Token |
|------|------|------|-----------|
| 1 | 执行摘要 | 1-5 | 3K |
| 2 | 业务概览 | 6-20 | 8K |
| 3 | 财务分析 | 21-40 | 10K |
| 4 | 风险因素 | 41-60 | 8K |
| 5 | 管理讨论 | 61-80 | 8K |
| 6 | 附录 | 81-100 | 8K |
#### 逐段处理流程
段1 → 提取核心数据和结论 → 摘要A
段2 → 基于摘要A分析业务 → 摘要B
段3 → 基于摘要A+B分析财务 → 摘要C
段4 → 基于摘要A+B+C分析风险 → 摘要D
段5 → 基于摘要A+B+C+D分析管理 → 摘要E
段6 → 补充数据
#### 最终合并
基于摘要A-E生成完整分析报告
四、滑动窗口管理
滑动窗口概念
对话轮次1:[消息1] [消息2] [消息3]
对话轮次2:[消息2] [消息3] [消息4] ← 消息1被压缩或丢弃
对话轮次3:[消息3] [消息4] [消息5] ← 消息2被压缩或丢弃
滑动窗口提示词
## 滑动窗口对话管理
### 窗口配置
- 窗口大小:{保留的最近N轮对话}
- 压缩触发:当对话轮数超过窗口大小时
- 压缩方式:将最旧的一轮压缩为摘要
### 压缩提示词
将以下对话轮次压缩为摘要,保留后续对话需要的关键信息:
对话内容:
{待压缩的对话}
保留信息:
1. 用户的核心需求
2. 已确定的决策和结论
3. 已完成的工作
4. 待完成的任务
5. 关键数据和参数
输出摘要(不超过200字)
### 上下文注入格式
当前对话上下文:
1. 历史摘要:{早期对话的压缩摘要}
2. 近期对话:{最近N轮的完整对话}
3. 当前问题:{用户的最新消息}
多级窗口设计
## 多级窗口架构
### Level 1:即时窗口(最近3轮)
- 保留完整对话内容
- 包含最新的上下文和指令
### Level 2:近期窗口(第4-10轮)
- 压缩为要点摘要
- 每轮保留2-3个关键点
### Level 3:历史窗口(第11轮以前)
- 压缩为主题摘要
- 按主题分类保留关键信息
### 上下文注入模板
你正在与用户进行多轮对话。以下是上下文信息:
## 历史主题摘要
{Level 3的摘要}
## 近期要点
{Level 2的摘要}
## 最近对话
{Level 1的完整对话}
## 用户最新消息
{当前消息}
请基于以上上下文回应用户。
五、多轮对话上下文管理
上下文膨胀问题
| 对话轮数 | 上下文大小 | 问题 |
|---|---|---|
| 1-5轮 | 较小 | 无问题 |
| 6-15轮 | 中等 | 可能有轻微遗忘 |
| 16-30轮 | 较大 | 早期信息遗忘 |
| 30轮+ | 很大 | 严重遗忘+质量下降 |
上下文管理提示词
## 多轮对话上下文管理
### 对话状态追踪
在每轮对话后,更新以下状态:
{
"conversation_id": "对话ID",
"turn_count": 当前轮数,
"user_goal": "用户核心目标",
"established_facts": [
"已确认的事实1",
"已确认的事实2"
],
"decisions_made": [
"已做的决策1"
],
"pending_questions": [
"待解决的问题1"
],
"context_summary": "最近5轮的摘要",
"token_estimate": 当前上下文Token估算
}
### 上下文注入策略
当token_estimate超过阈值时:
1. 将established_facts和decisions_made保留
2. 将早期对话压缩为context_summary
3. 仅保留最近5轮完整对话
4. 在回复开头注入状态摘要
### 状态注入提示词
你正在与用户进行多轮对话。当前对话状态:
- 用户目标:{user_goal}
- 已确认事实:{established_facts}
- 已做决策:{decisions_made}
- 待解决问题:{pending_questions}
- 最近对话摘要:{context_summary}
用户最新消息:{当前消息}
请基于以上状态回应用户,确保:
1. 不与已确认事实矛盾
2. 基于已做决策继续推进
3. 解决待解决问题
六、RAG中的上下文管理
RAG上下文优化
## RAG上下文优化提示词
### 检索结果处理
对以下检索结果进行处理,优化上下文使用:
#### 原始检索结果
{检索到的文档片段列表,可能很长}
#### 处理规则
1. 去重:删除内容重复的片段
2. 排序:按相关性从高到低排序
3. 压缩:每段压缩为关键信息
4. 截断:仅保留Top K段(K根据Token预算决定)
5. 标注:为每段标注来源和相关性
#### 输出格式
| 序号 | 来源 | 相关性 | 压缩内容 | 原始Token | 压缩Token |
#### 最终上下文
{处理后的检索结果,控制在Token预算内}
### 回答生成
基于以下优化后的上下文回答问题:
上下文:
{处理后的检索结果}
问题:{用户问题}
要求:
1. 仅基于上下文回答
2. 标注信息来源
3. 如上下文不足以回答,明确说明
4. 优先使用高相关性片段
总结
上下文窗口管理的核心要点:
- Token是稀缺资源:每个Token都要有信息价值
- 压缩是核心技能:摘要、提取和分层压缩三管齐下
- 分段处理长文本:拆分→逐段处理→合并结果
- 滑动窗口管多轮:近期完整+历史压缩
- 状态追踪保连贯:对话状态防止信息遗忘
- RAG需要优化:检索不是越多越好,关键是相关性
来源:综合自上下文窗口管理实践及长文本处理方法论