零基础学AI大模型之Agent智能体

零基础学AI大模型之Agent智能体
大家好,我是工藤学编程 🦉一个正在努力学习的小博主,期待你的关注
实战代码系列最新文章😉C++实现图书管理系统(Qt C++ GUI界面版)
SpringBoot实战系列🐷【SpringBoot实战系列】SpringBoot3.X 整合 MinIO 存储原生方案
分库分表分库分表之实战-sharding-JDBC分库分表执行流程原理剖析
消息队列深入浅出 RabbitMQ-RabbitMQ消息确认机制(ACK)
AI大模型零基础学AI大模型之RunnableBranch

前情摘要

1、零基础学AI大模型之读懂AI大模型
2、零基础学AI大模型之从0到1调用大模型API
3、零基础学AI大模型之SpringAI
4、零基础学AI大模型之AI大模型常见概念
5、零基础学AI大模型之大模型私有化部署全指南
6、零基础学AI大模型之AI大模型可视化界面
7、零基础学AI大模型之LangChain
8、零基础学AI大模型之LangChain六大核心模块与大模型IO交互链路
9、零基础学AI大模型之Prompt提示词工程
10、零基础学AI大模型之LangChain-PromptTemplate
11、零基础学AI大模型之ChatModel聊天模型与ChatPromptTemplate实战
12、零基础学AI大模型之LangChain链
13、零基础学AI大模型之Stream流式输出实战
14、零基础学AI大模型之LangChain Output Parser
15、零基础学AI大模型之解析器PydanticOutputParser
16、零基础学AI大模型之大模型的“幻觉”
17、零基础学AI大模型之RAG技术
18、零基础学AI大模型之RAG系统链路解析与Document Loaders多案例实战
19、零基础学AI大模型之LangChain PyPDFLoader实战与PDF图片提取全解析
20、零基础学AI大模型之LangChain WebBaseLoader与Docx2txtLoader实战
21、零基础学AI大模型之RAG系统链路构建:文档切割转换全解析
22、零基础学AI大模型之LangChain 文本分割器实战:CharacterTextSplitter 与 RecursiveCharacterTextSplitter 全解析
23、零基础学AI大模型之Embedding与LLM大模型对比全解析
24、零基础学AI大模型之LangChain Embedding框架全解析
25、零基础学AI大模型之嵌入模型性能优化
26、零基础学AI大模型之向量数据库介绍与技术选型思考
27、零基础学AI大模型之Milvus向量数据库全解析
28、零基础学AI大模型之Milvus核心:分区-分片-段结构全解+最佳实践
29、零基础学AI大模型之Milvus部署架构选型+Linux实战:Docker一键部署+WebUI使用
30、零基础学AI大模型之Milvus实战:Attu可视化安装+Python整合全案例
31、零基础学AI大模型之Milvus索引实战
32、零基础学AI大模型之Milvus DML实战
33、零基础学AI大模型之Milvus向量Search查询综合案例实战
33、零基础学AI大模型之新版LangChain向量数据库VectorStore设计全解析
34、零基础学AI大模型之相似度Search与MMR最大边界相关搜索实战
35、零基础学AI大模型之LangChain整合Milvus:新增与删除数据实战
36、零基础学AI大模型之LangChain+Milvus实战:相似性搜索与MMR多样化检索全解析
37、零基础学AI大模型之LangChain Retriever
38、零基础学AI大模型之MultiQueryRetriever多查询检索全解析
39、零基础学AI大模型之LangChain核心:Runnable接口底层实现
40、零基础学AI大模型之RunnablePassthrough
41、零基础学AI大模型之RunnableParallel
42、零基础学AI大模型之RunnableLambda
43、零基础学AI大模型之RunnableBranch


本文章目录

零基础学AI大模型之Agent智能体

一、 Agent智能体:不止会“聊天”,更会“自己干活”的AI

之前我们学过的大模型(LLM),大多是“你问我答”的模式——给它输入指令,它返回文本,但没法主动解决复杂问题。而Agent智能体,是给大模型装上“手脚”和“记性”,让它从“聊天工具”变成能自主决策、执行任务的“虚拟打工人”。

简单说,Agent是具备自主决策能力的AI系统:通过“感知环境→分析信息→调用工具→执行动作”的闭环,独立完成从目标到结果的全流程。
核心公式特别好记(结合我们之前学的LangChain工具就能理解):
Agent = 大语言模型(LLM,大脑) + 工具(Tools,手脚) + 记忆(Memory,记性)

