AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Agentic AI 系统设计:第二部分 模块化
发布日期:2025-01-12 09:06:10 浏览次数: 1526 来源:红薯胡说


在本系列的第一部分中,我们介绍了Agent系统的整体架构模式。我们讨论了Agent系统的三个逻辑层:工具层、行动层和推理层。我们还研究了诸如函数调用等机制,这些机制允许大型语言模型(LLM)通过行动层与外部世界进行交互。

我们还指出,随着Agent复杂性的增加,Agent处理的质量和可靠性往往会下降。因此,我们需要以一种能够对抗这种情况的方式设计我们的Agent系统。我们可以采用的一个关键设计原则是模块化,我们将在本文中进行介绍。

模块化

实现复杂Agent系统一致性能的最好方法之一是将问题空间分解为更小的子Agent。

这是通过Agent之间的父子关系来实现的。顶层的父Agent作为进入Agent处理的入口点。提供给推理层的大多数功能都是交接任务,将处理工作分配给其中一个子Agent。


每个子Agent都处理问题空间的一个特定部分。实际上,这将微服务架构中常用的有界上下文概念应用于人工智能Agent的世界。

模块化的好处

想象一下,你正在为一家在线零售商构建一个客户支持Agent。该Agent将处理诸如退货、订单状态、产品问题等许多事务。

如果你从单体架构开始,你很快就会发现,你提供给推理层的提示会变得又长又复杂。函数列表也会变得很长。随着这两种情况的发生,你的Agent系统的准确性和性能将会受到影响。


采用更模块化的方法可以简化整体架构的许多方面。将子Agent按功能领域组织可能是分离整体系统关注点的一种方式。结果大致如下所示:


更可预测的决策流程

通过将系统分解为专门的子Agent,每个Agent承担一组明确定义的职责。当父Agent协调工作流程时,更容易看清发生了什么以及原因何在。而不是试图在一个庞大的流程中同时处理多个任务,请求可以被转交给最擅长处理它的特定Agent。

这会导致更透明的交互、更清晰的数据路径以及任务的逻辑、逐步的进展。在单体方法中,责任线变得模糊,这使得很难确定出问题的地方。模块化设计通过为每个Agent的领域建立明确的边界,消除了这种困惑。

关注点分离

模块化使每个Agent能够专注于系统的特定方面。如果你有一个只处理退货的ReturnsAgent和一个仅负责订单的OrdersAgent,你就避免了因无关数据或旁枝末节的问题而使事情变得复杂。这种分离使每个Agent内的领域知识高度集中,这可以极大地提高准确性——不再有随机的旁枝末节引入不相关的信息。


在实践中,这种方法反映了微服务和领域驱动设计中使用的技巧,其中每个组件都有一个“有界上下文”。通过限制每个子Agent的范围,你减少了指令和依赖的数量,使每次交互更加精确。因此,子Agent和父Agent都从更高的清晰度、更简单的提示和更少的离题回答中受益。

降低复杂性

当一个系统需要处理多个任务或处理大量数据时,复杂性可能会迅速膨胀。通过将责任分配给多个子Agent,你缩小了每个单独Agent的问题空间。这种去中心化使得每个Agent能够更有效地推理自己的任务,而不会被不相关的事务所淹没。

复杂性的降低也意味着出现程序或逻辑错误的机会更少。因为每个子Agent都是独立的,一个领域的变化不会意外地波及到另一个领域。

提高可维护性和测试性

维护一个庞大、单体的系统可能是一场噩梦。有了模块化架构,你可以改进或替换一个子Agent,而不必担心整个系统会崩溃。这不仅减少了开发时间,还降低了在与更改无关的区域引入新错误的风险。如果你的OrdersAgent需要一个新功能,你可以放心地在那里实现它,确信你不会破坏ReturnsAgent或其他系统部分。

接下来是什么

虽然模块化提供了降低复杂性和提高代理系统可维护性的优势,但它也引入了你必须考虑的关键交互模式。


Agent 需要一种方式将请求分派给子Agent,并回调父Agent,以最终交付Agent处理的最终结果。

在第三部分中,我们将深入探讨这些交互,并查看使用Python实现时的示例接口。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询