# RAG Retrieval Improvement Ideas > 记录日期: 2026-02-07 > 当前状态: RAG方法成功率52.2%,超时率41.4%,E/T 0.193 > 目标: 降低超时率至接近Reflection的25.9% ## 与Reflection Baseline的差距分析 | 指标 | RAG (topk5) | Reflection | 差距 | |------|-------------|------------|------| | 成功率 | 52.2% | 45.2% | +7.0% ✓ 领先 | | 超时率 | 41.4% | 25.9% | +15.5% ✗ 落后 | | E/T | 0.193 | 0.162 | +0.031 ✗ 落后 | **核心问题**: 超时率高,agent未能在max_turns内满足用户偏好 --- ## A. 检索质量优化 (Retrieval) ### A1. Query Expansion ✅ 已实现 - **状态**: 已实现,enable_query_transform=True - **当前方案**: 检测任务类型(math/coding/writing/explanation),添加前缀 "user preferences for {type} tasks" - **Bug修复**: 2026-02-07 修复了词边界匹配问题("api"误匹配"capital") - **待验证**: 需要实验验证效果 ### A2. Preference Embedding优化 - **问题**: 当前直接embed "When X, do Y" 格式的完整句子 - **改进方案**: - 同时embed多个变体: action-only, condition-only, paraphrased - 存储时创建多个embedding,检索时取最高分 - **实现难度**: 中 - **预期收益**: 提高检索召回率 ### A3. 动态TopK - **问题**: 固定topk可能过多(引入噪声)或过少(遗漏重要偏好) - **实验结果**: - topk=3: 成功率42.2%, 超时率57.7% ❌ 更差 - topk=5: 成功率52.2%, 超时率41.4% (基线) - topk=8: 实验中... - **改进方案**: 基于rerank分数动态决定 - 如果top-1分数 > 0.8,只取top-3 - 如果top-1分数 < 0.5,取top-8 - **实现难度**: 低 - **预期收益**: 中 ### A4. Negative Filtering - **问题**: reranker可能给不相关偏好较高分数 - **改进方案**: - 添加分数阈值,过滤低于阈值的偏好 - 或训练一个二分类器判断相关性 - **实现难度**: 低-中 - **预期收益**: 减少噪声干扰 --- ## B. Prompt Engineering ### B1. 偏好优先级标注 ⭐ 高优先级 - **问题**: 所有偏好平等列出,模型不知道哪个更相关 - **改进方案**: ``` ## Highly Relevant Preferences (rerank > 0.7) - [preference 1] - [preference 2] ## Possibly Relevant Preferences - [preference 3] ``` - **实现难度**: 低(只改prompt构建逻辑) - **预期收益**: 中-高 ### B2. 偏好分类呈现 - **问题**: 混合不同类型的偏好可能造成混淆 - **改进方案**: ``` ## Format Preferences - Use bullet points - Include code blocks with language ## Content Preferences - Show step-by-step derivation - Provide examples ``` - **实现难度**: 中(需要偏好分类器) - **预期收益**: 中 ### B3. 显式推理步骤 ⭐ 高优先级 - **Reflection的优势**: 强制模型输出 `user_preferences_reasoning` 字段 - **改进方案**: ``` Before responding, briefly consider: 1. Which of the above preferences are relevant to this request? 2. How will you satisfy each relevant preference? Then provide your response. ``` - **实现难度**: 低(只改prompt) - **预期收益**: 高 ### B4. 偏好Checklist验证 ⭐ 高优先级 - **问题**: 模型可能忘记某些偏好 - **改进方案**: ``` # Response Checklist Before finalizing your response, verify: □ [preference 1 - brief description] □ [preference 2 - brief description] ``` - **实现难度**: 低 - **预期收益**: 中-高 ### B5. Few-shot示例 - **改进方案**: 在prompt中添加一个"正确遵循偏好"的示例 - **实现难度**: 低 - **预期收益**: 中 - **风险**: 增加context长度 --- ## C. 偏好提取优化 (Extraction) ### C1. 更细粒度的偏好 - **问题**: 当前偏好可能太粗略 "When coding, use Python" - **改进方案**: 分解为多个具体偏好 - 编程语言: Python - 代码格式: 单个可复制块 - 注释风格: 内联注释 - **实现难度**: 中(需要改extractor prompt) - **预期收益**: 提高检索精度 ### C2. 偏好置信度利用 - **问题**: 低置信度偏好可能是噪声 - **改进方案**: - 存储时记录置信度 - 检索时作为额外权重 - **实现难度**: 低 - **预期收益**: 低-中 ### C3. 冲突检测 - **问题**: 用户可能有矛盾的偏好(如"简洁" vs "详细") - **改进方案**: - 检测语义矛盾 - 保留更新的偏好 - 或在prompt中明确指出冲突 - **实现难度**: 高 - **预期收益**: 中 --- ## D. 反馈循环优化 (Feedback Loop) ### D1. 违规偏好标记 - **问题**: 不知道哪个偏好导致用户enforce - **改进方案**: - 当用户enforce时,用小模型分析是哪个偏好被违反 - 下次检索时boost该偏好权重 - **实现难度**: 中-高 - **预期收益**: 高 ### D2. 会话内Correction记忆 ⭐ 中优先级 - **问题**: 同一session内用户的correction可能被忽略 - **改进方案**: - 记录用户的每次correction - 在后续turn中作为高优先级偏好 - 临时存储,session结束后清除 - **实现难度**: 中 - **预期收益**: 中-高 ### D3. 偏好验证 (Self-Critique) - **问题**: 模型可能生成不符合偏好的响应 - **改进方案**: - 生成后用小模型/规则检查是否符合偏好 - 不符合则重新生成或修正 - **实现难度**: 高 - **预期收益**: 高 - **风险**: 增加延迟 --- ## E. 架构改进 ### E1. 两阶段生成 - **方案**: 1. 阶段1: 生成内容大纲/要点 2. 阶段2: 根据偏好润色格式 - **实现难度**: 高 - **预期收益**: 未知 ### E2. 混合方法 (Reflection + RAG) - **方案**: - 使用Reflection的session-end notes作为长期记忆 - 使用RAG检索相关偏好作为短期记忆 - 两者结合注入prompt - **实现难度**: 高 - **预期收益**: 未知(可能是最优解) --- ## 实验记录 ### 已完成实验 | 实验名 | 配置 | 成功率 | 超时率 | E/T | 备注 | |--------|------|--------|--------|-----|------| | rag_prompt_priority | topk=5, prompt改进 | 52.2% | 41.4% | 0.193 | 基线 | | rag_topk3_test | topk=3 | 42.2% | 57.7% | 0.191 | ❌ 更差 | ### 进行中实验 | 实验名 | 配置 | 状态 | |--------|------|------| | rag_topk8_test | topk=8 | 运行中 | --- ## 快速实验建议 按实现难度和预期收益排序: 1. **[B3] 显式推理步骤** - 只改prompt,高收益 2. **[B4] 偏好Checklist** - 只改prompt,中-高收益 3. **[B1] 偏好优先级标注** - 小改动,中-高收益 4. **[D2] 会话内correction记忆** - 中等改动,中-高收益 5. **[A3] 动态TopK** - 小改动,中收益 --- ## 参考: Reflection vs RAG 对比 | 特性 | Reflection | RAG (我们的) | |------|------------|-------------| | 偏好呈现 | 自然语言notes | 结构化bullet list | | 推理步骤 | ✓ 显式 user_preferences_reasoning | ✗ 无 | | 输出格式 | JSON with reasoning | 纯文本 | | 反馈循环 | session-end reflection | 实时extraction | | 检索方式 | LLM-based (proper_scaffolding) | Dense + Rerank | **关键差异**: Reflection强制模型在响应前显式推理如何满足偏好