类比下更直观:

  • 常规LLM:像个“只会答题的学霸”,问啥答啥,但不会动手做;
  • Agent:像个“能独立干活的员工”,知道要做什么、该用什么工具、记得之前做过什么,能自己把事办成。

二、 Agent核心架构:闭环决策,自主执行

Agent能“自己干活”,全靠这套闭环架构在支撑,和我们之前学的LangChain链路能无缝衔接:

在这里插入图片描述

每个环节的作用都很清晰:

  1. 大模型推理:相当于“大脑思考”,分析用户需求,判断该做什么、用什么工具;
  2. 工具选择/执行:调用我们定义的工具(比如天气API、日历、数据库,就是之前LangChain里的Tool);
  3. 记忆系统:存之前的交互记录、任务进度(对应LangChain的Memory);
  4. 知识库:存专业知识(比如医学论文、学习资料,可对接之前学的RAG系统);
  5. 结果验证:检查工具执行结果是否符合需求,不行就调整方案,直到完成任务。

三、 Agent和常规LLM的核心区别:一张表看明白

用我们熟悉的“对比法”,一看就知道Agent强在哪,和之前学的LLM差异点很清晰:

维度常规LLMAgent智能体
交互方式单轮问答(问一句答一句)多轮决策链(像聊天一样逐步推进任务)
能力范围只做文本生成(答题、写文案)工具调用+环境交互(能操作外部系统)
记忆机制短期上下文(只记当前对话几句)长期记忆存储(记全程任务进度、历史)
输出形式自然语言(文字回答)结构化动作序列(工具调用指令+结果)
应用场景内容创作、简单问答复杂任务自动化(安排会议、诊断辅助)

四、 实战对比:常规LLM和Agent差在哪?

光说不练假把式,用3个真实场景测试下,差异一眼就出来了(和我们平时用大模型的体验很像):

测试用例传统LLM响应Agent响应
“北京天气”“北京当前气温12℃”“北京当前晴,12℃,早晚凉,建议穿外套”
“明天需要带伞吗”“无法获取实时天气信息”自动调用天气API:“明天北京降水概率10%,不需要带伞”
“上周三天气如何”报错/答非所问(无历史数据)自动切换历史天气库:“上周三北京晴,气温8-18℃”

核心差异:Agent能“自主解决问题”,而常规LLM只会“答题”,解决不了需要“动手操作”的需求。

五、 Agent典型应用场景:从医疗到教育,落地就能用

Agent不是空谈,已经能落地到很多场景,结合我们之前学的技术,很容易上手实战:

5.1 医疗行业:诊断辅助Agent(对接RAG更高效)

传统医疗系统的痛点很明显:

  • 基于固定规则,复杂症状不会判;
  • 知识更新慢(靠人工更论文);

记不住患者历史诊疗记录。

在这里插入图片描述

Agent方案正好解决这些问题:

# 基于LangChain实现,和之前学的AgentExecutor完全一致from langchain.agents import AgentExecutor from langchain.memory import ConversationBufferMemory # 定义医疗工具(症状分析、论文检索、检查建议) tools =[ SymptomAnalyzerTool(),# 症状分析工具 MedicalLiteratureTool(),# 医学论文检索(对接RAG,查最新论文) LabTestRecommenderTool()# 检查建议工具]# 记忆系统:存患者诊疗历史 memory = PatientHistoryMemory()# 构建医疗Agent medical_agent = AgentExecutor( tools=tools, memory=memory, llm=我们之前定义的大模型(如ChatOpenAI) )# 交互示例:和之前调用LangChain Agent完全一样 response = medical_agent.invoke({"input":"患者女35岁,持续低烧两周,伴有关节痛","history":"既往有类风湿病史"})# 输出结果(Agent自主决策后的结果)print(response)# 结果:建议进行抗核抗体检测+推荐风湿免疫科专科医生(自动查了最新论文,结合历史病史)

Agent关键能力:

  • 实时查最新医学论文(对接RAG,解决知识更新慢);
  • 记患者历史病史(Memory);
  • 自动生成检查建议(调用工具)。

5.2 教育行业:个性化学习Agent(适配学习路径)

在这里插入图片描述

传统在线教育的问题:学习路径固定,不管学生学没学会,都按固定步骤来(比如下面这段硬编码逻辑):

// 传统固定学习路径:硬编码逻辑,不灵活publicclassLearningService{publicStringgetNextStep(String userId){int score = db.getUserScore(userId);// 查学生分数if(score <60){return"重新学习第三章";// 分数不够就复读}return"进入第四章";// 够了就下一章}}

