三步精炼 Prompt 体系
Three-Step Refining Prompt System
题材识别 → 零遗漏整理 → 精炼笔记。长文本不丢信息的工程解法。
一小时视频,转写后是 1.5 万字。让 LLM 单轮总结 → 一过就丢一半信息。
不是 prompt 写得不够好。是单轮调用做"长文本压缩"时,模型只能抽主干、必然丢副线。
解法不是更聪明的 prompt,是把压缩这件事拆成多个有明确契约的步骤。
为什么需要这个方法
LLM 处理 1 万字以上的文本时,会有两类典型失败:
- 超 token 限制 —— 直接报错
- 能塞进去但模型不读 —— 注意力集中在开头结尾,中间内容被悄悄省略
第二类更危险——它不报错,但悄悄丢信息。你拿到一份看起来很流畅的总结,但其中讲者真正有价值的判断、对比、反例都不见了。
我做 /works/video-scribe 时第一版就吃了这个坑——v0.2 用单轮 AI 总结,看起来很丝滑,但实际丢了 50% 以上的高信号内容。
判断核心问题之后的解法:承认单轮调用的能力上限,把"长文本压缩"拆成多个有明确契约的步骤。每步只解一类问题,每步的输入输出都是明确文本,每步可以独立测试、独立迭代、独立降级。
核心拆解 · 四个 Step + 一条铁律
基础三步(普通长度内容)
| 步骤 | 做什么 | 输入 | 输出 | 设计意图 | |---|---|---|---|---| | Step 1 · 题材识别 | 判断内容类型 / 密度 / 视角 / 价值评星 / 路径建议 | 转写原文 | 8 字段结构化判定 | 后续步骤的"路径地图" | | Step 2 · 零遗漏整理 | 按口语 / 书面专用规则清洗原文,不丢信息 | 转写原文 + Step 1 判定 | 结构化清洁文本 | "完整保留" 阶段 | | Step 2.5 · 压缩摘要 | 段内压缩 30-40%,让全局精炼装得下整篇骨架 | Step 2 输出 | 紧凑过渡稿 | "降密度" 阶段 | | Step 3 · 精炼笔记 | 按视角生成核心观点 + 方法论 + 行动清单 + 个人批注 | Step 2 输出 | 可直接使用的笔记 | "提观点" 阶段 |
一条铁律 · 每步必须有明确的输入输出契约
这条铁律是整个体系的灵魂。每个 Step 的输入输出都是明确的、可序列化的文本格式,不是"模糊地把上一步喂给下一步"。具体来说:
- 每个 Step 有独立的 prompt 文件
- 每个 Step 的输出有结构化字段(不是自由叙述)
- 每个 Step 可以单独测试,单独迭代
- 每个 Step 可以独立降级——Step 3 失败时,Step 2 的产物就是用户能直接用的最终结果
失败降级链:
Step 3 失败 → 输出 Step 2 的零遗漏整理(已经很有用)
Step 2 失败 → 输出 Step 1 的题材判定 + 原始转写
任何一步成功 → 用户都拿到能用的产物
单点失败不导致全链路崩溃,这是契约式拆分相对单轮调用的最大优势。
升级 · 四路径智能分发(超长内容)
基础三步在不同长度内容上表现差异巨大——10 分钟视频走三步浪费,2 小时视频走三步装不下。video-scribe v0.7 升级为四路径智能分发:Step 1 在题材识别时就给出路径建议,分到 4 条不同流程。
Step 1 判定
│
┌────────────┬───────┴────────┬───────────────┐
▼ ▼ ▼ ▼
极短直通 单批 / 分批 超长流程
(< 800 字) (正常长度) (> 1.5 万字)
│ │ │
Step 3 Step 2 → Step 3 Step 0(骨架)
↓
Step 2 分批
↓
Step 4 批次精炼
↓
Step 5 全局精炼
↓
工作流复盘
底层契约思想不变,只是 Step 0 / Step 4 / Step 5 三个新步骤让超长流程也能保持"每步契约"。
在哪里用过
主要实现 · /works/video-scribe
- v0.3 引入基础三步管线,把单轮总结的"丢信息"问题从 50% 降到可接受范围
- v0.7 升级为四路径分发 + Step 0/4/5,覆盖从 5 分钟短视频到 2 小时长访谈的全部场景
- 工程实现:~3000 行 Python,31 个单元测试,核心模块 100% 覆盖,Prompt 与调用逻辑模块化分离(
core/prompts.py独立)
工程化护栏 · promptfoo 回归测试集
每个 Step 都接入了 promptfoo 回归测试,Step 1 题材识别先建了 13 条真实样本的基线数据集。每次改 prompt 5 秒看完所有 case 的对比结果。这是把"凭直觉迭代 prompt"换成"有数据反馈地迭代 prompt"——也只有契约化的 Step 拆分让这件事变得可能(单轮调用没法做单元测试)。
可迁移到的场景
这个方法的应用边界比 video-scribe 大得多——任何"长文本压缩 + 视角化输出"的场景都可以套:
- 会议长录音 → 结构化纪要
- 长研报 / 行业白皮书 → 关键判断提取
- 客服工单批量整理 → 高频问题归类
- 多轮访谈 → 受访者观点拼图
边界 · 什么时候不要用
一、不适合短文本(< 800 字)。
短文本本身就能让 LLM "一口吃完",强行拆 3 步是给自己加成本——这也是为什么 v0.7 加了"极短直通"路径,让 Step 1 判定后直接跳到 Step 3。拆分的前提是"单轮装不下",没这个前提就不要拆。
二、不适合实时对话 / 交互式场景。
三步精炼是离线管线,跑完需要几十秒到几分钟。需要 < 1 秒响应的对话场景(客服 bot、即时翻译),该用单轮 + 流式输出,不该套这套结构。
三、不适合需要"原文逐字保留"的场景。
法律文书、医疗记录、合规审计——这些场景需要原文逐字可追溯。三步精炼到 Step 3 已经是"观点化的笔记",原文形态丢失。这类场景应该停在 Step 2(零遗漏整理)的产物,把 Step 3 关掉。或者说:这个方法的下界是 Step 2,能力上界是 Step 3,再往上的"个人化批注"必须人工。
核心提醒:三步不是越多越好。三步是"够用的最少步数",每多一步都要问"它解决了上一步解不了的什么具体问题"。如果回答不出来,就该砍掉那一步。