如何学习ai agent?

如何学习Agent,推荐阅读《动手做AI Agent》这本书。

推荐理由:

1:一本书能够全方位了解并探索Agent的奥秘!

(1)Agent的发展进程。

(2)可以帮我们做哪些事:自动办公,个性化推荐,流程的自动化与资源的优化等。

(3)了解如何用Agent提升各行业的效能以及Agent所能带来新的商业模式和变革。

(4)Agent的发展前景:下一代Agent的诞生地,即科研论文中的新思路。

2:动手从0到1做AI Agent,7个实例全方位解析Agent的设计与实现!

(1)基于大模型的Agent技术框架:Agent四大要素,规划和决策能力,调用工具,ReAct框架等。

(2)初识OpenAI API、LangChain和LlamaIndex。

(3)7个实例,从自动化办公到多功能选择的引擎,从实现自动定价到智能调度库存,技术路线全面。

3:进阶Agent开发能力,零距离接触GPT-4模型、LangChain等尖端技术!

(1)全面学习LangChain架构:ReAct框架,Plan-and-Execute等。

(2)全面学习LlamaIndex:提示工程、RAG与微调等。

(3)GitHub的网红聚落:AutoGPT、BabyAGI和CAMEL。

(4)多Agent框架:AutoGen,MetaGPT。

随着技术的进步,我们开始期待更多:我们所向往的是一个不仅把人工智能生成内 容视为工作的一部分,还将人工智能作为连接更加复杂任务的关键纽带的时代。

这种愿景正是 Agent诞生的起点。

在探索人工智能的奥秘和可能性的征程中,Zhen Fund(真格基金)认为生成式人 工智能应用需要经历表 1 所示的 5 个层级。

目前流行的 Chat GP T 和 Copilot 分别位于 L2 和 L3,可以将它们视为一种初级 的 Agent。ChatGPT 能够根据对话上下文(记忆)来响应提示输入的操作,向人类展 示有价值的对话,而 Copilot 通过与人类协作,可以在多个层面上提升完成相应任务的 效能。

从 L3 到 L4 的跨越是一个从被动到自主的分水岭,在这个跨越过程中, Agent 将 成为关键的驱动力。

未来的 Agent 将不仅仅是内容生成工具。它们将整合人工智能模型、海量数据和 多样化的工具,从而能执行各种任务,完成不同的工作。这些 Agent 跨越单纯的内容 生成的界限,开始涉足决策制定和行动实施等领域。无论是解读复杂指令、规划策略、 拆解任务,还是执行实现目标的具体步骤,它们都将展现出独特的自主性和适应性。更 为关键的是,这些 Agent 能够接入并灵活运用多种辅助工具和数据资源,从而大幅拓 宽工作领域和提高工作能力。

尽管构建 Agent 的基石已经准备就绪,但 Agent 的技术发展仍处于萌芽阶段。开 发者需要进行深入思考并动手实践,以确立 Agent 的开发框架、Agent 访问工具的方 式、与数据交互的方式,以及如何对话以完成具体任务。这些问题的答案将塑造未来 Agent 的形态和能力。

在解锁 Agent的巨大潜力的过程中,我们需要深入探讨以下几个关键问题。

■ Agent 如何在各行各业中提升效率以及创造机会和更多可能性?

■ 在众多的 Agent 框架中,如何选择适合自己需求的框架?

■ 在解决现实世界的问题时,如何实施 Agent 才最有效?

■ 自主 Agent 如何改变我们对人工智能驱动的任务管理的认知和实践?

目前无论是学术界还是产业界,对人工智能应用开发的关键问题远未达成共识。本 书或许可以作为读者深入探讨上述问题的漫长旅途的开端。本书旨在从技术和工具层面 阐释 Agent 设计的框架、功能和方法,具体涉及如下技术或工具。

■ Open AI API 以 及 Open AI Assistants :用 于 调 用 包 含 GP T -4 模 型 和 DALL ·E 3 模型在内的众多人工智能模型。

■ LangCha in :开源框架,旨在简化构建基于语言的人工智能应用的过程,其中 包含对 ReAct 框架的封装和实现。

■ Llama Index :开源框架,用于帮助管理和检索非结构化数据,利用大模型的 能力和 Agent 框架来提高文本检索的准确性、效率和智能程度。

