外观
项目深度扩展方向
本文档记录 DocMind 项目的战略性扩展方向,目标是从"功能完整的 RAG 系统"提升为"具备技术深度和工程纵深的企业级 Agentic 平台"。
与 06-待优化清单.md 的区别:06 聚焦小步快跑的迭代项,07 关注架构级演进和面试区分度。
一、检索与排序层——从"能用"到"精准"
1. Query-Aware Adaptive Retrieval(查询感知自适应检索) → 已实现 ✅(2026-04-28)
演化说明:原方案计划引入 LLM few-shot 或 fasttext 模型做 query classifier。落地时发现纯规则足够——Complexity(SIMPLE/MODERATE/COMPLEX)× Specificity(PRECISE/BROAD)二维矩阵 + REALTIME/FOLLOWUP 两个独立策略,共 8 套参数预设,覆盖全部常见查询类型。
最终实现:QueryProfiler 纯规则引擎(<1ms),输出查询级别的 RetrievalParams(vectorTopK / bm25TopK / rrfK / vectorWeight / bm25Weight / contextMaxTokens 等),注入到 LLM 驱动检索的系统提示词 + RRF 加权融合 + 降级路径。详见 04-优化迭代记录.md #5。
为什么没用 LLM/模型而是纯规则:
- 零额外延迟和成本(不调 LLM、不需要部署 fasttext)
- 意图分类已有
QueryRouter做了,不需要重复分类 - 规则覆盖度够用(8 套预设 × 热配开关),不需要学习型分类器
- 通过
rag.adaptive.enabled数据库开关可运行时关闭,回退到原全局参数
2. 基于 ColBERT 的 Late Interaction Reranking
现状:Cross-Encoder 重排是单次打分,token 级交互信息损失大。
扩展方案:在 Cross-Encoder 之前加一层 ColBERT 风格的 late interaction 预筛,做 MaxSim 粗排后再给 Cross-Encoder 精排。这对长文档尤其有效——chunk 数量大时能将 reranker 的输入从几百条压缩到几十条。
面试亮点:体现对不同 reranking 范式(point-wise / late interaction / cross-attention)的 trade-off 理解。
3. Chunk 级别的知识图谱增强(GraphRAG)
现状:chunk 之间是扁平的,没有结构化关系。
扩展方案:
- 文档入库时用 LLM 抽取 chunk 间的关系(引用、因果、层级)
- 构建一个轻量 chunk-level knowledge graph(存在 MySQL 或 Neo4j)
- 检索时不仅返回匹配 chunk,还沿图谱返回上下文关联 chunk
这对"跨章节推理"类问题效果显著。
面试亮点:GraphRAG 是当下最前沿的 RAG 增强方向。
二、Agent 层——从单轮 ReAct 到复杂推理
4. Multi-Step Planning with Decomposition(多步规划与任务分解) → 两阶段落地 ✅
第一阶段(Phase 1, 2026-04-28):Query Decomposition——把复杂查询拆成同构子问题并行检索。详见 04-优化迭代记录.md #4。
第二阶段(Phase 2, 2026-05-05):Supervisor-Worker + Plan-and-Execute——对 COMPLEX 查询由 LLM 生成有依赖关系的异构多步计划,PlanExecutor 按拓扑分层并行执行。详见 04-优化迭代记录.md #13。
最终形态:两者共存互补——
- Query Decomposition 解决"多焦点"问题(子任务同构、并行、无依赖)
- Plan-and-Execute 解决"多步推理"问题(子任务异构、有依赖、需拓扑排序)
- SupervisorAgent 根据 QueryClassification 自动选择路径
5. Tool Use Observability + 自动熔断 → 部分实现 ✅(2026-05-05)
已实现部分(Phase 2 ObservationEvaluator):
- 每轮迭代后自动评估 Worker 输出质量(空召回、低分、冲突检测)
- 质量不达标时自动切换策略(降级链:SWITCH_TO_WEB → TRIGGER_HYDE → INVOKE_ANALYSIS)
- IterationDecider 检测置信度停滞,主动终止无效循环
未实现部分(仍可作为扩展方向):
- 给每个 tool call 记录 latency、token cost、result quality score(LLM 自评)
- 连续 N 次超时的硬熔断(circuit breaker)
- MCP Console 页面展示工具健康度热力图
面试亮点:微服务级别的可观测性思维应用到 AI Agent 领域。
6. 对话级 Memory 升级:Episodic + Semantic 双层记忆
现状:Redis 存 key-value 记忆,30 天 TTL,比较粗粒度。
扩展方案:
- Episodic Memory(情景记忆):存储完整对话片段 + 时间戳 + 情绪标签,用 vector search 做相似情景召回
- Semantic Memory(语义记忆):从多轮对话中提炼持久化的用户偏好和知识图谱节点
- Memory Consolidation:类似人类"睡眠整理记忆",定时将 episodic 提炼为 semantic
面试亮点:MemGPT / Letta 级别的记忆架构思路。
三、系统工程层——从"能跑"到"可量化、可演进"
7. 离线评估体系(RAG Evaluation Pipeline) → 已实现 ✅(2026-05-02)
已实现:52 条 × 4 档对照(V1 朴素 → V2 RRF → V3 重排 → V4 反思重写),覆盖 7 类查询,产出 Recall@5 / MRR / 忠实度 / 相关性等指标。详见 09-评测体系建设.md 和 10-评测结果与发现.md。
仍可扩展:
- LLM 自动生成 QA pairs(当前是人工标注)
- 参数变更后自动触发 eval + 结果存库 + Dashboard 趋势图
- V5 对照档(+Query Decomposition)
8. A/B 实验框架
现状:sys_ai_config 支持热更新,但只有全局一套配置。
扩展方案:
- 支持按用户/按对话分配不同的 RAG 策略(reranker 阈值、chunk size、prompt 模板)
- 记录每组的质量指标,做统计显著性检验
- 与第 7 点的评估体系联动
面试亮点:展示数据驱动优化的工程素养,不只是"调参靠感觉"。
9. 文档变更感知与增量索引
现状:文档入库是一次性的全量处理。
扩展方案:
- 支持文档版本管理(同一文档多版本,保留历史)
- 文档更新时只对 diff 部分重新 chunk + embedding,复用未变更 chunk 的向量
- 引入 chunk fingerprint(内容 hash),精确判断哪些 chunk 需要更新
- 下游检索结果标注"来源版本"
面试亮点:解决生产环境中"知识库持续更新"的真实痛点。
四、前端与交互层——从"功能页面"到"专业产品"
10. Agent 推理过程可视化 → 已实现 ✅(Phase 6, 2026-05-09)
已实现:Phase 6 前端思考时间线——SSE 事件驱动的 11 步时间线组件(scope → understand → rewrite → routing → plan → retrieval → grader → rerank → warning → reflection → generating),实时展示每步状态,完成后自动折叠为一行摘要。三色路由/评分徽章,检索日志弹窗。详见 04-优化迭代记录.md #20。
仍可扩展:
- 用 D3.js 绘制 DAG 图(当前是线性时间线)
- 点击 chunk 节点查看 rerank 分数变化
11. 语音交互完善(已有 WebSocket 基础)
现状:SpeechWebSocketServer 已经有语音识别代理的骨架。
扩展方案:完整的语音对话闭环——STT → Agent → TTS streaming,支持打断(interrupt),前端做音频波形可视化。
面试亮点:多模态交互能力,体现完整产品思维。
推荐优先级
按投入产出比排序:
| 优先级 | 方向 | 理由 |
|---|---|---|
| 52 条 × 4 档对照已落地(09/10) | ||
| Phase 6 思考时间线已落地(04 #20) | ||
| 两阶段全部落地(04 #4 + 04 #13) | ||
| P1 | #3 Chunk 知识图谱 | GraphRAG 是热点话题,面试区分度高 |
| P2 | #9 增量索引 | 工程成熟度的体现 |
| ObservationEvaluator 已实现质量感知降级,硬熔断待补 | ||
| P2 | #6 双层记忆 | 概念前沿,但实现复杂度高 |
| 已落地(纯规则 QueryProfiler + RRF 加权,详见 04 #5) | ||
| P3 | #2 ColBERT 重排 | 需要额外模型部署成本 |
| P3 | #8 A/B 框架 | 依赖 #7 先建立 |
| P3 | #11 语音交互 | 完善型功能,非核心差异点 |
12. CRAG 更细粒度策略(per-chunk 评分)
现状:RetrievalGrader 用全局 topScore 判定三档,但混合检索可能出现"top-1 高分但 top-2~5 全部低分"的情况,global topScore 掩盖了整体质量低的事实。
扩展方案:per-chunk 评分 + 加权聚合,给每条 chunk 独立的 relevance 标签(relevant / partial / irrelevant),用 relevant 比例决定整体 tier。
面试亮点:展示对 CRAG 论文的深入理解和改进思考。
13. Multi-modal RAG(图表/公式直接理解)
现状:MinerU 把图表转为文本描述,但复杂图表(架构图、流程图、数据表)的文本化信息损失严重。
扩展方案:引入多模态 LLM(qwen-vl)直接理解图片 chunk,在检索阶段用图片 embedding 做匹配。
面试亮点:Multi-modal RAG 是 2025 年后的热点方向。
与 06-待优化清单的关系
- 06:迭代清单,每项都是 1-3 天可完成的小步优化(如算法单测、置信度评分、报错日志结构化等)
- 07:架构级扩展,每项都是 1-2 周的小型项目,会改变系统能力边界
建议节奏:
- 先把 06 的 H 级清单做完(基础工程素养)
- 再从 07 选 1-2 个 P0 方向深度落地(技术深度展示)
- 在 04-优化迭代记录.md 中记录每次落地的迭代过程
面试话术模板
当面试官问 "这个项目你后续打算怎么演进?" 时,可以这样答:
"当前系统已经能覆盖团队日常 80% 的文档查询需求。后续演进我分了四个层面:
检索层——已经做了两个关键优化:MMR 多样性重排保证信息密度,Query-Aware Adaptive Retrieval 让不同类型的查询走不同的检索配方。下一步想引入 GraphRAG,把文档间的引用、依赖关系建成图谱解决跨文档推理问题。
Agent 层——已经从单体 Agent 重构为 Supervisor-Worker 多 Agent 架构。简单查询走迭代 ReAct 循环(IterationDecider 基于置信度轨迹决定终止),复杂查询走 Plan-and-Execute(LLM 生成结构化执行计划,PlanExecutor 按依赖拓扑并行执行),多焦点查询走 Query Decomposition(并行子问题 + 保底分配合并)。ObservationEvaluator 做了质量感知的动态降级链。下一步想做两件事:HyDE 假设性文档生成增强低分召回,以及记忆系统从单层 KV 升级到 episodic + semantic 双层记忆。
工程层——最重要的是建立离线评估体系,用 RAGAS 那一套指标(Faithfulness、Answer Relevance、Context Precision),让每次参数调整都有数据支撑,再配合 A/B 框架做线上灰度。
交互层——前端要把 Agent 完整推理链路可视化,让用户能看到每个 chunk 为什么被召回、为什么被 rerank 过滤掉,这也是我对'可解释 AI'的实践。"