介绍

自2022年11月ChatGPT发布以来,智能体已成为人工智能领域最具活力和最富前景的子领域之一。如今,数以万计的团队正在构建各类智能体——从简单的聊天机器人到能够自主操作软件和执行多步骤研究任务的复杂系统。整个生态系统正在迅速发展以支持这一需求,在框架、基础设施和评估工具方面,每周都有新的产品发布。

在这个快节奏的环境中,构建智能体的最佳实践仍然不清晰。为了给社区带来清晰的认识,我们深入分析了400多个智能体项目,从小型开源实验到大型企业部署。本报告介绍了我们的发现,涵盖了智能体架构、评估、生产挑战和新兴趋势。

什么是智能体?

我们使用一个广义的、可操作的智能体定义:
智能体是一个调用语言模型作为其核心计算引擎的人工智能系统。

在这个定义下,智能体包括任何利用语言模型进行决策、规划或与世界交互的系统。智能体通常涉及一个或多个以下组件:

  • 规划与任务分解:将复杂目标分解为可管理的步骤。

  • 记忆:存储和回忆过去交互的信息。

  • 工具使用:调用外部API或函数来检索信息或执行操作。

  • 多智能体协作:多个专业智能体协同解决任务。

智能体的演变

https://www.langchain.com/img/state-of-agent-engineering/agent-evolution.png
智能体已从简单的链式结构发展为能够处理复杂、多步骤工作流程的自主系统。

智能体架构

代码优先 vs. 配置优先

我们观察到一个重大转变:约90% 的智能体项目现在采用代码优先的方法(如使用Python),而不是低代码或无代码平台。

配置优先的方法(例如LangChain的LangGraph、Flowise、Vellum)因其能快速启动和运行原型而流行。然而,当团队面临生产部署的复杂性时,它们通常会转向代码优先的方法。这种转变是为了获得:

  • 更强的灵活性和控制力:定制化工作流程和错误处理。

  • 更好的可维护性:代码库比复杂的配置更容易进行版本控制和调试。

  • 与现有系统的集成:将智能体无缝集成到更广泛的应用程序架构中。

注意:配置优先的工具仍在快速原型设计、教育用例或特定垂直领域(如客户支持自动化)中发挥重要作用。它们正变得更易于生产部署。

框架

https://www.langchain.com/img/state-of-agent-engineering/framework-adoption.png
LangChain 主导着框架的使用,但自定义代码解决方案正日益流行。

在代码优先的智能体项目中,LangChain 仍然是使用最广泛的框架,但我们看到直接使用自定义代码构建的趋势也在增长。这种向更轻量级或定制化方法的转变表明,开发者希望降低依赖项的复杂度,或者现有的框架无法满足他们对精细控制或性能的需求。

新兴框架如 CrewAI 和 AutoGen 在多智能体场景中获得了关注,因其提供了比从头构建自定义解决方案更友好的抽象层。

关键的架构决策

构建一个智能体不仅仅是选择一个框架。以下是开发者在设计系统时必须做出的关键决定:

1. 状态与编排

状态表示智能体在其环境中的当前情况(如目标、已执行步骤、收集到的信息)。编排则是管理控制流程和状态转换的机制。

模式

  • 带有循环的工作流:智能体反复评估状态并决定下一步行动。适用于探索性任务。

  • 有向无环图(DAG):定义具有清晰依赖关系的预定义步骤序列。适用于结构化、可预测的任务。

新兴的解决方案如 LangGraph 通过将智能体表示为带有循环的图来统一这些模式,使其能够同时处理结构化和探索性任务。

2. 规划

反应式 vs. 主动式:智能体是应该对即时刺激做出反应(反应式),还是应该为未来步骤制定计划(主动式)?

我们分析的大多数智能体采用混合方法:

  • 高级任务分解:主动地将总体目标分解为子任务。

  • 反应式步骤执行:根据当前上下文和可用工具,为每个子任务动态决定下一步动作。