这些技术和工具都可以用于构建 Agent,它们通过接口连接大模型,为 Agent 提 供语言理解、内容生成和决策支持的能力。通过它们, Agent 可以支持多种外部工具, 进而执行复杂任务以及与环境进行交互。

除了介绍 Agent的框架和开发工具之外,本书还将通过 7 个实操项目,带领读者学习前沿的 Agent实现技术。这 7 个项目分别如下:

Agent 1:自动化办公的实现——通过 Assistants API 和 DALL ·E 3 模型创 作 PPT。

■ Agent 2:多功能选择的引擎——通过 Function Calling 调用函数。

■ Agent 3:推理与行动的协同——通过 LangChain 中的 ReAct 框架实现自动 定价。

■ Agent 4: 计 划 和 执 行 的 解 耦 —— 通 过 Lang Chain 中 的 Play - and - Execute 实现智能调度库存。

■ Agent 5:知识的提取与整合——通过 LlamaIndex 实现检索增强生成 Agent。

■ Agent 6:GitHub 的网红聚落——AutoGPT、BabyAGI 和 CAMEL。

■ Agent 7:多 Agent 框架——AutoGen 和 MetaGPT。

详细目录

第 1章 何谓Agent,为何Agent 001

1.1 大开脑洞的演讲:Life 3.0 001

1.2 那么,究竟何谓Agent 003

1.3 Agent的大脑:大模型的通用推理能力 006

1.3.1 人类的大脑了不起 006

1.3.2 大模型出现之前的Agent 007

1.3.3 大模型就是Agent的大脑 008

1.3.4 期望顶峰和失望低谷 010

1.3.5 知识、记忆、理解、表达、推理、反思、泛化和自我提升 012

1.3.6 基于大模型的推理能力构筑AI应用 015

1.4 Agent的感知力:语言交互能力和多模态能力 016

1.4.1 语言交互能力 016

1.4.2 多模态能力 016

1.4.3 结合语言交互能力和多模态能力 017

1.5 Agent的行动力:语言输出能力和工具使用能力 017

1.5.1 语言输出能力 017

1.5.2 工具使用能力 018

1.5.3 具身智能的实现 019

1.6 Agent对各行业的效能提升 019

1.6.1 自动办公好助手 020

1.6.2 客户服务革命 020

1.6.3 个性化推荐 020

1.6.4 流程的自动化与资源的优化 021

1.6.5 医疗保健的变革 021

1.7 Agent带来新的商业模式和变革 022

1.7.1 Gartner的8项重要预测 023

1.7.2 Agent即服务 024

1.7.3 多Agent协作 025

1.7.4 自我演进的AI 026

1.7.5 具身智能的发展 026

1.8 小结 027

第 2章 基于大模型的Agent技术框架 029

2.1 Agent的四大要素 029

2.2 Agent的规划和决策能力 031

2.3 Agent的各种记忆机制 032

2.4 Agent的核心技能:调用工具 033

2.5 Agent的推理引擎:ReAct框架 035

2.5.1 何谓ReAct 035

2.5.2 用ReAct框架实现简单Agent 038

2.5.3 基于ReAct框架的提示 040

2.5.4 创建大模型实例 043

2.5.5 定义搜索工具 044

2.5.6 构建ReAct Agent 044

2.5.7 执行ReAct Agent 045

2.6 其他Agent认知框架 047

2.6.1 函数调用 047

2.6.2 计划与执行 048

2.6.3 自问自答 048

2.6.4 批判修正 048

2.6.5 思维链 048

2.6.6 思维树 048

2.7 小结 049

第3章 OpenAI API、LangChain和LlamaIndex 051

3.1 何谓OpenAI API 052

3.1.1 说说OpenAI这家公司 052

3.1.2 OpenAI API和Agent开发 055

3.1.3 OpenAI API的聊天程序示例 057

3.1.4 OpenAI API的图片生成示例 063

3.1.5 OpenAI API实践 065

3.2 何谓LangChain 067

3.2.1 说说LangChain 068

3.2.2 LangChain中的六大模块 073

3.2.3 LangChain和Agent开发 074

3.2.4 LangSmith的使用方法 075

3.3 何谓LlamaIndex 077

3.3.1 说说LlamaIndex 077

3.3.2 LlamaIndex和基于RAG的AI开发 078

3.3.3 简单的LlamaIndex开发示例 081

