AI-智能体基础设施
个性化记忆需要世界模型来协助构建
业界有一个精简的Agent表达公示,即:Agent=大模型(LLM)+记忆(Memory)+主动规划(Planning)+工具使用(Tool Use)。基于该公式,一个基于LLM的 AI Agent可以拆分为LLM、规划、记忆与工具使用四个组件部分。
Agent的记忆库负责存储和管理AI Agent在执行任务和与环境交互过程中产生的信息和数据,以支持AI Agent的决策和行为,所以当有决策和行动时,也需要Agent增加Tool Use的能力。
随着大模型自身的发展,特别是大模型在推理能力和反思能力上的增强,Agent平台都需要拥有个性化记忆和工具使用的能力。
记忆库不仅仅只是存储,还包括个性化记忆,另外Agent之间共享记忆也很重要。经过一年多实践,我们发现,最难实现的是个性化记忆,个性化记忆还需要与Tool Use结合起来,而个性化记忆需要世界模型来协助构建。
在To B场景下,“世界模型”不仅包括业务流程的脉络、对话或者工作流的上下文和状态,还包括数字世界中的各种系统和智能世界中的其他Agent和员工。有了这些,Agent才能更加准确地理解和预测现实物理世界中的各种情况,并据此作出最佳决策。
以销售管理Agent为例。通过各种视频、书籍、理论等预训练出来一个类似于只拥有数字世界的“销售管理AlphaGo”,然后通过一个优秀的世界仿真器,让“销售管理AlphaGo”通过历史数据以及相应的观测去与真实的物理世界互动,比如可以与一线的人类销售进行对话、主动获取行业动态等,使得它能够更好的与物理世界和数字世界进行观测和互动,最终成为销售负责人的智能助手。
在这个销售管理Agent的构建过程中,专家知识是构建这个独特Agent的“天花板”,因为专家知识——销售负责人的管理理念、风格、策略和其制定的规则,决定了整个Agent的流程、方向甚至是边界。而大语言模型于这个Agent而言,它只是一个底座——负责理解和生成自然语言,使Agent能够更好地与人类员工进行沟通和协作。
为什么Tool Use很重要?
当Agent对Action和目标做完判断,并且判断需要工具时,就进入了Tool Use阶段。
在这个阶段,需要考虑到多Agent协作、Agent编排、函数&API&组件等的调用,同时也包括安全质量相关的鉴权和监控等等。
当Agent判断需要有Action时,Function Call(函数调用)能力尤为重要。特别是随着开源模型能力逐渐追平GPT-4,AI Agent将可以依赖Function Call。
Function Call是编程中的一种机制,它允许一个函数(或方法)在另一个函数中执行。为什么Function Call能力尤为重要?
在To B业务场景下,Agent的工作实现方式和路径的关键在于业务目标的实现。这里提到的“业务目标”可以理解为企业在特定时间内期望达成的某个商业成果或状态,实现这个目标的过程,可以被看作是一种“状态机的转移”。
“状态机”是计算机科学中一个常用的概念,它描述了一个系统在不同的离散状态之间转换的模型,在这个模型中,系统可以在多个状态之间根据预设的规则进行转换。在To B业务场景中,每个状态都代表了业务过程中的一个阶段或步骤,状态之间的转化则对应着从当前业务阶段向下一个阶段的过渡。
而在业务流程的状态机模型中,Function Call负责推动状态之间的转换和执行相关的业务逻辑,是实现状态转换、执行业务逻辑和处理业务流程中各种情况的关键机制,通过合理地设计和使用Function Call,可以确保业务流程的顺畅进行,并最终实现企业的业务目标,因此它起着至关重要的作用。