Agent方案能实现“个性化指导”,还能对接我们学的知识图谱、RAG:

# 基于LangChain实现个性化学习AgentclassTutorAgent:# 定义学习工具(知识图谱、习题推荐、学习风格分析) tools =[ KnowledgeGraphTool(),# 知识图谱(查知识点关联) ExerciseRecommenderTool(),# 习题推荐(对接题库) LearningStyleAnalyzerTool()# 学习风格分析(看适合视频/图文)]defguide_student(self, studentQuery):# 动态决策:和我们之前学的Agent推理逻辑一致# 1. 用KnowledgeGraphTool分析学生薄弱点(比如“没懂第三章函数”)# 2. 用LearningStyleAnalyzerTool判断学习风格(比如“适合视频学习”)# 3. 用ExerciseRecommenderTool生成对应习题return self.agent_executor.invoke(studentQuery)# 调用示例:学生说“第三章函数没懂” agent = TutorAgent() response = agent.guide_student("第三章函数没懂,我喜欢看视频")print(response)# 输出:推荐函数教学视频+3道基础习题+知识点图谱(完全个性化)

Agent关键能力:

  • 动态调路径(懂了就快学,不懂就补学);
  • 多模态推荐(视频/图文/实验,按学习风格来);
  • 自动生成错题分析(记在记忆里,后续针对性补)。

六、 LangChain实战Agent:10行代码实现“安排户外会议”

在这里插入图片描述

结合我们之前学的LangChain,动手写个Agent实战案例——让Agent帮我们安排“北京明天的户外会议”,要考虑天气、查日历,和之前学的Tool、AgentExecutor完全衔接,能直接跑(模拟环境):

6.1 实战代码(可直接复用)

# 导入之前学的LangChain模块from langchain.agents import AgentExecutor, create_react_agent, Tool from langchain import hub from langchain.chat_models import ChatOpenAI # 1. 定义工具(天气查询、日历访问,和之前学的Tool定义一样)defget_weather_api_data(city, date):"""模拟调用天气API,返回天气信息(实际可对接真实API)"""returnf"{date}{city}晴,气温22℃,适合户外活动"defread_google_calendar(date):"""模拟访问日历,返回空闲时段(实际可对接谷歌/企业日历)"""returnf"{date}下午空闲时段:14:00-16:00"# 工具列表(和我们之前定义的Tool格式完全一致) tools =[ Tool( name="WeatherCheck", func=lambda x: get_weather_api_data("北京", x),# 固定查北京 description="查询指定日期的天气,参数是日期(如“明天”)"), Tool( name="CalendarAccess", func=lambda x: read_google_calendar(x), description="查询指定日期的空闲时段,参数是日期(如“明天”)")]# 2. 初始化大模型(用之前学的ChatOpenAI) llm = ChatOpenAI(temperature=0, model="gpt-3.5-turbo")# 3. 加载React Prompt(Agent决策用,LangChain Hub现成的) prompt = hub.pull("hwchase17/react")# 4. 构建Agent(和之前学的create_react_agent一致) agent = create_react_agent(llm=llm, tools=tools, prompt=prompt)# 5. 执行Agent:让它安排明天北京的户外会议 agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) result = agent_executor.invoke({"input":"帮我安排明天北京的户外会议,需要考虑天气情况"})# 输出结果print("最终安排结果:", result["output"])

6.2 Agent决策过程:看它是怎么“思考”的

Verbose设为True后,能看到Agent的决策过程,和我们想问题的逻辑一样:

  1. 我需要安排明天北京的户外会议,首先得知道明天天气怎么样——调用“WeatherCheck”工具,参数“明天”;
  2. 工具返回“明天北京晴,气温22℃,适合户外活动”——天气没问题,接下来查明天下午的空闲时段;
  3. 调用“CalendarAccess”工具,参数“明天”;
  4. 工具返回“明天下午空闲时段:14:00-16:00”——综合天气和空闲时间,选个合适的时间;
  5. 输出最终结果:建议将会议安排在明天下午15:00,天气预报显示晴,气温22℃。

是不是很神奇?不用我们一步步指挥,Agent自己就把“查天气→查日历→定时间”的事全办成了,和我们之前学的LangChain技术完全打通。

七、 小结:Agent的核心价值——让AI从“能说”到“能做”

这篇我们学了Agent智能体,核心就是一句话:给大模型装上手脚(工具)和记性(记忆),让它从“只会答题”变成“能独立干活”

