在人工智能领域,智能体(Agents)正处于蓬勃发展的阶段,众多新框架不断涌现。现代 AI 智能体逐渐克服了初期的不稳定,迅速取代传统技术成为开发首选。然而,开发人员在构建智能体时,面临着诸多决策,不仅要确定使用的模型、应用场景和技术架构,还要精心挑选合适的开发框架。是选择较为早期的 LangGraph,还是新兴的 LlamaIndex Workflows?亦或是走传统路线,自行编写全部代码?本文将通过对多种主流框架的实践对比,为您提供一份全面的选型指南,帮助您做出更明智的决策。
一、智能体框架设计
本次测试所采用的智能体具备多项功能,包括执行函数调用(function calling)、运用多种工具或技能、与外部资源建立连接,以及实现状态或记忆的共享。其核心能力涵盖基于知识库进行问题解答、针对 LLM 应用程序的数据进行问题解答以及对获取的数据进行更高层次的趋势和模式分析。为实现这些目标,智能体需要掌握结合产品文档的 RAG、在相关数据库上生成 SQL 语句以及数据分析等三项基本技能。智能体的用户界面借助 gradio 搭建,整体以聊天机器人的形式构建。
(一)Code-Based Agent(不使用智能体框架)

- 纯代码架构
基于纯代码构建的智能体,核心是由 OpenAI 提供支持的技能路由器,通过函数调用来确定使用的技能。技能执行完毕后,控制权返回技能路由器,以便调用其他技能或直接回应用户。智能体会持续记录用户消息和自身响应,并在每次调用时传递完整列表给技能路由器,以保留上下文。各项技能定义在独立类中,存储于 SkillMap,技能路由器仅与 SkillMap 交互,添加新技能只需编写新类并加入 SkillMap,方便实现新技能的扩展。


- 使用纯代码智能体面临的挑战
- 技能路由器的系统提示词设计困难,容易出现模型不按预期执行任务的情况,需要多次调试。同时,处理不同步骤产生的多种输出格式复杂,因未使用结构化输出,需为技能路由器和各项技能中模型调用准备多种应对策略。
- 纯代码智能体的优点
- 这种方法提供了扎实基础和学习途径,能让人在不依赖框架教程的情况下理解智能体运作原理。虽然引导模型行为有难度,但代码结构简洁,在某些场景下是合理选择。
(二)LangGraph

- LangGraph 架构
LangGraph 智能体与基于代码的智能体表面相似,但底层代码差异大。它使用'路由器'概念,通过代码函数调用 OpenAI 并依据响应推进步骤,程序在不同技能间的切换控制机制不同。其定义的图包含初始化 OpenAI 调用的'agent'节点和工具处理步骤的'tools'节点,内置 ToolNode 对象能根据 ChatMessage 响应触发工具,操作完成后返回'agent'节点。'state'负责保存与 OpenAI 的交互消息和响应列表。











