链载Ai

标题: 传统RAG的局限被打破!三个轻量级智能体分工协作,如何让问答系统更精准? [打印本页]

作者: 链载Ai    时间: 4 小时前
标题: 传统RAG的局限被打破!三个轻量级智能体分工协作,如何让问答系统更精准?

近期,公司在AI相关项目,尤其是问答系统领域,对回答的准确率和表述质量提出了更高的要求。用户提出的问题不仅限于基础性问题,还可能涉及多样化、复杂化的场景。也就在上周五快下班的时候,项目经理向我反馈,之前的项目团队支持的某客户在使用问答系统时,除了查询私有知识库中的信息外,还会提出以下几类问题:

  1. 可直接由大语言模型(LLM)回答的问题:例如通用知识或常识性问题。
  2. 非知识库相关的口头表达:如“谢谢”、“再见”等社交性语句。
  3. 需要多步推理的复杂问题:例如涉及逻辑推理或上下文关联的问题。

然而,之前项目团队采用的RAG技术存在一定的局限性:无论用户提出何种问题,系统均默认从知识库中检索答案,再交由LLM生成回答。针对非知识库问题(如口头表达),团队通过在prompt层面设置固定回复的方式进行处理。虽然这种方法能够部分解决问题,但其设计不够优雅,且无法有效应对需要多步推理的复杂问题。项目经理希望我能提出一种更优化的解决方案,以应对上述挑战。为此,我向他提出了一种轻量级的多智能体方案,在不修改检索器和LLM的前提下,优化整个RAG流程。


架构图


定义三个智能体

我们设计了三个专门的智能体——推理路由器(Reasoning Router)信息过滤器(Information Filter)和****决策制定者(Decision Maker)——以促进检索器与大型语言模型(LLM)之间的通信,每个轻量级智能体扮演不同的角色,通过有针对性的指令协同管理RAG(Retrieval-Augmented Generation)管道的各个方面。这种统一设计确保了高效的协调,同时保持了边缘部署的简洁性。三个智能体分别负责评估是否需要检索、生成有效的查询以及选择适合 LLMs 的信息。


推理路由器(Reasoning Router)

从高层次视角确定给定问题的最佳推理策略。根据当前状态(即问题),它通过最多两步操作选择行动:

  1. 决定检索必要性:如果输出[No Retrieval],则问题直接由LLM处理,利用其内部知识生成答案。
  2. 确定问题复杂性:如果输出[Retrieval],还会评估问题是否需要复杂推理。

具体示例如下


过滤器(Information Filter)

用于处理和过滤检索到的信息,以识别适合LLM的内容。其状态空间包括问题、检索到的文档以及当前的推理目标(如果在[Planning]模式下运行)。


决策者(Decision Maker)

根据当前状态在[Planning]策略中确定最佳行动。其状态空间包括问题、LLM生成的路线图以及推理历史中积累的文档。根据当前状态,智能地选择行动以评估进展并决定下一步操作。


智能体如何协作?

直接回答策略(Direct Answering Strategy)单次检索策略(Single-pass Strategy)已在推理路由器(Reasoning Router)的定义中介绍,分别对应于输出[No Retrieval]和[Retrieval]

多步推理策略(Multi-Step Reasoning Strategy)对应于推理路由器输出的[Planning]。该策略旨在解决需要LLM生成高层次路线图以及多次检索-过滤循环的复杂问题,通过以下三个阶段实现迭代式信息收集和推理:

  1. 生成路线图(Generate Roadmap):LLM将复杂问题分解为一系列结构化的子目标,为智能体提供高层次的指导。这些子目标定义了解决问题的步骤和所需的信息类型。
  2. 迭代检索与过滤(Iterative Retrieval and Filtering):根据生成的路线图,智能体通过多次检索-过滤循环逐步收集相关信息。每次循环中,推理路由器确定当前子目标是否需要检索,信息过滤器提取相关文档,决策制定者评估进展并决定下一步操作。
  3. 综合与生成答案(Synthesis and Answer Generation):在完成所有子目标后,LLM综合收集到的信息,生成最终答案。这一过程确保了复杂问题能够得到全面且准确的回答。

通过这三种策略,我们的多智能体系统能够自适应地处理不同复杂度的问题:


prompt如何设计


Reasoning Router

推理路由器将按照以下步骤进行评估并输出相应的动作:

  1. 评估问题






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5