LangChain Agent:赋予 LLM 行动力的神秘力量

【AI大模型应用开发】【LangChain系列】5. 实战LangChain的智能体Agents模块 LangChain的智能体Agents模块实战,一步步拆解实现步骤。 阅读详情

image

LangChain Agent 是什么?有什么用?基本原理是什么?

那么多 Agent 类型在实际开发中又该如何选择?

如果以上有你想知道的答案,那么请往下看

那么如果没有呢?看看嘛,反正又不吃亏 (~ ̄▽ ̄)~

What & Why

丹尼尔:蛋兄,我又来了。今天主要想跟你深入了解下 LangChain 中的 Agent

蛋先生:Agent,知道中文是什么意思吗?

丹尼尔:这可难不倒我,我可是过了英文 8 (′▽`〃)… 4 级的男人。不就是代理的意思嘛

蛋先生:哈哈,你还挺自信的嘛。没错,Agent 就是代理。代理啥意思呢?小明代理小红去办理事务,就是小明因某些原因没法做这件事,需要小红出面去做这件事

丹尼尔:蛋兄,恕小弟我愚昧,还请更通俗易懂地展开说说

蛋先生:你知道大脑和身体的关系吗?

丹尼尔:大脑会思考,而身体会根据大脑的指令行动,比如拿东西,走路等。

蛋先生:说得没错。大脑本身缺乏行动能力,所以需要有身体来实现它的意图,这里可以把身体看成是大脑的代理

丹尼尔:这我明白,所以 Agent 就是 …

蛋先生:LLM 拥有强大的推理能力,就像我们的大脑。Agent 嘛,当然就像我们的身体。通过 Agent,就可以让 LLM 走起来。(⚆_⚆) 哦不,就可以让 LLM 拥有推理能力之外的其它能力

丹尼尔:概念上是理解了,这个推理能力之外的其它能力都有哪些呢,能举一个例子让我更加清晰吗?

蛋先生:你可以试下直接询问 LLM 当前时间,你觉得它回答得了吗?

丹尼尔:哦,这肯定不行,就算能回答也是胡说八道

蛋先生:恩,LLM 的知识受限于训练数据,实时信息是它的软肋。但有了 Agent,这个问题就难不倒它了

How

Agent 的基本原理

丹尼尔:哇哦,Agent 拥有让 LLM “走”起来的神奇力量,我对它是如何实现的好奇不已!

蛋先生:老规矩,先来瞧瞧一段代码示例

import os
from langchain import hub
from langchain.agents import create_structured_chat_agent
from langchain.agents import AgentExecutor
from datetime import datetime
from langchain.tools import tool
from langchain_community.chat_models.fireworks import ChatFireworks

@tool
def get_current_time() -> str:
    """Get the current time."""
    return str(datetime.now().strftime("%Y年%m月%d日 %H时%M分"))


os.environ["FIREWORKS_API_KEY"] = '<FIREWORKS_API_KEY>'
fw_chat = ChatFireworks(model="accounts/fireworks/models/llama-v2-70b-chat")
tools = [get_current_time]
prompt = hub.pull("hwchase17/structured-chat-agent")

agent = create_structured_chat_agent(fw_chat, tools, prompt)

agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
agent_executor.invoke({
   
   "input": "What's the date today?"})

丹尼尔:每个单词我都懂,毕竟我是过了英语 4 级的男人。但…你还是赶紧解释一下吧!

蛋先生:代码嘛,我就不多解释了。我只想通过简单地拆解下上面代码的内部工作流程,从而介绍 Agent 是如何运作的

第一步,Agent 将用户的问题直接扔给 LLM

image

第二步,LLM 推理出可以使用 get_current_time 这个小工具来回答这个问题,于是它用 JSON 的形式告诉 Agent 去执行这个工具。

image

第三步,Agent 将 get_current_time 工具的执行结果呈现给 LLM

image

最后一步,LLM 把工具的输出内容进行总结,然后把答案扔给 Agent。Agent 把这个答案呈现给用户,大功告成!

image

这是一个最简单的流程。然而,当面临更复杂的问题时,LLM 会将问题分解为若干子问题,然后通过不断循环第二步和第三步,逐个解决这些子问题,最后得到一个最终的答案。

丹尼尔:LLM 就是“大脑”,Agent 就是“身体”,Tool 就是“手脚”,这下完全理解了。那 LLM 的回答为何可以如此准确呢?

蛋先生:这可得感谢 Prompt 工程的功劳!

比如在 Prompt 中,会告诉 LLM 可以使用的小工具:

You have access to the following tools:

get_current_time: get_current_time() -> str - Get the current time.

Valid "action" values: "Final Answer" or get_current_time

还有比如在 Prompt 中,会告诉 LLM 用 JSON 格式返回:

Provide only ONE action per $JSON_BLOB, as shown:

{
  "action": $TOOL_NAME,
  "action_input": $INPUT
}

具体可以参考这个 Prompt 模板 【hwchase17/structured-chat-agent】

丹尼尔:666

Agent 类型这么多,如何抉择?

丹尼尔:我瞅了瞅官网上的 Agent 类型,简直让我眼花缭乱。我这个选择困难症患者该如何选呢?

image

蛋先生:首先,我们来梳理一下 LLM 和 Chat Model 这两个 model type 的区别。在 LangChain 中,LLM 和 Chat Model 的本质区别在于输入输出。LLM 的输入输出都是字符串,而 Chat Model 的输入输出都是 Message 实例。

丹尼尔:然后呢?

蛋先生:如果你对 OpenAI 的 API 比较熟悉,可以把 LLM 当做 Completions,把 Chat Model 当做 Chat Completions。

  • Completions
    image
  • Chat Completions
    image

由于 Completions 已经被标记为 Legacy(不建议使用),所以在实际应用中,建议使用 Chat Model 类型的 Agent 就可以了。

丹尼尔:哦,抛开 LLM 类型,还有 OpenAI Tools / OpenAI Functions / Structured Chat / JSON Chat。那这些又该如何选择呢?

蛋先生:OpenAI functions 参数已经过时了,建议使用 tools 参数。So,可以把 OpenAI Functions 类型排除掉

image

丹尼尔:好的,还剩下 OpenAI Tools / Structured Chat / JSON Chat。

蛋先生:如果你使用的是 OpenAI 的语言模型(实际上只要 API 支持 tools 参数的大语言模型都可以用此类型),那就选择 OpenAI Tools 类型的;否则就选用 Structured Chat。

Structured Chat 与 JSON Chat 的区别

丹尼尔:那 JSON Chat 类型呢?为啥直接无视它了?

蛋先生:Structured Chat 和 JSON Chat 的区别在于对 tool 入参类型的支持上。

JSON Chat 只支持一个参数的 tool,比如以下工具:

@tool
def search(query: str) -> str:
    """Look up things online."""
    return "LangChain"

如果是多参数的 tool,那你就得升级成 Structured Chat,比如如下工具:

@tool
def multiply(a: int, b: int) -> int:
    """Multiply two numbers."""
    return a * b

丹尼尔:哦,看起来 Structured Chat 已经包含了 JSON Chat 的功能了呀。

蛋先生:没错,但如果你用的大语言模型比较糟糕,可能就需要用 JSON Chat。因为对于大语言模型来说,调用只有一个参数的 tool 会更简单一些。不过现在的大语言模型只会变得越来越厉害,所以 Structured Chat 就可以了。

丹尼尔:好咧,我已经迫不及待要去试试了!

蛋先生:那,后会有期

丹尼尔:谢谢蛋兄,后会有期

程序员为什么要学大模型?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

继科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线 ↓

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容:

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容:

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容:

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容:

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉优快云大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

​

内网环境下 OpenSSL 与 OpenSSH 安全升级实战指南:从 9.9p2 离线部署到回滚方案 本文详细介绍了内网环境下OpenSSL与OpenSSH的安全升级实战指南,重点涵盖从9.9p2版本离线部署到回滚方案的全流程。通过备份策略、动态库处理、权限修复等关键步骤,确保升级过程安全可靠,特别适合金融、政务等敏感行业的内网服务器安全加固。 阅读详情

相关推荐

别再手动写ZPL了!用C#和斑马官方SDK搞定ZT410 RFID打印机(附中文乱码解决方案)

本文详细介绍了如何使用C#和斑马官方SDK驱动ZT410 RFID打印机,解决中文乱码和RFID数据写入等常见问题。通过实战指南,开发者可以快速掌握从基础连接到高级调试的全流程,提升打印效率和可靠性。特别适用于物流、零售和资产管理领域的应用。

weixin_29267307的博客 224

LLM大语言模型(十):LangChain自定义Agent使用自定义的LLM

独立部署ChatGLM3-6B并提供HTTP API能力。自定义LLM封装对ChatGLM3-6B的访问。创建一个简单的Agent来使用自定义的LLM。

hugo_lei的博客 3367

【CV论文精读】【协同感知综述】Collaborative Perception for Autonomous Driving :Current Status and Future Trend

感知是自动驾驶系统的关键模块之一,近年来取得了很大进展。然而,单个车辆的有限能力导致感知性能提高的瓶颈。为了突破个体感知的局限,协作感知被提出,它使车辆能够共享信息来感知视线和视野之外的环境。本文综述了有前途的协作感知技术的相关工作,包括介绍了基本概念,概括了协作模式,总结了协作感知的关键要素和应用。最后,我们讨论了这一研究领域面临的挑战和问题,并给出了一些潜在的进一步方向。

weixin_44184852的博客 4690

基于JSON的Ollama和LangChain agent

有趣的是,在实施自定义函数之后,我发现了一个现有的LangChain函数,它将自定义的Pydantic工具输入定义转换为Mixtral可以识别的JSON对象。正如提到的,大多数模型没有经过训练来产生行动输入或文本,如果不需要行动,我们必须使用当前可用的内容。它们共同使LLM能够提供更准确的推荐,随着时间的推移了解用户的偏好,并获得更广泛的最新信息,从而实现更具互动性和适应性的用户体验。正如提到的那样,除了在查询时能够检索到额外的信息外,它们还给LLM提供了一种影响他们环境的选择,例如在日历中预订会议。

myboyliu2007的专栏 3303

视频生成工具本地部署完全指南:Seedance能装吗?有哪些开源替代?

本文系统介绍了视频生成模型的本地部署方案,分为三个部分:1)Seedance 2.0的混合部署模式,其开源组件可本地集成但核心功能需调用API;2)完全开源替代方案对比,包括LTX-2、Wan 2.1等模型的硬件需求与特点;3)详细部署指南,以ComfyUI+Wan 2.1为例,涵盖软件准备、模型整合、参数调优等步骤,并提供了显存优化和多GPU配置技巧。文章为需要离线视频生成能力的用户提供了完整技术路径。

小明的博客 1万+

deepstream车道线检测自定义插件化,其中要注意pipeline的配置,如果插件位置配置不对,会报input format should be RGBA when using blur-obje

以上代码中,我们先从对象池中获取一个 DsUserMeta 对象,然后使用 get_lane_line_from_frame 函数获取车道线检测结果,并使用 add_lane_line_meta 函数将其添加到 DsUserMeta 对象中。注意,上述代码中的 get_lane_line_from_frame 函数和 add_lane_line_meta 函数需要你自己实现,用于从视频帧中提取车道线检测结果,并将其添加到 DsUserMeta 中。

pvmsmfchcs的博客 690

全民AI计划:通过langchain给LLM接上落地的大腿

langchain是一个开源项目。这个项目在GitHub上已经有45.5K个Star了。此项目由一位叫hwchase17的国外小哥在2022年底发布。我有理由相信,。

AI研究院 1645

华为OD技术面真题 - Python开发 - 2

汇总华为OD技术面八股Python八股,高频技术真题并提供详细解答。

qq_45776114的博客 910

LangChain Agent:赋予 LLM 行动力的神秘力量(附教程)

LangChain Agent:赋予 LLM 行动力的神秘力量(附教程)

huang9604的博客 1173

【中国大学生计算机设计大赛信息可视化赛道】国奖项目深入剖析—中国古代奇异怪兽移动端可视化应用项目

【中国大学生计算机设计大赛信息可视化赛道】国奖项目深入剖析—中国古代奇异怪兽移动端可视化应用项目 注:本文主要目的是对于往年国奖项目案例-可视化项目的深入剖析讲解,对源码、项目特点、要点、特色继续深入分析。帮助大家学习技术,掌握规律。

一键难忘的博客 3729

注意力机制模块:注意力机制新宠:EMA 注意力(高效多尺度注意力),即插即用,涨点明显

无降维成为共识:越来越多的研究者意识到,传统注意力机制的通道降维操作会造成不可逆的信息损失。EMA 提出的“保留每个通道信息”理念正在成为新一代注意力模块的设计标准。分组并行走向成熟:特征分组 + 并行处理的设计范式已在多个前沿架构中得到验证,兼顾了表达能力和计算效率。多尺度与跨空间融合:单纯的多尺度或单纯的跨空间交互都已无法满足复杂任务需求,两者的深度融合是当前的主流方向。边缘部署导向:2026 年的新论文越来越关注在资源受限设备上的高效运行,轻量化设计成为评估注意力模块的重要指标。

ZXSXJ的博客 949

LangChain Agent:赋予 LLM 行动力的神秘力量,大模型入门到精通,收藏这篇就足够了!

LangChain Agent:赋予 LLM 行动力的神秘力量,大模型入门到精通,收藏这篇就足够了!

2401_82469710的博客 672

【SpringBoot 3.x 第51节】带你玩转 GraalVM Native Image:启动快到飞起,内存省到心疼,你还不试试?

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1304

LangChain agent以及create_structured_chat_agent的用法入门

LangChain agent以及create_structured_chat_agent的用法入门

我的博客 1198

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

5分钟手把手系列(三):本地编写一个AI Agent(Langchain + Ollama)

正如笔者经常提及的论调,目前市面上大部分AI产品都仅在之前的产品流程中插入了一层AI逻辑,并未有实质性的突破应用场景落地,本文主旨也并不是希望所有同学都来学习AI相关的编程技术,仅仅是希望通过此篇文章,激发大家对AI技术一探究竟的兴趣,弄清楚AI运行过程中的一些底层逻辑,只有深入了解AI运行中各个环节原理,才有可能创造出更多创新性质的AI产品功能。

2401_85390073的博客 5052

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

最新LangChain+GLM4开发AI应用程序系列(二):Agent智能体篇

这篇文章是LangChain开发系列第二篇,Agent智能体篇。首先介绍了Agent是什么,以及Agent的核心思想。如果说LLM是大脑,那么Agent就是给大脑装上了手脚眼睛后的智能体。Agent的核心思想是使用LLM作为推理引擎,来动态的确定要采取哪些操作,使用哪些工具以及按什么顺序执行。然后通过一个使用六个工具的Agent智能体实战案例,分析了Agent的实现原理。希望能给大家起到一定的参考作用,同时也欢迎共同探讨。

悠杨的专栏 8295

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

使用 Langchain 和 Ollama 的 PDF 聊天机器人分步指南

介绍在技术不断改变我们与信息交互方式的时代,PDF 聊天机器人的概念将便利性和效率提升到了新的水平。本文深入探讨了使用 Langchain 和 Ollama 创建 PDF 聊天机器人的有趣领域,其中只需最少的配置即可访问开源模型。告别框架选择和模型参数调整的复杂性,我们踏上释放 PDF 聊天机器人潜力的旅程。了解如何无缝安装 Ollama、下载模型以及制作 PDF 聊天机器人,为你的查询提供智能响...

深度学习与计算机视觉 7390

LangChain与Agent实现

LangChain是一个开源框架,旨在帮助开发人员使用大型语言模型(LLMs)构建应用程序。它通过提供一系列工具、组件和接口,简化了创建由LLMs和聊天模型提供支持的应用程序的过程。有网友猜测,之所以选择鹦鹉作为 LangChain 的 logo,是因为大模型常被戏称为“随机鹦鹉”,即它只是模仿人类输出的文本,缺乏真正的理解能力。而 LangChain 则别出心裁地将鹦鹉(🦜)与链条(🔗)组合在一起,寓意其在提高大模型能力方面的作用。

小马过河R的博客 3689

LangChain Agent最全教程学习

LangChain Agent的终极指南,本教程是您使用 Python 创建第一个agent的重要指南,请立即开始你的 LLM 开发之旅。

2301_81888214的博客 3340

Python - 深度学习系列33 - ollama_langchain_ppt生成

1 可以参考langchain,进行增强。langchain本身还有agent的能力,继续融合后,是有可能完全不一样的。例如当你提到一个论点,agent可以自动查询实时数据,找到论据来support.2 ppt生成(及读取)。之前比较少用python操作ppt,现在看来,读和简单写应该是没问题的。

yukai08008的博客 2105

实用Agent开发教程:用LangChain和Gradio打造你的本地化AI助手

今天,我们就来聊聊什么是Agent,并亲手用langchain调用本地ollama模型构建一个简单的Agent,让你快速体验Agent开发的乐趣。

专注的力量 1762

开源AI新协议!AI Agent与前端交互的轻量级协议,轻松构建交互式AI应用!

AI Agent 的兴起让前端交互需求激增,但传统开发中,连接Agent后端与前端需大量定制代码,效率低下。 在 MCP(模型上下文协议)、A2A(Agent-to-Agent 通信协议)之后,AI Agent 的生态正在走向一个更完整的方向:AG-UI 协议横空出世,专为 Agent 与前端应用的通信交互而设计。

bugyinyin的博客 2053
上一篇: 无敌大模型入门文档:开源大模型食用指南,私有化大模型完美教程来了
下一篇: 大牛书单 |AI应用&大模型方向好书推荐
Llama-Turbo
博客等级 码龄4年 9901粉丝 2022原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值