Langchain的Agents介绍


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/514/

请添加图片描述

(封面图由文心一格生成)

Langchain的Agents介绍

一、核心概念:
Langchain的Agents核心理念是使用语言模型来选择一系列的动作。与硬编码的动作链不同,Agents利用语言模型作为推理引擎,确定采取哪些动作以及顺序。

二、主要组成部分:

  1. Agent: 负责决定下一步采取的动作,由语言模型和提示驱动。输入包括:可用工具的描述、用户高层目标和为达到用户目标而执行的任何动作和工具输出对。
  2. Tools: Agents可以调用的函数。关键在于提供适当的工具并以对Agent有帮助的方式描述这些工具。LangChain提供了一系列内置工具,并简化了自定义工具的定义。
  3. Toolkits: 针对常见任务,Agent可能需要一组相关工具。LangChain提供了诸如GitHub toolkit之类的工具集,以实现特定目标。
  4. AgentExecutor: Agent的运行时,负责调用Agent,执行它选择的动作,并将动作输出反馈给Agent。此过程涵盖处理Agent选择不存在的工具、工具错误以及无法解析为工具调用的输出等复杂情况。

三、构建Agent:

  1. 使用LangChain表达式语言(LCEL)从头开始构建Agent,定义自定义工具,并在自定义循环中运行Agent和工具。
  2. 设置LangSmith,以便在构建时自动跟踪内置或自定义Agent的所有步骤和工具输入输出。
  3. 定义Agent:例如,使用OpenAI Function Calling创建能够计算单词长度的自定义工具。这是创建Agent的可靠方式。
  4. 使用Agent:通过传递简单的问题和空白的中间步骤,来测试Agent的反应。
  5. 使用AgentExecutor类简化过程,它整合了错误处理、提前停止、跟踪等质量提升措施。
  6. 添加记忆:为了使Agent能够记住之前的交互并轻松处理后续问题,需要向Agent中添加记忆功能。

以上是Langchain的Agents模块的概览,涵盖了其核心概念、组成部分、以及如何构建和使用Agent。这些功能为开发者提供了强大且灵活的工具,以实现更复杂的自动化任务和流程。

四、Agent类型介绍:
Langchain提供多种类型的Agents,每种都有其独特的应用和特点:

  1. Zero-shot ReAct: 使用ReAct框架根据工具的描述来决定使用哪个工具。需要为每个工具提供描述。这是最通用的动作代理。

  2. Structured input ReAct: 能够使用多输入工具的代理。与旧代理不同,它可以使用工具的参数模式创建结构化的动作输入。这对于复杂工具的使用(如精确导航浏览器)非常有用。

  3. OpenAI Functions: 专为与特定OpenAI模型(如gpt-3.5-turbo-0613和gpt-4-0613)协作而设计。这些模型已被明确地微调,以便在需要调用函数时检测并响应应传递给函数的输入。

  4. Conversational: 用于对话设置的代理。其提示旨在使代理有助于对话。它使用ReAct框架来决定使用哪个工具,并使用记忆功能来记住之前的对话互动。

  5. Self-ask with search: 使用名为Intermediate Answer的单一工具来查找问题的事实答案。这种代理类似于原始的自问自答搜索论文,其中提供了Google搜索API作为工具。

  6. ReAct document store: 使用ReAct框架与文档存储进行互动。必须提供两种工具:SearchLookupSearch工具用于搜索文档,而Lookup工具用于在最近找到的文档中查找术语。此代理与原始ReAct论文中的Wikipedia示例相当。

这些Agents类型展示了Langchain在实现复杂自动化任务和流程方面的灵活性和强大功能。


❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

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

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

相关文章

Redis -- 介绍

1、NoSQL: 指的是非关系型数据库,主要分成四大类:键值存储数据库、列存储数据库、文档型数据库、图形数据库。 2、什么是Redis: Redis是一种基于内存的数据库,一般用于做缓存的中间件。 3、Redis的主要的特点: 1、Rd…

一、TIDB基础

TIDB整个逻辑架构跟MYSQL类似,如下: TIDB集群:相当于MYSQL的数据库服务器,区别是MYSQL数据库服务器为单进程的,TIDB集群为分布式多进程的。 数据库:同MYSQL数据库,数据库属于集群,…

SSL握手失败的解决方案

一、SSL握手失败的原因: 1,证书过期:SSL证书有一个有效期限,如果证书过期,就会导致SSL握手失败。 2,证书不被信任:如果网站的SSL证书不被浏览器或操作系统信任,也会导致SSL握手失败…

线性代数的艺术

推荐一本日本网友Kenji Hiranabe写的《线性代数的艺术》。这本书是基于MIT大牛Gilbert Strang教授的《每个人的线性代数》制作的。 虽然《线性代数的艺术》这本书仅仅只有12页的内容,就把线性代数的重点全画完了,清晰明了。 《线性代数的艺术》PDF版本&…

mysql 变量和配置详解

MySQL 中还有一些特殊的全局变量,如 log_bin、tmpdir、version、datadir,在 MySQL 服务实例运行期间它们的值不能动态修改,也就是不能使用 SET 命令进行重新设置,这种变量称为静态变量。数据库管理员可以使用前面提到的修改源代码…

ErphpdownV16.21插件 安装教程和插件下载

ErphpdownV16.21插件下载_新版本 上传插件并解压 登入后台插件管理启动ErphpdownV16.21插件即可 启动后设置即可使用此版本为学习版插件 功能介绍: Erphpdown会员推广下载专业版 经过完美测试运行于wordpress 3.x-6.x版本。后续会增加更多实用的功能。已针对此插件…