想情况下,Agent执行完Action后,还需要反馈给记忆模块(Memory)去更新记忆,从而能让Agent更好地处理复杂的任务和场景,提供更加智能和个性化的服务。
总结
2024年已过半,大语言模型能力特别是开源模型能力在不断增强、逐步追近GPT-4的水平,然而市场上可见的Agent仍然显得不智能。
主要是因为大语言模型的幻觉问题尚未得到有效解决——在完全没有引导的情况下,基于LLM的Agent很难做到“靠谱”,特别是在To B场景下,为了确保Agent的准确率,开发者构建的Agent更偏向自动化而非真正的自主化。
工具使用和个性化记忆两大基础设施的优化和提升有望改变上述状况。
同时应该聚焦以下两件事情:
集成Function Call的能力,让ToB场景下的Agent/数字员工具备选择工具、使用工具、反思工具的能力;
根据多层状态机构建一个目标定义以及怎样完成目标的学习算法。
Agent规划和完成目标的能力依赖于它在执行过程中的状态(State)和可采取的行动(Action)。特别是在业务流程自动化和数字员工的场景下,Agent为了有效地完成目标,还需要具备相应的领域知识,这些知识可以帮助Agent选择正确的Action,从而推动业务流程的自动化,并最终实现既定的目标。
相关文章:
AI-智能体基础设施
个性化记忆需要世界模型来协助构建 业界有一个精简的Agent表达公示,即:Agent大模型(LLM)记忆(Memory)主动规划(Planning)工具使用(Tool Use)。基于该公式&am…...
【docker】docker启动neo4j,并配置内存
注意下:--volume宿主机目录:/data 和 --publish宿主机port:7474 --publish宿主机port:7687 docker run -d \ --publish9801:7474 --publish9802:7687 \ --env NEO4J_AUTHneo4j/passwd \ --volume/opt/docker/data/vol-data/neo4j4.2:/data \ --restart always \ --…...
面试准备记录
6月26日 今日学习 MySQL的1-7题(中期报告,加上玩了游戏,就没有认真背题) 6月25日 今日复习 JVM的内存管理部分(1-31题) 6月24日 今日学习 类的生命周期?类加载过程?类加载器有…...
文件管理—linux(基础IO)
目录 编辑 一、C语言文件接口(库函数) hello.c写文件 hello.c读文件 输出信息到显示器 stdin & stdout & stderr 二、系统文件I/O(系统调用) hello.c 写文件: hello.c读文件 接口介绍 open open…...
【华为OD机试|01】最远足迹(Java/C/Py/JS)
目录 一、题目介绍 1.1 题目描述 1.2 备注: 1.3 输入描述 1.4 输出描述 1.5 用例 二、Java代码实现 2.1 实现思路 2.2 详细代码 2.3 代码讲解: 三、C语言实现 3.1实现步骤 3.2 实现代码 3.3 代码详解 四、Python实现 4.1 实现步骤 4.2 …...
conda安装管理配置
原文链接:conda管理配置 导言 安装卸载 卸载 卸载 docker sudo rm -r /opt/anaconda3 #conda安装位置安装 从镜像archive中下载sh脚本安装 bash ./software/Anaconda3-2024.02-1-Linux-x86_64.sh -b -p /opt/anaconda3 #conda安装位置管理 查看 conda --ver…...
鸿蒙开发HarmonyOS NEXT(一)
最近总听见大家讨论鸿蒙,前端转型的好方向?先入门学习下 目前官方版本和文档持续更新中 一、开发环境 提示:要占用的空间比较多,建议安装在剩余空间多的盘 1、下载:官网最新工具 - 下载中心 - 华为开发者联盟 (huaw…...
新能源革命风起云涌:创新科技引领可持续发展新篇章
随着全球气候变化和环境问题日益严峻,新能源革命正以其不可阻挡的势头,席卷着世界的每一个角落。 创新科技在这场革命中发挥着至关重要的作用,它不仅是新能源开发利用的引擎,更是推动可持续发展的关键力量。 新能源革命的核心在于…...
Java之TimeUnit类
1.TimeUnit类介绍 TimeUnit(时间单元)是一个描述时间单元的枚举类,在该枚举类中定义有以下的几个时间单元实例:天(DAYS)、时(HOURS)、分(MINUTES)、秒&#…...
【大数据】大数据时代的黎明
目录 前言 深入解读大数据的本质 大数据的起源与演进轨迹 大数据对社会经济的深远影响 经济领域的革新 社会治理与公共服务的智能化 创新体系的重构 面临的挑战与应对 前言 步入21世纪以来,人类文明正站在一个历史性的转折点上,迎来了大数据时代的…...
多接口分线盒在工业自动化中的重要性与应用
简介 多接口分线盒是现代工业自动化中不可或缺的一个组成部分,它主要用于简化复杂的接线系统,提高效率和可靠性。本文将详细探讨多接口分线盒的定义、功能、以及在工业自动化中的应用情况。 无源多接口分线盒 多接口分线盒的定义与功能 多接口分线盒是…...
C# Modbus设备信息加载的实现方式(2)
GlobalProperties是一个全局的数据,类似CoreData: public class GlobalProperties{public static Device Device { set; get; }public static Action<int, string> AddLog;public static SysAdmin CurrentAdmin;public static ModbusTCP Modbus { …...
mongoDB基本命令操作
文章目录 1. 安装(1). 启动mongodb(2). 数据库连接 2. 基本命令(1) 数据库操作(2) 集合操作(3) 文档操作1) 简单查询2) 条件查询3) 投影查询4) 文档更新5) 列值增长修改6) 删除文档7) 分页查询8) 排序查询9) 正则查询(模糊查询)10) 比较查询11) 包含查询 3. 索引(1) 执行计划 1…...
MySQL索引,事务
一.MySQL索引介绍 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址。在数据十分大的时候,索引可以大大加快查询的速度。这是因为使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该行数…...
嵌入式软件面试记录(5)
1.FreeRTOS使用,是自己移植的吗,移植过程中设置了多少个任务? 答:是自己移植的,从官网下载的包根据手册移植的。 主要涉及以下几个任务: 主任务:负责系统初始化和创建其他任务。创建队列任务点…...
Linux-笔记 OverlayFS文件系统入门
目录 前言 主要概念 工作原理 特点特性 1、上下合并 2、同名文件覆盖 3、同名目录合并 4、写时拷贝 实操入门 内核配置 挂载文件系统 验证 1、同名文件覆盖 2、同名目录合并 3、写时拷贝 1)验证新增文件或目录 2)验证修改文件 3&…...
Kubernetes面试整理-如何配置和使用Service, Ingress?
在 Kubernetes 中,Service 和 Ingress 是用于管理和暴露应用程序的网络访问的主要资源。以下是如何配置和使用 Service 和 Ingress 的详细指南: Service Service 是一种抽象,用于定义一组 Pod 的逻辑集合,并提供一种访问这些 Pod 的策略。Service 可以使应用程序内部或外部…...
深入浅出:NPM常用命令详解与实践
深入浅出地讲解npm常用命令及其实践,可以帮助开发者更好地理解和使用这个强大的Node.js 包管理工具。以下是一些常用的npm命令及其详细解释和实践案例: 1:初始化项目: 命令:npm init用途:生成一个package…...
IPv6 address status lifetime
IPv6 地址状态转换 Address lifetime (地址生存期) 每个配置的 IPv6 单播地址都有一个生存期设置,该设置确定该地址在必须刷新或替换之前可以使用多长时间。某些地址设置为“永久”并且不会过期。“首选”和“有效”生存期用于指定其使用期限和可用性。 自动配置的…...
OpenVINO部署
OpenVINO部署 什么是 OpenVINO?OpenVINO 的优势安装指南系统要求:安装步骤 环境设置部署示例代码优化和部署步骤详细部署示例 什么是 OpenVINO? OpenVINO(Open Visual Inference and Neural Network Optimization)是由…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
解析“道作为序位生成器”的核心原理
解析“道作为序位生成器”的核心原理 以下完整展开道函数的零点调控机制,重点解析"道作为序位生成器"的核心原理与实现框架: 一、道函数的零点调控机制 1. 道作为序位生成器 道在认知坐标系$(x_{\text{物}}, y_{\text{意}}, z_{\text{文}}…...
算法—栈系列
一:删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...
Mac flutter环境搭建
一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...
OpenHarmony标准系统-HDF框架之I2C驱动开发
文章目录 引言I2C基础知识概念和特性协议,四种信号组合 I2C调试手段硬件软件 HDF框架下的I2C设备驱动案例描述驱动Dispatch驱动读写 总结 引言 I2C基础知识 概念和特性 集成电路总线,由串网12C(1C、12C、Inter-Integrated Circuit BUS)行数据线SDA和串…...
LeetCode - 148. 排序链表
目录 题目 思路 基本情况检查 复杂度分析 执行示例 读者可能出的错误 正确的写法 题目 148. 排序链表 - 力扣(LeetCode) 思路 链表归并排序采用"分治"的策略,主要分为三个步骤: 分割:将链表从中间…...
如何使用CodeRider插件在IDEA中生成代码
一、环境搭建与插件安装 1.1 环境准备 名称要求说明操作系统Windows 11JetBrains IDEIntelliJ IDEA 2025.1.1.1 (Community Edition)硬件配置推荐16GB内存50GB磁盘空间 1.2 插件安装流程 步骤1:市场安装 打开IDEA,进入File → Settings → Plugins搜…...