3.4 小结 084

第4章 Agent 1:自动化办公的实现——通过Assistants API和DALL·E 3模型创作PPT 085

4.1 OpenAI公司的Assistants是什么 086

4.2 不写代码,在Playground中玩Assistants 086

4.3 Assistants API的简单示例 090

4.3.1 创建助手 091

4.3.2 创建线程 095

4.3.3 添加消息 097

4.3.4 运行助手 099

4.3.5 显示响应 103

4.4 创建一个简短的虚构PPT 105

4.4.1 数据的收集与整理 106

4.4.2 创建OpenAI助手 106

4.4.3 自主创建数据分析图表 108

4.4.4 自主创建数据洞察 112

4.4.5 自主创建页面标题 114

4.4.6 用DALL·E 3模型为PPT首页配图 115

4.4.7 自主创建PPT 116

4.5 小结 121

第5章 Agent 2:多功能选择的引擎——通过Function Calling调用函数 122

5.1 OpenAI中的Functions 122

5.1.1 什么是Functions 123

5.1.2 Function的说明文字很重要 124

5.1.3 Function定义中的Sample是什么 124

5.1.4 什么是Function Calling 126

5.2 在Playground中定义Function 127

5.3 通过Assistants API实现Function Calling 130

5.3.1 创建能使用Function的助手 131

5.3.2 不调用Function,直接运行助手 133

5.3.3 在Run进入requires_action状态之后跳出循环 140

5.3.4 拿到助手返回的元数据信息 141

5.3.5 通过助手的返回信息调用函数 141

5.3.6 通过submit_tool_outputs提交结果以完成任务 143

5.4 通过ChatCompletion API来实现Tool Calls 147

5.4.1 初始化对话和定义可用函数 148

5.4.2 第 一次调用大模型,向模型发送对话及工具定义,并获取响应 149

5.4.3 调用模型选择的工具并构建新消息 151

5.4.4 第二次向大模型发送对话以获取最终响应 153

5.5 小结 154

第6章 Agent 3:推理与行动的协同——通过LangChain中的ReAct框架实现自动定价 156

6.1 复习ReAct框架 156

6.2 LangChain中ReAct Agent 的实现 159

6.3 LangChain中的工具和工具包 160

6.4 通过create_react_agent创建鲜花定价Agent 162

6.5 深挖AgentExecutor的运行机制 166

6.5.1 在AgentExecutor中设置断点 166

6.5.2 第 一轮思考:模型决定搜索 169

6.5.3 第 一轮行动:工具执行搜索 175

6.5.4 第二轮思考:模型决定计算 179

6.5.5 第二轮行动:工具执行计算 180

6.5.6 第三轮思考:模型完成任务 182

6.6 小结 185

第7章 Agent 4:计划和执行的解耦——通过LangChain中的Plan-and-Execute实现智能调度库存 186

7.1 Plan-and-Solve策略的提出 186

7.2 LangChain中的Plan-and-Execute Agent 190

7.3 通过Plan-and-Execute Agent实现物流管理 192

7.3.1 为Agent定义一系列进行自动库存调度的工具 192

7.3.2 创建Plan-and-Execute Agent并尝试一个“不可能完成的任务” 193

7.3.3 完善请求,让Agent完成任务 200

7.4 从单Agent到多Agent 203

7.5 小结 204

第8章 Agent 5:知识的提取与整合——通过LlamaIndex实现检索增强生成 205

8.1 何谓检索增强生成 206

8.1.1 提示工程、RAG与微调 206

8.1.2 从技术角度看检索部分的Pipeline 208

8.1.3 从用户角度看RAG流程 209

8.2 RAG和Agent 210

8.3 通过LlamaIndex的ReAct RAG Agent实现花语秘境财报检索 211

8.3.1 获取并加载电商的财报文件 211

8.3.2 将财报文件的数据转换为向量数据 211

8.3.3 构建查询引擎和工具 213

8.3.4 配置文本生成引擎大模型 214

8.3.5 创建 Agent以查询财务信息 214

8.4 小结 215

第9章 Agent 6:GitHub的网红聚落——AutoGPT、BabyAGI和CAMEL 216

9.1 AutoGPT 217

9.1.1 AutoGPT简介 217

9.1.2 AutoGPT实战 218

9.2 BabyAGI 222

9.2.1 BabyAGI简介 222

