小白学Agent技术[1]
文章目录
- 课程地址
- Agent介绍
- 原理
- 架构
- 任务规划
- 记忆
- 工具使用
- 程序开发范式的变化
- Agent开发注意事项
课程地址
- Agent课程地址
Agent介绍
- AI Agent(人工智能代理、AI智能体),一种模拟人类智能行为的人工智能系统,以大模型语言(LLM)作为其核心规划决策引擎,能够感知环境,做出决策,执行任务实现特定的目标。
原理
- Agents=LLM+memory+planning skills+tool use即大语言模型、记忆、任务规划、工具使用的集合。
架构
- 感知是Agent理解周遭世界的第一道工序。
吴恩达的AlAgents设计模式: - 感知(Perception):Agent通过感知系统从环境中收集信息,这这些信息可以是文本、图像、声音等多种形式。
- 规划(Planning):对问题进行拆解得到解决路径,既进行任务规划,类似于思维链,分解复杂任务,找到路径;
- 使用工具(Tool Use):评估所需的工具,进行工具选择并生成调用工具请求,这些行动可能是物理的,如机器人的移动,也可能是虚拟的,如软件系统的数据处理,我电脑里面的未归档文件做好归档;
- 协作(Multiagent Collaboration):多Agent,不同类型的助理(agent),可以通过协作组成一个团队或一家公司。
- 记忆(memory):短期记忆包括提示词上下文,工具的返回值,已经完成的推理路径;长期记忆包括可访问的外部长期存储,例如RAG知识库。
任务规划
- 子目标和拆解(Subgoal and decompositon):在处理复杂问题时,采用分治思想,将复杂问题拆分为多个并行或串行的小任务处理,从而提升处理复杂问题的能力。
- 反思和完善(Reflection and refinement):Agent能够对过去的行为决策进行自我反思,完善过去的行动决策和纠正以前的错误来迭代改进。
记忆
- 记忆可以定义为用于获取、存储、保留以及随后检索信息的过程。
- 短期记忆:多轮对话的上下文窗口、受到Transformer有限上下文窗口长度的限制。短期记忆理想情况只保留大模型能偶处理的上下文窗口的上线,如果使先进先出的模式,则只保留最近的几次对话内容。
- 长期记忆:可以立即为外置知识库,在Agent处理任务的过程中作为额外检索数据的地方。
工具使用
- 尽管大模型在预训练阶段学了大量知识,但是还存在只能说,不能做的缺陷。
- Agent对于工具的使用就是弥补大模型只说不做的缺陷。
- Agent可以调用外部API来获取模型权重中缺失的外部信息,包括当前时间,地理位置信息、代码执行能力、对专有知识库的访问。
- Agent的工作机制
- 接收任务:用户提交任务给Agent
- 组装提示词:Agent接受用户提交的任务后,对输入的信息进行架构处理合并为最终的prompt。
- 与大语言模型的区别:Agent 将处理后的prompt 提交给LLM,拿到下一步需要执行的动作和思考过程。
- 循环执行:Agent会执行LLM返回的Action、观察评估结果、获取下一步Action。执行的工程中会自主的判断是否需要使用工具来处理Action或者获取额外的信息。
程序开发范式的变化
-
本质上,所有的Agent设计模式都是将人类的思维、管理模式以结构化提示词的方式告诉大模型来进行规划,并调用工具执行,且不断选代的方法。从这个角度来说,Agent设计模式很像传统意义上的程序开发范式,但是泛化和场景通用性远大于传统的程序开发范式。在Agent设计模式中,Prompt可以类比为Python这类高级编程语言,大模型可以类比于程序语言编译&解释器
-
大模型时代,Alagent编程给IT行业带来的革命性的改变:
- 传统编程语言时代:以Java、C++、Rust等语言为典型代表,这个时代的软件开发最重要的一件事就是"抽象建模”
产品经理或者技术经理需要深刻地理解现实世界的业务场景和业务需求,然后将业务需求转化为逻辑流和数据流的处理逻辑,用编程语言进行抽象描述,并且明确定义输入和输出的字段和格式。然后将软件代码运行在一定的VM平台上,通过简单易用的UI交互向终端用户提供产品价值。 - ML/DL编程时代:在传统编程时代,程序员们遇到了一个棘手的问题,就是当面对一些超高维的复杂问题(例如图像识别、长文本处理)的时候,传统的if-else逻辑范式几乎无法解决此类问题。直到出现神经网络技术之后,程序员们可以通过训练一个神经网络(相当于开发一个程序)处理图像/文本问题。
- 但是在这个范式中,现实世界的业务场景和软件代码的逻辑之间依然存在非常巨大的鸿沟,建模、UML流程图这些传统编程中必不可少的步骤依然阻碍了软件的大规模应用。
- AlAgent编程时代:进入大模型编程时代,现实世界和软件逻辑世界的鸿沟被无限缩短,原本用于描述和表征现实世界的自然语言、图片、音频等模态语言,可以直接以代码的形态,被大模型这种新型的程序解释器解释并执行。
- 在AlAgent编程时代,改变的是建模范式,不变的是数据流和逻辑流。
Agent开发注意事项
- Agent的规划能力依赖于prompt工程能力,它比想象中更重要、执行起来也更琐碎。
- LLM的数学、逻辑推理能力在COT的基础上也仅能勉强达到及格水平,所以不要让Agent一次性做复杂的推理性规划工作,而是把复杂任务人工拆解后再教给Agent。该论点随着基模的逐步发展和强大可能逐步重要性降低。
- Agent 的 Action 能力强烈依赖于基座模型的 function calling 能力。
- 在规划Agent之前,对模型的function calling能力要充分调研。
- Agent的记忆力分为短期记忆和长期记忆。
- 短期记忆由prompt负责(in-context learning),类似 Plan and resolve 模式中的"碎碎念",告诉Agent已完成事项和原始目标。
- 在长期记忆中,事实性记忆用RAG实现(外部知识库),程序性记忆可用微调或者增量预训练实现(向模型中注入知识)。
- Agent的反思能力依赖于它的记忆能力。
- 用一张图来表示,其中绿色代表对Agent开发友好,红色代表对Agent应用开发有一些难以逾越的阻碍因素,需要靠产品降级来解决。
相关文章:
小白学Agent技术[1]
文章目录 课程地址Agent介绍原理架构任务规划记忆工具使用程序开发范式的变化Agent开发注意事项 课程地址 Agent课程地址 Agent介绍 AI Agent(人工智能代理、AI智能体),一种模拟人类智能行为的人工智能系统,以大模型语言&#…...
以商业思维框架为帆,驭创业浪潮前行
创业者踏入商海,如同航海家奔赴未知海域,需有清晰的思维罗盘指引方向。图中“为什么—用什么—怎么做—何人做—投入产出”的商业框架,正是创业者破解商业谜题的密钥,从需求洞察到落地执行,为创业之路铺就逻辑基石。 …...
开源宝藏 Tigshop,开启电商新征程
在电商竞争愈发激烈的当下,一个强大且适配的商城系统是商家制胜的法宝。 Tigshop官网:Tigshop官网 - 开源商城系统Tigshop开源商城系统,支持b2b2c、多商户、多店铺、商家入驻、分销系统、跨境电商、连锁商城等解决方案,免费下载&…...
java多线程实现方式
目录 1. 继承 Thread 类 2. 实现 Runnable 接口 3. 实现 Callable 接口 4. 使用线程池 5. 使用 CompletableFuture(Java 8) 6. 使用 ForkJoinPool(Java 7) 7. 使用 Timer 和 TimerTask 8. 使用 ScheduledExecutorService …...
windows:curl: (60) schannel: SEC_E_UNTRUSTED_ROOT (0x80090325)
目录 1. git update-git-for-windows 报错2. 解决方案2.1. 更新 CA 证书库2.2. 使用 SSH 连接(推荐)2.3 禁用 SSL 验证(不推荐) 1. git update-git-for-windows 报错 LenovoLAPTOP-EQKBL89E MINGW64 /d/YHProjects/omni-channel-…...
python:pymunk + pygame 模拟六边形内小球弹跳运动
向 chat.deepseek.com 提问:编写 python 程序,用 pymunk, 有一个正六边形,围绕中心点缓慢旋转,六边形内有一个小球,六边形的6条边作为墙壁,小球受重力和摩擦力、弹力影响,模拟小球弹跳运动&…...
vulnhub靶场之【digitalworld.local系列】的vengeance靶机
前言 靶机:digitalworld.local-vengeance,IP地址为192.168.10.10 攻击:kali,IP地址为192.168.10.6 kali采用VMware虚拟机,靶机选择使用VMware打开文件,都选择桥接网络 这里官方给的有两种方式ÿ…...
shiro550-cve-2016-4437复现
shiro550-cve-2016-4437 复现环境:docker desktop idea远程调试jdk版本必须与容器里的jdk1.8.0_102 匹配上,下载资源翻我CC1链那篇文章 注意burpsuite的proxy listeners端口改一下别跟docker容器的重了。 ysoserial工具:https://github.c…...
【DeepSeek】Ubuntu快速部署DeepSeek(Ollama方式)
文章目录 人人都该学习的DeepSeekDeepSeek不同版本功能差异DeepSeek与硬件直接的关系DeepSeek系统兼容性部署方式选择部署步骤(Ollama方式)1.选定适合的deepseek版本2.环境准备3.安装Ollama4.部署deepseek5.测试使用 人人都该学习的DeepSeek DeepSeek 作…...
Windows 版本Nmap使用报错“无法打开device eth0”
背景 使用nmap在win10上进行扫描工作正常,换到win server 2012 r2以后,扫描报错“无法打开device eth0” 使用了重装、重启大法,未彻底解决 PS:这台服务器之前完装过wireshark,实际已经安装了npcap 解决步骤 查询了…...
java字符串
字符串构造 1.使用常量串构造 String h1 "hello";System.out.println(h1); 2.new对象 String h2 new String("hello");System.out.println(h2); 3.使用字符数组构造 char[] array {h,e,l,l,o};String h3 new String(array);System.out.println(h3);…...
Uniapp 页面返回不刷新?两种方法防止 onShow 触发多次请求!
目录 前言1. 变量(不生效)2. 延迟(生效) 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 在 Uniapp 中,使用 onShow() 钩子来监听页面显示࿰…...
鸿蒙生态日日新,夸克、顺丰速运、驾校一点通等多款应用功能更新
3月5日鸿蒙生态日日新PLOG:吉事办、健康甘肃等政务服务App上架原生鸿蒙应用市场;夸克、顺丰速运、驾校一点通等多款应用功能更新。...
库制作与原理
什么是库 库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入…...
《量子Java:从超导芯片到光子计算的编程革命》——解析Google量子AI中心的混合架构,揭秘如何用Java控制量子比特!
标题:《量子Java:从超导芯片到光子计算的编程革命》——解析Google量子AI中心的混合架构,揭秘如何用Java控制量子比特! 引言:当Java代码撞上量子叠加态——Google量子AI中心的0.003秒奇迹 Google量子AI中心首次实现Java程序对1200量子比特光量子芯片的实时控制,仅耗时3毫…...
音频3A测试--AGC(自动增益)和NS(降噪)测试
一、测试前期准备 一台电脑:用于作为控制播放和录制数据; 一台音频处理器(调音台):控制每个通道播放的数据,如噪声、人工头、模拟设备B输入的数据、收集标准麦克风,设备A处理完成的数据; 四个高保真音响&…...
点云数据处理--splat转3dtiles
文章目录 处理流程简介核心功能实现数据读取与格式转换数据读取splat转gltf 点云数据分割定义四叉树递归生成3dtiles瓦片 生成tileset.json递归生成tileset.json计算box 主函数调用渲染 下一步工作性能优化渲染效果调优其他 源码地址: github 处理流程简介 基本流…...
deepseek使用记录18——艺术的追问
一 好的,基于前面学习结果,再写一篇有艺术美的文章 《美的起义》 凌晨四点的茶摊在电子支付二维码下苏醒,蒸腾的水汽中浮动着八百年前建盏的釉色。老板娘把栀子花插在共享单车车筐里,花瓣的弧度与北宋汝窑青瓷的冰裂纹暗合&…...
ArcGIS操作:13 生成最小外接矩阵
应用情景:筛选出屋面是否能放下12*60m的长方形,作为起降场候选点(一个不规则的形状内,判断是否能放下指定长宽的长方形) 1、面积初步筛选 Area ≥ 720 ㎡ 面积计算见 2、打开 ArcToolbox → Data Management Tools …...
Manus AI Agent 技术解读:架构、机制与竞品对比
目录 1. Manus 是什么? 1.1 研发背景 1.2 技术特点 1.3 工具调用能力 1.4 主要应用场景 2. Manus 一夜爆火的原因何在? 2.1 技术突破带来的震撼 2.2 完整交付的产品体验 2.3 生态与开源策略 3. Manus 与其他 AI Agent 的对比分析 3.1 技术架构…...
npm 执行安装报错
Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution. 原因 主要的原因是 npm7 以上的版本,新增了一个对等依赖的特性,在以…...
Django 模型的逆向工程
模型的逆向工程:通过 inspectdb 命令从数据库表创建 Django 模型 在Django开发中,模型(Model)是定义数据库结构的关键组件。通常,我们根据业务需求先设计模型,然后通过Django的迁移系统创建相应的数据库表…...
启动wsl里的Ubuntu24报错:当前计算机配置不支持 WSL2,HCS_E_HYPERV_NOT_INSTALLED
问题:启动wsl里的Ubuntu24报错 报错信息: 当前计算机配置不支持 WSL2。 请启用“虚拟机平台”可选组件,并确保在 BIOS 中启用虚拟化。 通过运行以下命令启用“虚拟机平台”: wsl.exe --install --no-distribution 有关信息,请访…...
Electron:点击右键保存图片到本地
前期插件 前端请求后台的一种方法 npm install got -S用于获取ArrayBuffer文件类型 npm install image-type -S生成随机数 npm install randomstring -D增加右击事件 点击右击事件的时候加载菜单 const imageRightSave require("./ImageRightSave") // 创建右…...
C语言中0UL和1UL
0UL 表示 无符号长整型 0 1UL 表示 无符号长整型 1 如果不写UL后缀,系统默认为:int, 即,有符号整数。 数值常数分为:整型常数和浮点常数; 数值常数后缀不区分字母大小写; 1.整型常数的后缀:…...
6. 机器人实现远程遥控(具身智能机器人套件)
1. 启动控制脚本 远程作到 Raspberry Pi 中,并运行以下脚本: conda activate lerobotpython lerobot/scripts/control_robot.py \--robot.typelekiwi \--control.typeremote_robot登录笔记本电脑上,同时运行以下脚本: conda ac…...
C++ 学生成绩管理系统
一、项目背景与核心需求 成绩管理系统是高校教学管理的重要工具,本系统采用C++面向对象编程实现,主要功能模块包括: 学生信息管理(学号/姓名/3门课程成绩) 成绩增删改查(CRUD)操作 数据持久化存储 统计分析与报表生成 用户友好交互界面 二、系统架构设计 1. 类结构设计 …...
网络安全配置截图 网络安全i
网络安全概念及规范 1.网络安全定义 网络安全的概述和发展历史 网络安全 广义的网络安全:Cyber Security(网络空间安全) 网络空间有独立且相互依存的信息基础设施和网络组成,包括互联网、电信网、计算机系统、嵌入式处理器和控…...
Facebook营销自动化—— Python脚本 + 代理IP实现内容高效分发
目录 1. 引言:内容分发与Facebook营销的现状与痛点 2. 环境搭建与前期准备 2.1 开发环境与工具选择 2.2 获取代理IP 2.3 Facebook账号与开发者平台配置 3. Facebook内容分发的基本流程与策略 3.1 内容规划与策略制定 3.2 内容分发方式选择 3.3 风控与风险防…...
Centos的ElasticSearch安装教程
由于我们是用于校园学习,所以最好是关闭防火墙 systemctl stop firewalld systemctl disable firewalld 个人喜欢安装在opt临时目录,大家可以随意 在opt目录下创建一个es-standonely-docker目录 mkdir es-standonely-docker 进入目录编辑yml文件 se…...
香港地区上线独立多用户电商平台系统需要注意哪些问题
在香港地区上线独立多用户电商平台系统时,需结合本地化需求、技术架构、法律合规及用户体验等多方面因素,以下是需要注意的关键问题及建议: 一、技术架构与服务器部署 服务器配置与带宽选择 根据业务规模选择合适的香港服务器配置࿰…...
元宇宙展厅应用场景有哪些?
元宇宙展厅作为元宇宙技术的重要应用场景之一,正在彻底改变人们的展示、学习与交流方式。其应用场景主要包括以下几个方面: 一、企业展览与营销 产品展示:企业可以利用元宇宙展厅搭建虚拟展示空间,通过高精度的3D建模和虚拟现实技…...
XGBoost常见面试题(五)——模型对比
XGBoost与GBDT的区别 机器学习算法中 GBDT 和 XGBOOST 的区别有哪些? - 知乎 基分类器:传统GBDT以CART树作为基分类器,xgboost还支持线性分类器,这个时候xgboost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题&#…...
如何在WPS中接入DeepSeek并使用OfficeAI助手(超细!成功版本)
目录 第一步:下载并安装OfficeAI助手 第二步:申请API Key 第三步:两种方式导入WPS 第一种:本地大模型Ollama 第二种APIKey接入 第四步:探索OfficeAI的创作功能 工作进展汇报 PPT大纲设计 第五步:我的使用体验(体验建议) …...
重学 Android 自定义 View 系列(十一):文字跑马灯剖析
前言 一个可以横向滚动和纵向滚动的自定义文字跑马灯View,支持水平和垂直滚动、多段文本展示、点击事件回调等功能。 该View 由 ScrollTextView,改版而来,效果如下: 1. 功能介绍 ScrollTextView 是基于 SurfaceView 的自定义视…...
Android硬件加速原理解析
Android硬件加速原理解析 一、核心思想 GPU与CPU分工 硬件加速的本质是将图形渲染任务从CPU转移到GPU,利用GPU的并行计算能力处理像素填充、矩阵变换等密集型图形操作12。CPU负责逻辑计算,GPU专注于图形处理,避免单一资源瓶颈57。 图形计算优化 GPU通过专…...
Oracle SQL优化实战要点解析(11)——索引、相关子查询及NL操作(1)
11.1. 充分利用索引有序特性,避免发生大表上的FTS,以及对中间大数据集的排序。 11.1.1. 适用场景 从一个或多个大表(例如:亿行级或TB级数据量)中过滤出全列大数据集(例如:数百万或千万行数据),对该大数据集按其中某列进行排序,最终,只取最前面的少部分数据(例如:…...
题解:AT_past202109_h 最短経路
思路 这一眼就是最短路的题目啊。 为什么不用 Dijkstra 用 死了的 SPFA。因为好写 。 这一题的数据比较小。可以暴力枚举最短路的起点,跑 SPFA,找到符合的直接输出,结束程序。随机数据下 SPFA 平均的时间复杂度为 O ( k n ) O(kn) O(kn)…...
JavaScript基础-算数运算符
在JavaScript编程中,算术运算符是构建程序逻辑的基础工具之一,它们用于执行基本的数学运算,如加法、减法、乘法和除法等。掌握这些运算符不仅有助于进行数值计算,也是编写复杂逻辑的前提条件。本文将详细介绍JavaScript中的各种算…...
Doris vs ClickHouse 企业级实时分析引擎怎么选?
Apache Doris 与 ClickHouse 同作为OLAP领域的佼佼者,在企业级实时分析引擎该如何选择呢。本文将详细介绍 Doris 的优势,并通过直观对比展示两者的关键差异,同时分享一个企业成功用 Doris 替换 ClickHouse 的实践案例,帮助您做出明…...
flask学习3-深入
flask学习-深入 flask学习-深入1. 应用程序结构和生命周期 — Flask 文档 (3.1.x)2.应用程序上下文 — Flask 文档 (3.1.x)3. 请求上下文 — Flask 文档 (3.1.x)上下文的生命周期手动推送上下文关于代理的注意事项4.使用蓝图的模块化应用程序 — Flask 文档 (3.1.x)5.扩…...
任务10:三层交换机配置
CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?typeblog三层交换机是指在OSI(开放系统互连)模型中的第三层网络层提供路由功能的交换机。它不仅具备二层交换机的交换功能,还能实现路由功能,提供更为灵活的网…...
XSD 对 XML 数据格式验证 java
xsd文件,文件名bean.xsd,放在当前java文件目录下 <?xml version"1.0" encoding"UTF-8"?> <xs:schema xmlns:xs"http://www.w3.org/2001/XMLSchema"><xs:element name"bean"><xs:comple…...
深度学习笔记——神经网络
本文为在拓尔思智能举办的训练营中学习内容的总结,部分内容摘自百度百科 个人在这里推荐一个好用的软件,Trae,主要是免费。 人工神经元是人工神经网络的基本单元。模拟生物神经元,人工神经元有1个或者多个输入(模拟多…...
大语言模型学习--向量数据库
向量数据库 向量 向量是多维数据空间中的一个坐标点。 向量类型 图像向量 文本向量 语音向量 Embedding 非结构化数据转换为向量过程 通过深度学习训练,将真实世界离散数据,投影到高维数据空间上,通过数据在空间中间的距离体现真实世界…...
蓝桥杯 封闭图形个数
蓝桥杯 封闭图形个数 题目 链接 解答 # 数字个数 n int(input()) # 数字 ls input().split() # 统计数字的圈数 o_nums {} for i, x in enumerate(ls):o_num 0for c in x:if int(c) in [0, 4, 6, 9]:o_num 1elif c 8:o_num 2o_nums[i] o_num # 字典根据圆圈数排序 …...
c++快速入门-2
算数运算符 赋值运算符“” 赋值运算符概念 将一个值赋给一个变量。 例:a3;//将3这个值赋给a 赋值是从右向左,都是赋值表达式。 错误示范:3a;//不符合从右向左 b-25;//“”左边只能有一个变量名&…...
URL中的特殊字符与web安全
在现代Web应用中,URL作为客户端与服务器之间的通信桥梁,承载着大量的重要信息。URL中的特殊字符,看似只是一些常见的符号,但在Web安全领域,它们与其他安全知识密切相关,如在Base64编码、SQL注入,…...
Python ❀ Unix时间戳转日期或日期转时间戳工具分享
设计一款Unix时间戳和日期转换工具,其代码如下: from datetime import datetimeclass Change_Date_Time(object):def __init__(self, date_strNone, date_numNone):self.date_str date_strself.date_num date_num# 转时间戳def datetime2timestamp(s…...
H.264,H.265,H.266标准技术改进
关于H.264,H.265,H.266相关资料链接: 标准及中文资料链接 视频编码中的主要技术 视频编码的目标是在保证视频质量的前提下,尽可能减少数据量。以下是视频编码中的核心技术: 块划分(Block Partitioning) 将视频帧划分…...