检索与生成的"分工"要写下来
RAG 系统里最常见的一类扯皮 ✗:答案错了,检索团队说"片段给对了,是模型没用好" ✗,
生成团队说"片段里没有关键信息,模型当然答不出" ✗。**没有分工契约,就无法归因** ✔。
**把分工写成契约** ✔:谁负责什么、交付什么格式、失败时算谁的问题 ✔。
一、检索侧的三项承诺
1. **召回承诺**:该命中的片段必须进候选集(用召回率指标约束 ✔);
2. **排序承诺**:正确片段进入**前 K**(用命中位次/MRR 约束 ✔);
3. **交付格式承诺**:每个片段带**来源、时间、原文片段、块 id** ✔(生成侧要用来引用 ✔)。
**交付格式很关键** ✗:如果检索只给一段裸文本 ✔,生成侧无法引用、无法判断时效 ✔(见片段预处理那篇 ✔)。
二、生成侧的三项承诺
1. **只用给定片段**(不允许引入未提供的事实 ✔);
2. **标注引用**(每条结论对应片段 id ✔);
3. **资料不足时明确说明**(不编 ✔,见拒答那篇 ✔)。
三、失败归因规则(写下来就不吵了)
| 现象 | 归因 | 先改哪边 |
|---|---|---|
| 正确片段没进候选集 | 检索(召回 ✔) | 切分/解析/索引 ✔ |
| 正确片段进了但排太后 | 检索(排序 ✔) | 排序信号/去重 ✔ |
| 片段对但答案错 | 生成 ✔ | 提示词/示例/引用要求 ✔ |
| 答案对但没引用 | 生成 ✔ | 引用格式与校验 ✔ |
| 片段不足却给答案 | 生成 ✔(应拒答 ✔) | 拒答标准与判据 ✔ |
| 片段互相矛盾 | **两边** ✔ | 检索加时效/权威信号 + 生成说明冲突 ✔ |
**关键**:这张表要**事先定好** ✔,并在复盘时直接引用 ✔ —— 否则每次都要重新吵一遍 ✗。
四、怎么验证契约在生效
五、两个常见反模式
一条判据
> 拿一个错误答案 ✔,能否**在 10 分钟内**按既定规则说出"该改哪一侧" ✔?
> 不能,说明分工契约还没写清 ✗。