像 Chain-of-Thought 和 Tree-of-Thoughts 这样的规划技术被用于更复杂的场景,需要深度推理或探索多个路径。

3. 工具使用与函数调用

工具是智能体与现实世界互动的接口。OpenAI 的函数调用已成为事实上的标准,大多数模型和框架都支持。

趋势

  • 工具的数量:范围从几个(<5)到数百个。更少的、精心设计的工具通常更可靠。

  • 动态工具选择:智能体根据上下文决定使用哪些工具。这通常通过嵌入相似性或工具描述来指导。

  • 分层工具:将复杂工具包装在更简单的抽象中,以降低智能体的认知负担。

4. 记忆

智能体需要记忆来存储和回忆相关信息。我们看到了从简单到复杂方法的演进:

类型 描述 使用场景
对话缓冲 存储最近的对话消息 简单的聊天机器人
向量存储 嵌入和搜索过去交互的信息 长期事实回忆
知识图谱 以结构化格式存储实体和关系 复杂的关系推理
摘要记忆 随着时间的推移压缩过去的交互 减少上下文长度,保留关键信息

大多数生产系统结合了多种记忆类型,以实现短期上下文和长期知识回忆。

5. 多智能体系统

~20% 的项目涉及多个协作的智能体。这种模式在以下情况下特别有效:

  • 专业化:不同的智能体擅长特定任务(例如,研究者、写作者、验证者)。

  • 并行性:智能体可以同时执行独立的任务。

  • 辩论与验证:多个智能体对解决方案进行辩论或交叉检查彼此的工作以提高质量。

评估

评估智能体是最大的挑战之一。传统的自然语言处理(NLP)指标如BLEU或ROUGE无法捕捉智能体行为的质量和稳健性。

当前的评估方法

方法 描述 优点 缺点
人工评估 人类评估者根据标准对智能体输出进行评分 黄金标准,捕捉细微差别 耗时、昂贵、主观、难以扩展
基于规则的检查 针对预定义规则(例如,是否调用特定工具?)检查输出 快速、自动化、客观 仅限于可规则化的方面,可能不全面
基于模型的评估 使用语言模型对输出进行评估(例如,GPT-4作为评判者) 可扩展、能够理解细微差别 可能继承评判模型的偏见、成本高、有时与人类判断不一致
端到端任务成功率 测量智能体成功完成给定任务(例如,预订航班)的频率 直接衡量实际效用 任务定义复杂、可能无法泛化

大多数项目(约75%)仍然严重依赖人工评估,特别是对于关键任务或主观任务。

新兴的解决方案

社区正在开发更复杂的评估工具:

  • 基准测试AgentBenchWebArenaToolBench等基准提供了标准化的任务和环境,用于比较智能体性能。

  • 评估框架LangSmithTruEraDeepEval等工具提供了用于单元测试、集成测试和监控智能体的平台。

  • 模拟环境:创建数字环境(如虚拟浏览器、API沙盒)以测试智能体,而无需真实世界的后果。

评估建议

  1. 结合使用多种方法:不要依赖单一指标。

  2. 及早并经常评估:将评估集成到开发工作流程中。

  3. 建立监控机制:跟踪生产环境中的智能体性能,以发现回归问题或意外行为。

生产中的智能体

将智能体从原型过渡到生产环境是当前的主要瓶颈。挑战包括:

主要挑战

  1. 可靠性:智能体必须在多样化和不可预测的现实世界输入下保持一致和准确的行为。

  2. 延迟与成本:复杂的智能体可能需要进行多次语言模型调用和工具调用,导致响应时间变慢和成本增加。

  3. 监控与可观察性:传统的应用性能监控(APM)工具无法理解智能体的决策过程。开发者需要跟踪链式调用、工具使用情况和中间状态。

  4. 复杂工作流程的管理:编排长时间运行、多步骤的智能体任务需要健壮的状态管理和错误处理。