它和我们之前学的LangChain、RAG、Memory能无缝衔接——工具就是LangChain的Tool,记忆就是LangChain的Memory,知识库就是RAG系统,所以学完之前的内容,上手Agent特别容易。

如果本文对你有帮助,欢迎点赞+关注+收藏🌟 ,有任何问题或实战需求,欢迎在评论区留言交流~ 我是工藤学编程,陪你从零到一玩转AI大模型!🚀

Read more

【算法通关指南:数据结构与算法篇】二叉树相关算法题:1.美国血统 American Heritage 2.二叉树问题

【算法通关指南:数据结构与算法篇】二叉树相关算法题:1.美国血统 American Heritage 2.二叉树问题

🔥小龙报:个人主页 🎬作者简介:C++研发,嵌入式,机器人方向学习者 ❄️个人专栏:《算法通关指南》 ✨ 永远相信美好的事情即将发生 文章目录 * 前言 * 一、美国血统 American Heritage * 1.1题目 * 1.2 算法原理 * 1.3代码 * 二、 二叉树问题 * 2.1题目 * 2.2 算法原理 * 2.3代码 * 总结与每日励志 前言 本专栏聚焦算法题实战,系统讲解算法模块:以《c++编程》,《数据结构和算法》《基础算法》《算法实战》 等几个板块以题带点,讲解思路与代码实现,帮助大家快速提升代码能力ps:本章节题目分两部分,比较基础笔者只附上代码供大家参考,其他的笔者会附上自己的思考和讲解,希望和大家一起努力见证自己的算法成长 一、

By Ne0inhk
解密链表环的起点:LeetCode 142 题

解密链表环的起点:LeetCode 142 题

解密链表环的起点:LeetCode 142 题 * 视频地址 * 🌟 引言 * 🔍 问题描述 * 🧠 解题思路回顾 * 快慢指针算法 * 数学原理 * 💻 C++代码实现 * 🛠 代码解析 * 数据结构定义 * 算法实现细节 * 🚀 性能分析 * 🐞 常见问题与调试 * 常见错误 * 调试技巧 * 📊 复杂度对比表 * 🌈 总结 视频地址 因为想更好的为大佬服务,制作了同步视频,这是Bilibili的视频地址 🌟 引言 链表环检测问题在C++中同样是一个经典面试题。本文将用C++实现LeetCode 142题"环形链表II"的解决方案,深入讲解快慢指针算法的原理和实现细节。 🔍 问题描述 给定一个链表的头节点 head,返回链表开始入环的第一个节点。如果链表无环,则返回 nullptr。 🧠 解题思路回顾 快慢指针算法 1. 使用两个指针:slow每次走一步,fast每次走两步 2.

By Ne0inhk
Python+django城市化自修室自习室管理系统_9e2d6549

Python+django城市化自修室自习室管理系统_9e2d6549

目录 * 城市化自修室管理系统概述 * 技术架构与功能模块 * 创新点与实用价值 * 应用场景与扩展性 * 关于博主 * 开发技术路线 * 相关技术介绍 * 核心代码参考示例 * 结论 * 源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 城市化自修室管理系统概述 该系统基于Python+Django框架开发,旨在解决城市化进程中自习室资源管理效率低下的问题。通过数字化手段实现预约、签到、设备管理等功能,提升用户体验与运营效率。系统采用B/S架构,支持多终端访问,包含用户管理、座位预约、数据统计等核心模块。 技术架构与功能模块 后端使用Django框架,搭配MySQL数据库,前端采用HTML+CSS+JavaScript及Bootstrap组件。主要功能包括: * 用户权限管理:分设管理员与普通用户角色,支持注册、登录及权限控制。 * 智能预约系统:可视化座位选择,支持分时段预约与自动释放机制。 * 数据统计分析:生成用户行为报表与资源使用热力图,辅助运营决策。 创新点与实用价值 系统引入实时座位

By Ne0inhk

超越Python:下一步该学什么编程语言?

SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式。本文将介绍如何使用SQLAlchemy ORM进行数据库操作。 目录 1. 安装SQLAlchemy 2. 核心概念 3. 连接数据库 4. 定义数据模型 5. 创建数据库表 6. 基本CRUD操作 7. 查询数据 8. 关系操作 9. 事务管理 10. 最佳实践 安装 bash pip install sqlalchemy 如果需要连接特定数据库,还需安装相应的驱动程序: bash # PostgreSQL pip install psycopg2-binary # MySQL pip install mysql-connector-python # SQLite (Python标准库已包含,无需额外安装) 核心概念 * Engine:数据库连接的引擎,负责与数据库通信

By Ne0inhk