最近折腾了一个端到端的智能对话FAQ助手,过程中踩了几个值得记录的坑。这个系统的核心诉求很简单:让用户能连续提问,而AI不会"失忆"。

技术选型上,检索层用了FAISS向量索引,任何数据集都能往里扔。设计上刻意把知识层和模型层拆开——索引可以独立更新,不用动底层大模型。这种解耦在后续迭代时省了不少事。

打开网易新闻 查看精彩图片

真正的麻烦在记忆管理。多轮对话里,如果AI连用户两句之前说的话都记不住,体验直接崩。但也不可能每次调用都把完整历史塞给模型,成本和延迟都扛不住。最后用了AWS Bedrock AgentCore的记忆层,它按角色和会话维度来管理上下文,Agent能接着聊,不用重新加载全部历史。

编排逻辑选了LangGraph,因为实际流程根本不是线性的。检索结果不同,Agent要动态走不同的工具路径,用简单的链式结构根本理不清这些分支。界面用Streamlit快速搭了一个,主要用来测多轮对话的边界情况。

知识库的数据是从Jio官网扒下来处理的。整个项目代码已开源:Agentcore-Project。