探索新一代大模型代理(LLM agent)及其架构
在人工智能大模型(AI)的浪潮中,2023年我们见证了检索增强生成(Retrieval Augmented Generation, RAG)的兴起,而2024年则无疑成为了“代理”agent的元年。各大AI企业纷纷投身于聊天机器人代理的研发中,工具如MultiOn通过与外部网站的连接实现了快速增长,而框架如LangGraph和LlamaIndex Workflows则助力全球开发者构建结构化的代理应用。然而,尽管代理在AI生态系统中备受瞩目,它们却仍未能在消费者或企业用户实际业务场景中掀起波澜。今天我们一起来探索一下新一代的大模型代理及其架构。

大模型代理(llm agent)的基础概念
首先,让我们明确什么是大模型代理(llm agent)。基于LLM的代理是软件系统,它们通过串联多个处理步骤,包括LLM调用,api调用,方法调用等等以实现期望的最终结果。这些大模型代理通常包含一定量的条件逻辑或决策能力,以及在执行步骤间可访问的工作内存。了解代理的构建方式、当前面临的问题及初步解决方案,对于我们导航新框架和代理发展方向至关重要。
ReAct代理的失败与反思
回顾过去,代理的概念并非新鲜事物。去年,AI领域的社交媒体上涌现了大量声称具备惊人智能能力的ReAct(reason, act)代理。然而,这些第一代代理大多以高度的抽象化设计著称,尽管承诺广泛的结果,但实际上却难以使用且效果有限。
ReAct代理的失败促使人们开始重新思考代理的结构。过去一年中,我们见证了巨大的进步,引领我们进入第二代代理的时代。新一代代理以更严格的方式定义了代理可能采取的路径,从而避免了ReAct代理开放式设计的缺陷。这种趋势趋向于缩小解空间,即每个代理能够执行的任务范围,虽然限制了多样性,但通常能打造出更强大、更易定义的代理。
第二代大模型代理(llm agent)的核心特征
第二代代理在多个方面展现出显著的特征。首先,它们往往采用LLM路由,并在迭代循环中处理数据。许多代理包含一个名为“路由器(router)”的节点或组件,负责决定下一步应该采取的行动。router可能是由LLM或分类器等驱动的,它们根据输入信息选择执行路径。
每个行动通常由一个组件表示,这些组件是完成特定小任务的代码块,可能调用LLM、执行内部API调用或运行应用程序代码。在LangGraph中,这些组件被称为节点;而在LlamaIndex Workflows中,它们则被称为步骤。一旦组件完成其工作,它可能返回路由器或移动到其他决策组件。
无论大模型代理是否使用框架,我们都看到了解决方案空间越来越小的趋势——也就是说每个代理可以做的事情越来越少。解决方案空间越小,代理就越容易定义,这通常会使代理更强大。
大模型代理的架构模式
代理的部署通常遵循一些常见的架构模式。最简单的形式可能仅包括一个LLM路由器和一个工具调用,我们称之为“单一路由器与功能”架构。在这种架构中,路由器根据系统输入决定调用哪个工具或功能。

稍微复杂的架构则是“单一路由器与功能集”,其中路由器调用的不再是简单的工具或函数调用,而是更复杂的工作流程或功能集,这些可能包含多个组件和深度链接的动作链。

更高级的架构则将LLM调用与工具和状态混合,形成复杂的分支结构。路由器根据用户问题调用不同的功能,每个功能可能更新共享状态,并可能涉及一个或多个LLM调用来生成用户响应。