生产就绪模式

成功的团队采用以下做法:

  • 分层架构:将智能体逻辑与业务逻辑分离。将智能体视为需要与其他服务(如数据库、API)集成的组件。

  • 人的参与:在关键决策点引入人工审核,特别是在高风险场景中。这可以是主动的(人工在循环中)或被动的(出现问题后的人工监督)。

  • 优雅降级:当智能体不确定或失败时,应具备后备机制(例如,回退到基于规则的系统或人工客服)。

  • 成本优化

    • 缓存频繁使用的语言模型响应或检索结果。

    • 根据任务复杂性使用分层模型(例如,用小型/快速模型处理简单步骤,用大型/强大模型处理复杂推理)。

    • 设置用量限制和预算告警。

生产中的智能体堆栈

一个典型的智能体生产堆栈包括多个层次:

  1. 编排层:管理智能体的控制流(例如,LangGraph、自定义代码)。

  2. 模型层:语言模型提供商(例如,OpenAI、Anthropic、本地模型)。

  3. 工具层:智能体可用的外部API和函数。

  4. 记忆层:用于短期和长期存储的数据库和向量存储。

  5. 评估与监控层:用于测试、评估和观察的专用工具(例如,LangSmith)。

  6. 部署与基础设施层:容器化、无服务器平台(如Fly.io、Modal)以及传统的云服务。

新兴趋势

1. 多智能体系统的兴起

越来越多的项目采用多智能体架构,尤其是在以下领域:

  • 软件工程:由编码员、测试员和审查员智能体组成的团队。

  • 科学研究:协作分析数据和形成假设的智能体。

  • 游戏与模拟:具有不同角色和目标的智能体进行交互。

2. 长期运行的智能体

智能体正被设计为运行数小时、数天甚至更长时间,持续监控信息流并采取行动。这对状态持久性、检查点和资源管理提出了新的挑战。

3. 具身智能体

将语言模型智能体与物理机器人或虚拟环境(如Minecraft、机器人模拟器)集成。这推动了在规划、空间推理和从物理交互中学习方面的研究。

4. 开源智能体模型

虽然像GPT-4这样的闭源模型仍然主导着智能体开发,但像Llama 3QwenDeepSeek这样的开源模型正在快速发展。开源模型提供了数据隐私、定制化和成本优势,尽管它们目前在复杂推理和工具使用方面可能还无法达到同等水平。

5. 智能体即服务

出现了一些平台,将智能体作为API端点提供,用于特定任务,如研究、编码或客户支持。这降低了构建智能体的入门门槛。

未来展望

智能体工程领域仍处于初级阶段。我们预计未来一年将出现以下发展:

  • 更强大的评估工具:新的基准测试和自动化评估框架将简化开发流程。

  • 标准化与互操作性:不同框架和智能体系统之间的通信标准可能出现,实现智能体的“组合”。

  • 智能体专用模型:语言模型可能会针对工具使用、规划和长期推理进行微调或从头开始训练。

  • 更强大的多智能体框架:用于设计、模拟和部署智能体团队的工具将变得更加成熟。

  • 安全与治理:随着智能体变得更加自主,确保其安全、符合道德和可控的研究将变得至关重要。

结论

构建生产级智能体是一个多维度的挑战,需要融合软件工程、机器学习和人机交互方面的技能。虽然该领域正在快速发展,但核心原则已经显现:

  1. 采用代码优先的方法以获得灵活性和控制力。

  2. 投资于稳健的评估,因为无法测量就无法改进。

  3. 为生产环境设计,从一开始就考虑可靠性、成本和监控。

  4. 保持实验精神。这是一个快速发展的领域;今天的最佳实践明天可能就会改变。

我们写这份报告是为了给这个快速发展的领域提供一个快照。我们希望它能帮助开发者、研究者和企业在构建下一代人工智能系统时做出明智的决策。

原文请参考:

https://www.langchain.com/state-of-agent-engineering

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