9.2.2 BabyAGI实战 224

9.3 CAMEL 236

9.3.1 CAMEL简介 236

9.3.2 CAMEL论文中的股票交易场景 237

9.3.3 CAMEL实战 241

9.4 小结 248

第 10章 Agent 7:多Agent框架——AutoGen和MetaGPT 250

10.1 AutoGen 250

10.1.1 AutoGen简介 250

10.1.2 AutoGen实战 253

10.2 MetaGPT 256

10.2.1 MetaGPT简介 256

10.2.2 MetaGPT实战 257

10.3 小结 263

附录A 下一代Agent的诞生地:科研论文中的新思路 264

A.1 两篇高质量的Agent综述论文 264

A.2 论文选读:Agent自主学习、多Agent合作、Agent可信度的评估、边缘系统部署以及具身智能落地 266

A.3 小结 267

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/20757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

码随想录算法训练营第二十四天| 77. 组合

77. 组合 - 力扣&#xff08;LeetCode&#xff09; class Solution {ArrayList<Integer> path new ArrayList<>();ArrayList<List<Integer>> result new ArrayList<>();public List<List<Integer>> combine(int n, int k) {if(n &…

15-通过JS代码处理窗口滚动条

selenium并不是万能的&#xff0c;页面上有些操作无法实现时&#xff0c;就需要借助JS代码来完成了。selenium提供了一个方法&#xff1a;execute_script()&#xff0c;可以执行JS脚本代码。 比如&#xff1a;当页面上的元素超过一屏后&#xff0c;想操作屏幕下方的元素&#x…

[leetcode hot 150]第一百零八题,将有序数组转换为二叉搜索树

题目&#xff1a;给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡二叉搜索树。 给定一个有序的整数数组,我们需要构建一棵平衡的二叉搜索树。平衡二叉树是指任意一个节点的左右子树的高度差不超过1。 由于给定的数组是有序的…

Prime1 - 提权的另一种解法,彻底搞懂OpenSSL解密渗透提权,超强思路版。

提权枚举 现在我们直接从低权限用户开始&#xff1b;我们先按照提权步骤&#xff0c;简单的系统枚举 虽然我们知道可以利用系统版本低进行内核提权&#xff0c;内核提权虽然比较快比较方便&#xff0c;但也比较暴力&#xff0c;缺点非常明显&#xff1b;很容易导致系统服务中…

【云原生】Kubernetes----POD控制器

目录 引言 一、Pod控制器概述 二、Pod控制器的种类 &#xff08;一&#xff09;ReplicaSet &#xff08;二&#xff09;Deployment &#xff08;三&#xff09;StatefulSet &#xff08;四&#xff09;DaemonSet &#xff08;五&#xff09;Job 三、使用POD控制器 &a…

【Seafile】Seafile容器版文件删除后存储空间不释放问题解决

Seafile是一款非常优秀的网盘系统&#xff0c;我们可以根据官方文档&#xff0c;在本地虚拟机研究Seafile免费版的安装和使用&#xff0c;安装建议采用使用docker容器的方式。 不过在使用过程中&#xff0c;刚接触的小伙伴可能会遇到这样的问题&#xff1a; 删除网盘里面的文…

C++设计模式-状态模式

文章目录 28. 状态模式 运行在VS2022&#xff0c;x86&#xff0c;Debug下。 28. 状态模式 状态模式让一个对象的行为随着内部状态的改变而改变&#xff0c;而该对象也像换了类一样。应用&#xff1a;如在游戏开发中&#xff0c;游戏有不同场景&#xff0c;如主菜单、开始、战斗…

Houdini的PythonScript基本使用

前言 Houdini内置了Python脚本和相应的编辑器, 很多时候想灵活的制作各种Houdini工具, 基本是必须用到 Python。Houdini官方的python提供了非常完善的接口, 比如可以创建各种节点&#xff0c;连接各种节点&#xff0c;遍历节点各种数据&#xff0c;遍历节点参数等等。 Houdin…

word避免画质画质模糊方法

问题描述&#xff1a;   近期写文档时会高频率贴图&#xff0c;粘图过程中发现Word会自动压缩图片画质&#xff0c;而且压缩得很严重&#xff0c;下面是一幅图被压缩前后的画质对比 &#xff08;图片压缩前&#xff09; &#xff08;图片压缩后&#xff09; 解决方案&#x…

