为什么多代理RAG管道在生产数据库上卡顿(以及拯救我们的架构)
摘要
文章讨论了多代理RAG管道在生产中因同步工具调用和上下文膨胀而导致高延迟的原因,并提出了微代理、使用Redis缓存和异步处理等解决方案来提高性能。
当你演示一个AI代理查询一个只有50个PDF的单个向量数据库时,性能感觉是即时的。但当你将代理部署到具有混合搜索(pgvector + Elastic)、遗留SQL数据库和并行工具调用的实时企业环境中时,延迟会急剧上升。在我们最近的构建中,用户每次查询要等待18-25秒,因为我们的主要协调代理试图一次性做所有事情:解析用户请求、查询3个不同的API、清理上下文并生成响应。以下是我们遇到的问题以及如何修复基础设施:“智能代理”反模式:让一个代理访问10多个工具会使LLM困惑并使上下文长度增加四倍。我们将架构分解为微代理:一个路由代理、两个专门的检索代理和一个合成代理。上下文膨胀:我们没有将原始向量搜索结果直接倾倒到代理的上下文窗口中,而是在合成步骤之前在Redis中引入了严格的排名和去重层。未监控的工具调用:代理正在发出顺序阻塞API调用。我们使用Celery和Redis锁将工具执行移动到异步后台任务,以防止重复的数据库访问。工程现实检查:构建代理逻辑本身大约花了一周时间。设置缓存层、异步工作队列、连接池和CI/CD管道以处理非确定性代码几乎花了两个月。因为我们的内部团队完全专注于提示逻辑和数据模型,我们引入了来自Svitla Systems的嵌入式云和后端工程师来构建底层基础设施、Redis缓存层和部署管道。这再次强调了我们的一大教训:代理式AI主要是伪装成机器学习的高并发软件工程。你们是在同步处理代理工具调用,还是将执行推送到异步队列?你们如何在生产中处理整体管道延迟?
相似文章
大多数生产环境中的 RAG 应用都在自信地胡说八道,而这一现象却鲜有人讨论
文章指出了生产环境中 RAG 系统的一种关键故障模式:由于版本控制问题和缺乏不确定性机制,系统会生成自信但错误的回答。文章建议通过引入路由层、检索评分和幻觉检测等架构改进来缓解这些错误。
"在什么情况下添加另一个代理实际上会损害您的系统?问这个是因为我的6代理流水线比旧的2代理流水线更慢且更不可靠"
一位开发者分享了使用AI编排框架(LangGraph, CrewAI, AutoGen)的真实体验,指出了原型设计便捷性与生产可靠性之间的权衡,并向社区询问如何处理失败、人机协同和Token成本问题。
生产环境中的多智能体:在实践中是什么样的,你们又放弃了哪些做法?
一篇社区讨论帖,询问实践者生产环境中的多智能体 LLM 系统究竟是什么样的——他们采用了哪些架构、放弃了哪些方案,以及如何处理流程控制、评估和人工介入。
@h100envy: 这篇论文彻底改变了我对搭建 RAG 管线的想法:定义节点 -> 为每个节点列出候选…
一篇论文介绍了优化 RAG 管线的 5 步蓝图,通过在用户自己的数据集上为每个节点贪心地选择可互换模块,强调表现最佳的管线是数据集特定的,而非由基准驱动。
运行一个具有强大可观测性的可靠生产级代理,是否真的需要将 CrewAI、Temporal、Browserbase(如果涉及浏览器)和 Langfuse 拼凑在一起?
本文讨论了构建一个可靠、长期运行的多代理生产系统所面临的挑战,指出目前需要集成多个碎片化工具,如 CrewAI、Temporal、Browserbase 和 Langfuse,并提出是否可能存在更统一的运行时。