一、立项背景与目标
1. 立项背景
在传统的知识库问答系统中,普遍存在以下痛点:
- 流程混乱:通用ReAct Agent在处理复杂业务时,容易发生步骤跳跃或逻辑错乱,导致回答质量不稳定。
- 上下文断裂:多轮对话中,用户常使用代词(如“它多少钱?”),传统向量检索缺乏指代消解能力,导致检索失败。
- 意图混杂:闲聊式提问(如“你好”)与知识检索式提问(如“XX产品参数是多少”)被统一处理,浪费算力且影响用户体验。
- 状态丢失:用户刷新页面或稍后再访问时,对话历史无法延续,每次都是“新会话”。
2. 项目目标
- 构建一个流程可控、意图可分流、上下文可理解、状态可持久的智能知识助手。
- 实现复杂业务逻辑的结构化解耦,提升系统的可维护性与稳定性。
- 显著提升多轮对话场景下的检索命中率与回答准确率。
二、软件功能与核心模块
1.整体功能概述
本系统是一个基于LLM的智能对话式知识库问答助手,支持用户通过自然语言提问,从向量知识库中精准检索并生成回答。系统特别强化了多轮对话中的指代消解能力与流程可控性。
2.核心功能模块介绍
模块名称 功能说明
Planner(规划器) 基于LLM + 专用Prompt,硬编码业务流程。负责解析用户请求,按固定流程调度执行,防止逻辑跳跃。
语义路由器 基于LLM的分类工具,动态识别用户意图为“chat”(闲聊)或“retrieval”(知识检索),实现分支分流。
历史加载与写入模块 与Redis集成,自动追加对话历史,确保跨会话的上下文连续性。
查询重写模块 结合历史对话,将存在指代或省略的用户问题(如“它多少钱?”)改写为语义完整的独立问句。
混合检索引擎 同时执行向量语义检索与关键词检索,通过RRF算法融合排序,提升召回效果。
Executor(执行器) 根据Planner的指令,调用重写、检索、生成等环节,最终输出回答。
系统流程严格遵循:语义路由 → 历史加载 → (分支判断) → 查询改写/直接回答 → 知识库检索 → 最终生成
三、业务流程与功能路径
以下为用户与系统交互的完整功能路径描述:
场景一:用户进行知识检索(多轮对话)
场景二:用户发起闲聊
场景三:用户首次访问 / 会话恢复
1. 构建Plan-Execute分层代理架构
- 将任务处理拆分为Planner和Executor两个阶段,实现了复杂业务逻辑的结构化解耦。
- 基于LLM-Planner定制专用Prompt,硬编码业务执行流程。强制Agent严格按照“语义路由 → 历史加载 → (分支判断) → 查询
改写/直接回答 → 知识库检索 → 最终生成”的顺序执行,避免了传统ReAct Agent在复杂流程中容易出现的步骤跳跃或逻辑混乱
问题。
2. 实现智能语义路由与分支处理
- 开发基于LLM的分类工具,动态识别用户意图为chat或retrieval。
3. 查询重写与混合检索
- 针对多轮对话中的指代消解难题(如用户追问“它多少钱?”),设计专用工具结合历史对话将碎片化问题改写为语义完整的独
立问句再送入向量库检索,显著解决了因上下文缺失导致的检索失效问题。
- 语义与关键词多路召回,由RRF算法排序知识片段,提高召回率
4. 工程化落地
- 实现对话历史的自动追加与Redis写入,确保用户下次访问时能无缝衔接上文。