面向企业内部场景搭建的基于 ReAct 模式的智能对话知识库助手。我主要负责后端整体模块开发,完成会话管理、知识库检索、工具调用等核心业务逻辑,保障服务稳定性。
项目背景与目标
企业内部知识散落在各类文档中,直接问通用大模型会「一本正经地胡说八道」。项目的目标是把企业知识变成「有问必答、有据可查」的智能助手,并让 AI 能自主完成文件操作、网页抓取等复杂任务。
- 多轮对话记忆可持久化:服务重启后会话上下文不丢失。
- 检索增强与精准度优化:召回率由约 65% 提升至 85% 左右,无效检索减少约 30%。
- 工具调用:基于 ReAct 模式让 AI 自主调用文件操作、网页抓取、资源下载、PDF 生成等工具。
技术架构与选型思考
整体采用 ReAct 模式:模型根据用户问题推理后选择行动(检索 / 调工具),观察结果后继续推理直至给出答案。基于 Spring AI 生态构建,让模型调用、向量库接入与工具注册保持在同一条 Java 技术栈内。
- 对话层:Advisor 机制实现上下文记忆,自主设计文件系统 + Kryo 序列化的 ChatMemory 持久化方案。
- 检索层:自定义 VectorStore + PGVector 存储语义向量,通过相似度阈值过滤、多查询扩展与查询重写优化检索链路。
- 工具层:基于 @Tool 注解封装文件操作、网页抓取、资源下载、PDF 生成等工具,集成 SearchAPI 支持联网搜索。
核心难点与解决方案
难点一:多轮对话记忆持久化
服务重启后 AI 会话记忆丢失,多轮对话上下文难以保持。基于 Advisor 机制实现上下文记忆,并自主设计文件系统 + Kryo 序列化的 ChatMemory 持久化方案,实现服务重启后记忆可恢复、多轮对话上下文稳定保持,提升对话连续性。
难点二:检索召回率低、无效结果多
知识库检索召回率低、无效结果多。自定义 VectorStore + PGVector 存储语义向量,通过相似度阈值过滤、多查询扩展与查询重写优化检索链路,检索召回率由约 65% 提升至 85% 左右,无效检索减少约 30%。
难点三:AI 无法自主完成复杂任务
AI 无法自主完成文件操作、资源获取等复杂任务。基于 @Tool 注解封装文件操作、网页抓取、资源下载、PDF 生成等工具,集成 SearchAPI 支持联网搜索,扩展 AI 自主完成复杂任务的能力,减少人工介入。
项目成果与个人收获
- 检索召回率由约 65% 提升至 85% 左右,无效检索减少约 30%。
- 服务重启后多轮对话记忆可恢复,上下文稳定保持。
- 收获:完整走通 RAG 与 ReAct 智能体的工程链路,深入理解了记忆持久化设计与检索质量优化。
相关链接
项目面向企业内部场景,源码与演示地址暂不对外公开。