Windows IDEA Python开发环境安装+爬虫示例

文章目录 Python下载安装开发工具IDEA包管理安装pip基本用法从 requirements.txt 安装依赖 项目示例部署在 Linux 上安装Python在 Linux 上创建虚拟环境:安装依赖:运行你的爬虫 Python下载安装 Python 安装包下载地址:https://www.python.or…

Oracle登录认证方式详解

文章目录 一、简介二、OS认证三、口令认证四、remote_login_passwordfile 详解 一、简介 在数据库管理中,登录认证是确保数据库安全性的重要环节。Oracle数据库提供 了两种认证方式,一种是“操作系统认证”,一种是“口令文件认证&#xff0c…

智安网络|如何最大限度地提高企业网络安全水平

在当今数字化时代,企业面临着日益复杂和智能化的网络威胁。为了保护企业的机密信息和客户数据,漏洞扫描成为了一个至关重要的安全措施。然而,对于企业来说,他们最关心的是什么问题呢? 一、漏洞的发现和修复 在网络安全…

路径规划之Best-First Search算法

系列文章目录 路径规划之Dijkstra算法 路径规划之Best-First Search算法 路径规划之Best-First Search算法 系列文章目录前言一、Best-First Search算法1.1 起源1.2 过程 三、简单使用 前言 Best-First Search算法和Dijkstra算法类似,都属于BFS的扩展或改进 一、…

基于官方YOLOv4开发构建目标检测模型超详细实战教程【以自建缺陷检测数据集为例】

本文是关于基于YOLOv4开发构建目标检测模型的超详细实战教程,超详细实战教程相关的博文在前文有相应的系列,感兴趣的话可以自行移步阅读即可:《基于yolov7开发实践实例分割模型超详细教程》 《YOLOv7基于自己的数据集从零构建模型完整训练、…

Linux技能篇-非交互式修改密码

今天的文章没有格式,简单分享一个小技能,就是标题所说–非交互式修改密码。 一、普通方式修改用户密码 最普通的修改密码的命令就是passwd命令 [rootlocalhost ~]# passwd root Changing password for user root. New password: Retype new password:…

一文彻底看懂Python切片,Python切片理解与操作

1.什么是切片 切片是Python中一种用于操作序列类型(如列表、字符串和元组)的方法。它通过指定起始索引和结束索引来截取出序列的一部分,形成一个新的序列。切片是访问特定范围内的元素,就是一个Area。 说个笑话:切片不是切片,而是切片,但是又是切片。大家理解下呢(末…

【云原生 Prometheus篇】Prometheus的动态服务发现机制

自动发现 一、Prometheus服务发现 理论部分1.1 Prometheus数据采集配置1.2 基于文件的服务发现1.3 基于consul的服务发现1.4 基于 Kubernetes API 的服务发现1.4.1 概念1.4.2 部分配置参数1.4.3 配置模板 二、实例一:部署基于文件的服务发现2.1 创建用于服务发现的文…

uniapp 轮播图(含组件封装,自动注册全局组件)

效果预览 组件封装 src\components\SUI_Swiper.vue 可参考官网配置更多属性 swipernavigator <script setup lang"ts"> import { ref } from vue defineProps({config: Object, })const activeIndex ref(0) const change: UniHelper.SwiperOnChange (e) &…

一起学docker系列之八使用 Docker 安装配置 MySQL

目录 前言步骤 1&#xff1a;拉取 MySQL 镜像步骤 2&#xff1a;运行 MySQL 容器步骤 3&#xff1a;检查容器状态步骤 4&#xff1a;进入 MySQL 容器步骤 5&#xff1a;配置 MySQL 字符编码步骤 6&#xff1a;重启 MySQL 容器步骤 7&#xff1a;测试字符编码步骤 8&#xff1a;…

防止应用程序截屏(容器式,防止极域电子教室和录屏软件录制)

核心原理、实现目的 1、使用Panel容器将外部窗口嵌入自己写的程序 2、使用防止截屏的函数来对窗口透明&#xff0c;这可以使本窗口内所有窗口在录屏软件上消失 3、解放&#xff0c;抓取&#xff0c;存储句柄&#xff0c;实现摆脱录屏&#xff08;极域监控&#xff09; 程序…

用 Addon 增强 Node.js 和 Electron 应用的原生能力

前言 Node.js Addon 是 Node.js 中为 JavaScript 环境提供 C/C 交互能力的机制。其形态十分类似 Java 的 JNI&#xff0c;都是通过提供一套 C/C SDK&#xff0c;用于在 C/C 中创建函数方法、进行数据转换&#xff0c;以便 JavaScript / Java 等语言进行调用。这样编写的代码通常…

Spring - Mybatis-设计模式总结

Mybatis-设计模式总结 1、Builder模式 2、工厂模式 3、单例模式 4、代理模式 5、组合模式 6、模板方法模式 7、适配器模式 8、装饰者模式 9、迭代器模式 虽然我们都知道有26个设计模式&#xff0c;但是大多停留在概念层面&#xff0c;真实开发中很少遇到&#xff0c;…

【数据结构】时间和空间复杂度

马上就要进入到数据结构的学习了 &#xff0c;我们先来了解一下时间和空间复杂度&#xff0c;这也可以判断我们的算法是否好坏&#xff1b; 如何衡量一个算法的好坏&#xff1f; 就是看它的算法效率 算法效率 算法效率分析分为两种&#xff1a;第一种是时间效率&#xff0c;第…