为了应对代理的复杂性,出现了如LangGraph和LlamaIndex Workflows等框架,它们旨在通过提供结构化的方式来简化代理开发。LangGraph基于Pregel图的概念,定义了节点和边,使代理能够沿其移动。而在LlamaIndex Workflows中,则使用事件和事件监听器来在不同节点间移动。
大模型代理的一些思考
是否应使用框架开发大模型代理
在决定是否使用大模型代理框架来开发代理时,我们需要权衡其提供的额外结构与复杂性之间的平衡。对于大型、复杂的大模型代理应用,大模型代理框架提供的结构和最佳实践可以大大降低开发难度。然而,对于高度定制化或特定需求的代理,直接使用代码可能更为灵活。
以我们一个项目为例,我们在开发自己的代理时采用了多层路由器架构,虽然我们没有直接使用LangGraph等框架,但我们的设计在一定程度上借鉴了它们的抽象概念。我们发现,对于当前的项目需求而言,直接使用代码比依赖框架更为高效。然而,我们也认识到随着框架的不断完善,未来可能会考虑采用这些框架来加速开发进程。
你真的需要大模型代理吗?
在决定构建大模型代理之前,我们首先需要明确代理的适用场景。如果你的应用遵循基于输入数据的迭代流程,需要根据先前的行动或反馈进行调整,或者存在一个可遍历的状态空间,那么代理可能是一个很好的选择。
然而,代理并非万能的解决方案。它们在复杂任务分解、长期规划和性能一致性方面仍面临挑战。为了克服这些挑战,我们需要采用一系列策略,如缩小解空间、引入领域和业务启发式、明确行动意图和创建可重复的过程等等,真是落地还需要很多实际业务场景的探索
使用大模型代理常见问题及可能的解决方案
问题:
1.长期规划难题:Agent在分解复杂任务和避免陷入循环方面存在困难,常需人类干预。
2.不一致的性能:由于解决空间的庞大,Agent难以实现一致结果,且成本高昂。市场倾向于使用受限Agent以限制解决空间。
可能的应对策略:
1、缩小解决空间:通过预先定义可能的行动和结果范围来减少不确定性。2、引入业务逻辑:将领域和业务启发式融入Agent的决策系统中,提升决策质量。
3、明确行动意图和标准化流程:清晰定义每个行动的目的,标准化执行步骤,增强可靠性和可纠错性。
4、代码化编排:使用代码替代LLM进行编排,提高过程的确定性和可控性。
相关文章:
探索新一代大模型代理(LLM agent)及其架构
在人工智能大模型(AI)的浪潮中,2023年我们见证了检索增强生成(Retrieval Augmented Generation, RAG)的兴起,而2024年则无疑成为了“代理”agent的元年。各大AI企业纷纷投身于聊天机器人代理的研发中,工具如MultiOn通过与外部网站的连接实现了…...
AI应用案例(1)——智能工牌和会话质检
今天开辟一个新的模块,自己平时也搜集一些典型的行业应用案例,不如就记录到C站,同时和大家也是个分享好了。 今天分享的企业和产品,是循环智能的智能工牌。 这个产品应用场景清晰,针对的行业痛点合理,解决…...
操作系统高频(五)linux命令
操作系统高频(五)linux命令 1.Linux中查看进程运行状态的指令、tar解压文件的参数。⭐⭐⭐ 在Linux中,可以使用以下指令查看进程的运行状态: top: 用于实时监视系统的进程活动和系统资源使用情况。在终端中运行top…...
HMTL+JS+CSS实现贪吃蛇游戏,包含有一般模式,困难模式,还有无敌模式
HMTLJSCSS实现贪吃蛇游戏,包含有一般模式,困难模式,还有无敌模式(可以穿墙死不了,从左边进去可以从右边出来),显示当前分数和最高分,吃到的球颜色可以叠加到蛇身体上 为了适配手机端…...
内网渗透——红日靶场二
目录 一、前期准备 DC机配置 PC机配置 WEB机配置 将PC机和WEB机的IP地址进行更改 开启WEB服务 二、外网探测 1.使用nmap扫描 2.目录扫描 3.漏洞扫描 (1)CVE-2017-3506(getshell失败) (2)CVE-201…...
【Unity】处理文字显示不全的问题
1.选中字体文件,检查 MultiAtlasTeextures 是否勾选,未勾选的话,先勾选保存后查看是否显示正常 2.勾选后未正常显示,则在搜索框中输入未显示的文本,确认字体图集是否包含该文本,然后点击Update Atlas Textu…...
深入解析力扣39.组合总和:回溯算法的妙用
题目描述 给定一个无重复元素的数组 candidates 和一个目标值 target,找出 candidates 中所有可以使数字和为 target 的组合。数组中的数字可以被重复使用。 示例: 输入: candidates [2,3,6,7], target 7 输出: [[2,2,3],[7]]代码解析 class Solut…...
汽车诊断开发入门以及OBD检测
一、OBD 概述 定义:OBD 即 On - Board Diagnostics,车载自动诊断系统。它能实时监测车辆各项系统和部件状态,以此帮助诊断故障并预警。设计初衷与发展:最初设计目的是控制汽车尾气排放,确保符合环境标准。随着技术进步…...
Android 中集成 Google 应用内评分
添加依赖 在项目的 build.gradle 文件中添加以下依赖: dependencies {// Java 依赖implementation com.google.android.play:review:2.0.1// Kotlin 依赖implementation com.google.android.play:review-ktx:2.0.1 }创建 ReviewManager 使用 ReviewManagerFactor…...
Ingredient-oriented Multi-Degradation Learning for Image Restoration论文阅读
摘要:重点在于关联多个任务本质的联系。 不同恢复任务的关联性很重要。 揭示退化现象的内在机理联系很有意义。 多合一的方法能在单一模型中处理多种退化问题,可扩展性较差。 成分导向范式挖掘不同图像退化现象背后的物理规律或特征模式。 成分导向退化重…...
避坑,c#开发人员学习开发app时.NET MAUI和Vue3 选择
经过一段时间学习vue3后才发现作为一个C#背景的开发人员从开发效率、调试便捷性、部署便利性考虑,Visual Studio + .NET MAUI 是更合适的选择,尤其是在跨平台原生应用开发场景中。以下是详细对比分析: 一、开发体验 1. 语言与生态适配 .NET MAUI:基于C#和.NET生态,与你现有…...
java项目挂机自动重启操作指南
前段时间有个伙伴问我,java项目挂机怎么自动重启。。。。。。今天就写一个 .sh脚本来实现应用挂机的自动重启功能 #!/bin/bash # 查询mita的进程个数 countps -ef | grep mita.jar | grep -v "grep" | wc -l # echo $count nowtimedate "%Y-%m-%d %H…...
Vue el-table-column内el-tooltip识别换行符 \n
结构: <el-table-column prop"callSummary" width"300" label"摘要"><template slot-scope"scope"><el-tooltip class"item" effect"dark" placement"top"><div v-ht…...
【C++指南】一文总结C++二叉搜索树
🌟 各位看官好,我是egoist2023! 🌍 种一棵树最好是十年前,其次是现在! 🚀 今天来学习C二叉搜索树的实现。 👍 如果觉得这篇文章有帮助,欢迎您一键三连,分享给…...
【报告】内镜视频图像分析Foundation Model
来源:医疗基础模型 仅供个人学习,侵权请联系我删除...
使用HTML5和CSS3实现炫酷的3D立方体动画
使用HTML5和CSS3实现炫酷的3D立方体动画 项目介绍 本文将详细介绍如何使用HTML5和CSS3技术实现一个交互式3D立方体动画。这个项目不仅展示了现代Web前端技术的强大功能,还能帮助读者深入理解CSS3的3D变换和动画特性。 技术栈 HTML5CSS3 (transform-style, persp…...
【春招笔试】2025.03.29-美团研发岗
📌 点击直达笔试专栏 👉《大厂笔试突围》 题目一:班级值班安排优化 1️⃣:计算员工值班时间总和 2️⃣:直接比较 n*k 与总和的大小关系 难度:简单 这道题目的核心在于数学模型的简化。通过分析平均分配的本质,我们发现只需直接比较员工数量与时间上限的乘积(n*k)和总…...
MySQL数据库和表的操作之SQL语句
🎯 本文专栏:MySQL深入浅出 🚀 作者主页:小度爱学习 MySQL数据库和表的操作 关系型数据库,都是遵循SQL语法进行数据查询和管理的。 SQL语句 什么是sql SQL:结构化查询语言(Structured Query Language)&…...
多模态大语言模型arxiv论文略读(二)
Identifying the Correlation Between Language Distance and Cross-Lingual Transfer in a Multilingual Representation Space ➡️ 论文标题:Identifying the Correlation Between Language Distance and Cross-Lingual Transfer in a Multilingual Representat…...
Windows 图形显示驱动开发-WDDM 2.1 功能(一)
WDDM 2.1 要求表 功能 适用性 供应和回收改进必需视频内存管理可选硬件保护内容的可靠性改进选择硬件支持 Windows GameDVR 的应用程序 必需 间接显示选择硬件驱动程序存储和并行安装必需适用于摄像头/捕获场景的 DirectX 内存图面共享必需 WDDM 2.1 支持以下 D3D 版本&#…...
全局曝光与卷帘曝光
文章目录 曝光方式优点缺点应用场景 为何全局曝光帧率比卷帘曝光方式低 卷帘曝光和全局曝光是CMOS传感器两种常见的曝光模式,以下是二者的对比: 参考:B站优致谱视觉 曝光方式 卷帘曝光:传感器的每一行像素按顺序逐行扫描曝光&…...
【一起来学kubernetes】31、Helm使用详解
一、Helm 简介 Helm 是 Kubernetes 的包管理工具,类比 Linux 中的 yum 或 apt,用于简化应用的打包、部署和版本管理。其核心功能包括: Chart 管理:将 Kubernetes 资源(Deployment、Service 等)打包为可复…...
python 常用的6个爬虫第三方库
Python中有非常多用于网络数据采集的库,功能非常强大,有的用于抓取网页,有的用于解析网页,这里介绍6个最常用的库。 1. BeautifulSoup BeautifulSoup是最常用的Python网页解析库之一,可将 HTML 和 XML 文档解析为树形…...
blender场景导入Unity的流程(个人总结)
处理找不到贴图的问题 blender场景导入Unity遇到的主要问题是贴图找不到。经研究是blender里材质的着色器结构不是贴图-原理化BSDF-输出导致的。目前还没有自动解决方法,总结了一个效率还可以的手动解决流程。 打开后到材质预览,看一下显示没问题&…...
可编辑36页PPT | “新基建”在数字化智慧高速公路中的支撑应用方案智慧高速解决方案智慧交通方案
这份文档是一份关于“新基建”在数字化智慧高速公路中支撑应用方案的PPT内容介绍,它详细阐述了新基建在智慧高速建设中的背景、总体要求和建设内容。从政策背景来看,多个政府部门发布了相关政策文件,推动交通运输基础设施的数字化升级和智慧交…...
Spring 核心技术解析【纯干货版】- XV:Spring 网络模块 Spring-Web 模块精讲
Spring Framework 作为 Java 生态中最流行的企业级开发框架,提供了丰富的模块化支持。其中,Spring Web 模块是支撑 Web 开发的基础组件,无论是传统的 MVC 应用,还是 REST API 及微服务架构,都离不开它的核心能力。 本篇…...
一文解读DeepSeek在保险业的应用
引言 随着人工智能技术的深度渗透,保险行业正经历从传统经验驱动向数据智能驱动的转型。作为国产高性能开源大模型的代表,DeepSeek 凭借其低成本、高推理效率及跨模态处理能力,已成为保险机构突破服务瓶颈、重构业务逻辑的核心工具。截止目前…...
MD编辑器中的段落缩进怎么操作
在 Markdown(MD)编辑器中,段落的缩进通常可以通过 HTML 空格符、Markdown 列表缩进、代码块缩进等方式 实现。以下是几种常见的段落缩进方法: 1. 使用全角空格 ( ) 在一些 Markdown 编辑器(如 Typora)中&…...
Oracle OCP知识点详解2:管理用户密码期限
一、Oracle密码期限管理机制 Oracle数据库通过**概要文件(Profile)**来管理用户的密码策略。默认情况下,所有用户都使用名为DEFAULT的概要文件,该文件的密码过期时间通常设置为180天。这种机制旨在强制用户定期更改密码ÿ…...
物联网时代,HMI 设计的创新机遇与挑战
随着物联网(IoT)技术的蓬勃发展,各种智能设备如雨后春笋般涌现,从智能家居到智慧城市,物联网的应用场景愈发广泛。作为人与设备之间的桥梁,人机界面(HMI)设计在物联网时代扮演着至关…...
