Agent 智能体进入黄金发展期
Agent 智能体的发展正步入黄金时代。随着众多新框架的层出不穷和对该领域的持续投入,现在 Agent 智能体已逐步摆脱初期的动荡,迅速崛起,成为开发者的首选,超越了 RAG。那么,2024 年是否会成为 Agent 智能体系统全面接管撰写邮件、预订航班、数据分析等任务的元年呢?

这或许有可能,但距离这一目标还有许多挑战需要克服。在构建 Agent 智能体的过程中,开发者们不仅要考虑选用哪种大模型、应用场景和技术架构,还需要在众多开发框架中做出抉择。是继续沿用较为成熟的 LangGraph,还是拥抱新兴的 LlamaIndex Workflows?或者回归传统,亲自编写所有代码?
本文旨在帮助您更轻松地做出决策。在过去几周,我们利用多个主流框架构建了相同的智能体,并从技术角度对它们的优势和不足进行了分析。
Code-Based Agent(不使用智能体框架)
在着手开发 Agent 智能体应用时,你可以选择不依赖任何框架,而是完全自主构建,整体流程如下所示:

以下 Agent 智能体应用完全由代码构建而成,其核心是一个由 OpenAI 技术支撑的技能调度器。该调度器通过函数调用机制来决定激活哪项技能。技能操作完成后,控制权将重新交还给技能调度器,以便于它能够继续调度其他技能或者直接对用户进行反馈。

在整个交互过程中,Agent 智能体不断记录用户的提问和自身的回答,并在每次技能调用时,将这一系列对话完整地传递给技能调度器,以此保证交互的连贯性和上下文的完整性。
LangGraph
LangGraph 是众多 Agent 智能体框架中最早出现的一个,它在 2024 年 1 月首次亮相。这个框架的创建目的是为了克服现有流程和链条中的非循环性挑战,通过运用 Pregel 图模型来应对这一难题。LangGraph 通过引入节点、边以及条件边的概念,简化了在智能体内部构建循环流程的步骤,使得图结构的遍历更为直观易懂。LangGraph 是建立在 LangChain 之上的,它沿用了 LangChain 的对象和类型系统。

乍一看,LangGraph 智能体与传统的基于代码的智能体似乎有共通之处,然而它们的底层实现却存在显著差异。尽管 LangGraph 也采用了'路由器'这一术语,指的是通过函数调用与 OpenAI 交互并利用其输出推动流程前进,但是它在不同技能间的切换逻辑却是独树一帜的。

在所描述的图结构中,我们定义了一个用于启动 OpenAI 调用的节点,即'agent',以及一个用于执行工具处理步骤的节点,即'tools'。LangGraph 提供了一个名为 ToolNode 的内置对象,该对象能够接收并调用一系列工具,根据 ChatMessage 的反馈来激活这些工具,并在操作完成后返回到'agent'节点。








