核心原则
提示词应要求引用 chunk ID,并在证据不足时明确说明不能确认。
上下文压缩应在召回和重排之后进行,避免过早删掉关键证据。
查询改写适合含糊问题,但必须监控是否偏离原始意图。
工具调用要用 schema、权限校验和确认步骤约束,模型不应直接执行高风险动作。
生成结果应做引用覆盖和事实一致性检查,失败时返回澄清或拒答。
方法对比
| 方法 | 延迟 | 成本 | 最适合 |
|---|---|---|---|
| 普通 grounded prompt | 快 | 低 | 直接问答 |
| 上下文压缩 | 中 | 中 | 长上下文候选 |
| HyDE | 中 | 中 | 短查询、弱词汇 |
| Self-RAG / CRAG | 慢 | 高 | 高风险答案校验 |
大厂与框架实践
Anthropic 风格 RAG 常把证据放在问题前,并要求证据不足时拒答。
OpenAI Responses 和 Assistants 工作流会把检索、工具和引用合在一次交互中。
LangChain 与 LlamaIndex 提供查询改写、压缩和 evaluator loop。
运维助手可先用工具查询实时状态,再用 RAG 解释处置手册。
金融合规助手应把“证据”和“建议”分栏,避免把推断伪装成规则。
关键论文与参考
HyDE,Gao 等,2023
Self-RAG,Asai 等,2023
CRAG,Yan 等,2024
ReAct,Yao 等,2023
Toolformer,Schick 等,2023
深度讲解
生成提示词可以加入硬性引用格式:answer each claim with [chunk_id]。随后做 coverage = cited_claims / total_claims,若 coverage < 0.8 就触发重试或拒答。HyDE 的思想是先生成一个假想答案向量再检索,适合用户只问“怎么处理报错”这类短问题,但在合规场景要防止假想答案带偏召回。工具调用建议使用 JSON schema,例如 {action:'refund_status', order_id:'string'},后端再验证权限和参数。
最佳实践
每个关键结论必须引用 chunk ID。
工具动作默认需要后端校验和超时。
证据不足时优先澄清,不要编造补全。