| 大家好,我是工藤学编程 🦉 | 一个正在努力学习的小博主,期待你的关注 |
|---|---|
| 实战代码系列最新文章😉 | 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](#一、 Agent智能体:不止会“聊天”,更会“自己干活”的AI)
- [二、 Agent核心架构:闭环决策,自主执行](#二、 Agent核心架构:闭环决策,自主执行)
- [三、 Agent和常规LLM的核心区别:一张表看明白](#三、 Agent和常规LLM的核心区别:一张表看明白)
- [四、 实战对比:常规LLM和Agent差在哪?](#四、 实战对比:常规LLM和Agent差在哪?)
- [五、 Agent典型应用场景:从医疗到教育,落地就能用](#五、 Agent典型应用场景:从医疗到教育,落地就能用)
-
- [5.1 医疗行业:诊断辅助Agent(对接RAG更高效)](#5.1 医疗行业:诊断辅助Agent(对接RAG更高效))
- [5.2 教育行业:个性化学习Agent(适配学习路径)](#5.2 教育行业:个性化学习Agent(适配学习路径))
- [六、 LangChain实战Agent:10行代码实现"安排户外会议"](#六、 LangChain实战Agent:10行代码实现“安排户外会议”)
-
- [6.1 实战代码(可直接复用)](#6.1 实战代码(可直接复用))
- [6.2 Agent决策过程:看它是怎么"思考"的](#6.2 Agent决策过程:看它是怎么“思考”的)
- [七、 小结:Agent的核心价值------让AI从"能说"到"能做"](#七、 小结:Agent的核心价值——让AI从“能说”到“能做”)
零基础学AI大模型之Agent智能体
一、 Agent智能体:不止会"聊天",更会"自己干活"的AI
之前我们学过的大模型(LLM),大多是"你问我答"的模式------给它输入指令,它返回文本,但没法主动解决复杂问题。而Agent智能体,是给大模型装上"手脚"和"记性",让它从"聊天工具"变成能自主决策、执行任务的"虚拟打工人"。
简单说,Agent是具备自主决策能力的AI系统:通过"感知环境→分析信息→调用工具→执行动作"的闭环,独立完成从目标到结果的全流程。
核心公式特别好记(结合我们之前学的LangChain工具就能理解):
Agent = 大语言模型(LLM,大脑) + 工具(Tools,手脚) + 记忆(Memory,记性)
类比下更直观:
- 常规LLM:像个"只会答题的学霸",问啥答啥,但不会动手做;
- Agent:像个"能独立干活的员工",知道要做什么、该用什么工具、记得之前做过什么,能自己把事办成。
二、 Agent核心架构:闭环决策,自主执行
Agent能"自己干活",全靠这套闭环架构在支撑,和我们之前学的LangChain链路能无缝衔接:

每个环节的作用都很清晰:
- 大模型推理:相当于"大脑思考",分析用户需求,判断该做什么、用什么工具;
- 工具选择/执行:调用我们定义的工具(比如天气API、日历、数据库,就是之前LangChain里的Tool);
- 记忆系统:存之前的交互记录、任务进度(对应LangChain的Memory);
- 知识库:存专业知识(比如医学论文、学习资料,可对接之前学的RAG系统);
- 结果验证:检查工具执行结果是否符合需求,不行就调整方案,直到完成任务。
三、 Agent和常规LLM的核心区别:一张表看明白
用我们熟悉的"对比法",一看就知道Agent强在哪,和之前学的LLM差异点很清晰:
| 维度 | 常规LLM | Agent智能体 |
|---|---|---|
| 交互方式 | 单轮问答(问一句答一句) | 多轮决策链(像聊天一样逐步推进任务) |
| 能力范围 | 只做文本生成(答题、写文案) | 工具调用+环境交互(能操作外部系统) |
| 记忆机制 | 短期上下文(只记当前对话几句) | 长期记忆存储(记全程任务进度、历史) |
| 输出形式 | 自然语言(文字回答) | 结构化动作序列(工具调用指令+结果) |
| 应用场景 | 内容创作、简单问答 | 复杂任务自动化(安排会议、诊断辅助) |
四、 实战对比:常规LLM和Agent差在哪?
光说不练假把式,用3个真实场景测试下,差异一眼就出来了(和我们平时用大模型的体验很像):
| 测试用例 | 传统LLM响应 | Agent响应 |
|---|---|---|
| "北京天气" | "北京当前气温12℃" | "北京当前晴,12℃,早晚凉,建议穿外套" |
| "明天需要带伞吗" | "无法获取实时天气信息" | 自动调用天气API:"明天北京降水概率10%,不需要带伞" |
| "上周三天气如何" | 报错/答非所问(无历史数据) | 自动切换历史天气库:"上周三北京晴,气温8-18℃" |
核心差异:Agent能"自主解决问题",而常规LLM只会"答题",解决不了需要"动手操作"的需求。
五、 Agent典型应用场景:从医疗到教育,落地就能用
Agent不是空谈,已经能落地到很多场景,结合我们之前学的技术,很容易上手实战:
5.1 医疗行业:诊断辅助Agent(对接RAG更高效)
传统医疗系统的痛点很明显:
- 基于固定规则,复杂症状不会判;
- 知识更新慢(靠人工更论文);
- 记不住患者历史诊疗记录。

Agent方案正好解决这些问题:
python
# 基于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(适配学习路径)

传统在线教育的问题:学习路径固定,不管学生学没学会,都按固定步骤来(比如下面这段硬编码逻辑):
java
// 传统固定学习路径:硬编码逻辑,不灵活
public class LearningService {
public String getNextStep(String userId) {
int score = db.getUserScore(userId); // 查学生分数
if (score < 60) {
return "重新学习第三章"; // 分数不够就复读
}
return "进入第四章"; // 够了就下一章
}
}
Agent方案能实现"个性化指导",还能对接我们学的知识图谱、RAG:
python
# 基于LangChain实现个性化学习Agent
class TutorAgent:
# 定义学习工具(知识图谱、习题推荐、学习风格分析)
tools = [
KnowledgeGraphTool(), # 知识图谱(查知识点关联)
ExerciseRecommenderTool(), # 习题推荐(对接题库)
LearningStyleAnalyzerTool() # 学习风格分析(看适合视频/图文)
]
def guide_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 实战代码(可直接复用)
python
# 导入之前学的LangChain模块
from langchain.agents import AgentExecutor, create_react_agent, Tool
from langchain import hub
from langchain.chat_models import ChatOpenAI
# 1. 定义工具(天气查询、日历访问,和之前学的Tool定义一样)
def get_weather_api_data(city, date):
"""模拟调用天气API,返回天气信息(实际可对接真实API)"""
return f"{date} {city}晴,气温22℃,适合户外活动"
def read_google_calendar(date):
"""模拟访问日历,返回空闲时段(实际可对接谷歌/企业日历)"""
return f"{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的决策过程,和我们想问题的逻辑一样:
- 我需要安排明天北京的户外会议,首先得知道明天天气怎么样------调用"WeatherCheck"工具,参数"明天";
- 工具返回"明天北京晴,气温22℃,适合户外活动"------天气没问题,接下来查明天下午的空闲时段;
- 调用"CalendarAccess"工具,参数"明天";
- 工具返回"明天下午空闲时段:14:00-16:00"------综合天气和空闲时间,选个合适的时间;
- 输出最终结果:建议将会议安排在明天下午15:00,天气预报显示晴,气温22℃。
是不是很神奇?不用我们一步步指挥,Agent自己就把"查天气→查日历→定时间"的事全办成了,和我们之前学的LangChain技术完全打通。
七、 小结:Agent的核心价值------让AI从"能说"到"能做"
这篇我们学了Agent智能体,核心就是一句话:给大模型装上手脚(工具)和记性(记忆),让它从"只会答题"变成"能独立干活" 。
它和我们之前学的LangChain、RAG、Memory能无缝衔接------工具就是LangChain的Tool,记忆就是LangChain的Memory,知识库就是RAG系统,所以学完之前的内容,上手Agent特别容易。
如果本文对你有帮助,欢迎点赞+关注+收藏🌟 ,有任何问题或实战需求,欢迎在评论区留言交流~ 我是工藤学编程,陪你从零到一玩转AI大模型!🚀