基于JSP的九宫格日志网站

你好呀&#xff0c;我是学长猫哥&#xff01;如果有需求可以文末加我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;浏览器/服务器&#xff08;B/S&#xff09;结构 系统展示 首页 管理员功能模块 用户功能模块 摘要 本…

GPT-4o VS GPT-3.5 完胜

前言&#xff1a; 最近&#xff0c;GPT-4o已经限时免费开放了&#xff0c;试了一下&#xff0c;然后&#xff0c;说我的时间到了&#xff0c;然后&#xff0c;有给我转到3.5&#xff0c;正好遇到一个问题做一下对吧&#xff0c;感觉4O完胜啊。3.5还是很好胡诌&#xff0c;也就…

[Algorithm][动态规划][子序列问题][最长定差子序列][最长的斐波那契子序列的长度]详细讲解

目录 1.最长定差子序列1.题目链接2.算法原理详解3.代码实现 2.最长的斐波那契子序列的长度1.题目链接2.算法原理详解3.代码实现 1.最长定差子序列 1.题目链接 最长定差子序列 2.算法原理详解 思路&#xff1a; 确定状态表示 -> dp[i]的含义 以i位置元素为结尾的所有子序列…

11.2 选择排序

目录 11.2 选择排序 11.2.1 算法特性 11.2 选择排序 选择排序&#xff08;selection sort&#xff09;的工作原理非常简单&#xff1a;开启一个循环&#xff0c;每轮从未排序区间选择最小的元素&#xff0c;将其放到已排序区间的末尾。 设数组的长度为 &#x1d45b;…

华东师范大学研究团队《Ecology Letters 》揭示植物如何改变其物候以响应全球变化

自工业革命以来&#xff0c;人类活动导致多种环境因子同时发生变化&#xff0c;包括气候变暖、降水模式改变、氮沉降增加和大气CO2升高。这些变化预计会影响植物生命周期事件的季节时序—植物物候&#xff08;Nature Reviews Earth & Environment | 傅伯杰院士团队发文阐述…

[C][栈帧]详细讲解

目录 1.栈帧1.进程地址空间2.栈帧说明 2.认识相关寄存器3.认识相关汇编命令4.过程理解5.栈帧总结6.补充 1.栈帧 1.进程地址空间 .进程地址空间 2.栈帧说明 调用函数&#xff0c;形成栈帧函数返回&#xff0c;释放栈帧局部变量是存放在栈区上的栈区内存的使用习惯是&#xff…

BPTT算法详解:深入探究循环神经网络(RNN)中的梯度计算【原理理解】

引言 在深度学习领域中&#xff0c;我们经常处理的是独立同分布&#xff08;i.i.d&#xff09;的数据&#xff0c;比如图像分类、文本生成等任务&#xff0c;其中每个样本之间相互独立。然而&#xff0c;在现实生活中&#xff0c;许多数据具有时序结构&#xff0c;例如语言模型…

什么是PLAB?

接上文PLAB---》 可以看到和TLAB很像&#xff0c;PLAB即 Promotion Local Allocation Buffers。用在年轻代对象晋升到老年代时。 在多线程并行执行YGC时&#xff0c;可能有很多对象需要晋升到老年代&#xff0c;此时老年代的指针就"热"起来了&#xff0c;于是搞了个…

函数的创建和调用

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 提到函数&#xff0c;大家会想到数学函数吧&#xff0c;函数是数学最重要的一个模块&#xff0c;贯穿整个数学学习过程。在Python中&#xff0c;函数…

深入解析 YOLOv8 中的 `conv.py`(代码图文全解析-下)

&#x1f60e; 作者介绍&#xff1a;我是程序员行者孙&#xff0c;一个热爱分享技术的制能工人。计算机本硕&#xff0c;人工制能研究生。公众号&#xff1a;AI Sun&#xff0c;视频号&#xff1a;AI-行者Sun &#x1f388; 本文专栏&#xff1a;本文收录于《yolov8》系列专栏&…

【linux软件基础知识】与调度相关的进程描述符

进程描述符 每个进程描述符都包括几个与调度相关的字段,如下代码所示: //include/asm-arm/thread_info.h /** low level task data that entry.S needs immediate access to.* __switch_to() assumes cpu_context follows immediately after cpu_domain.*/ struct thread_in…