2026/4/5 17:55:39
网站建设
项目流程
国外网站 网站 推荐,门户网站建设摘要,微信的网站怎么做的,深圳平面广告设计公司本文详细解析了AI Agent的四大核心模块#xff1a;感知模块(信息收集与处理)、记忆模块(短期与长期信息存储)、决策模块(目标拆解与策略选择)和工具调用模块(执行决策与外界交互)。每个模块都有独特功能和工作流程#xff0c;共同构成Agent完整架构。文章从程序员视角提供Pyt…本文详细解析了AI Agent的四大核心模块感知模块(信息收集与处理)、记忆模块(短期与长期信息存储)、决策模块(目标拆解与策略选择)和工具调用模块(执行决策与外界交互)。每个模块都有独特功能和工作流程共同构成Agent完整架构。文章从程序员视角提供Python实现示例帮助读者从使用Agent升级为开发Agent为实战开发奠定基础。咱们终于进入核心技术篇啦前面咱们搞懂了Agent的“是什么、能做啥、用什么工具开发”现在是时候扒开Agent的“外衣”看看它的内部构造了。就像咱们学编程时先知道“函数能实现某个功能”再深入理解“函数的参数、返回值、内部逻辑”一样开发Agent也得先搞懂它的核心模块。这一节咱们就把Agent拆成四个核心模块感知模块、记忆模块、决策模块、工具调用模块用程序员能秒懂的语言把每个模块的作用、工作原理、实现思路讲清楚让你从“用Agent”变成“懂Agent、能开发Agent”。一、感知模块Agent的“五官”——收集信息的“输入端”咱们先从最基础的感知模块说起。感知模块是Agent的“五官”核心作用就是收集外界信息给Agent提供“决策的原材料”。如果没有感知模块Agent就像一个“瞎子、聋子”再强的决策能力也没用。1. 感知模块要收集哪些信息感知模块收集的信息主要分两类咱们用程序员的话来说就是“输入数据”• 用户直接输入的信息比如你告诉代码助手“写一个Python函数批量读取Excel”这是“明文输入”还有你和Agent的对话历史比如之前聊过“要用pandas库”这也是感知模块要收集的信息• 环境中的关联信息这是感知模块的核心价值它会主动去“找”和当前任务相关的信息。比如智能客服感知到你说“快递没到”会主动去查你的订单信息、物流轨迹运维Agent感知到CPU飙升会主动去查占用CPU的进程、服务器的内存使用情况。简单说感知模块的目标就是把“用户说的话”和“隐藏在背后的相关数据”都收集起来形成一个完整的“信息包”交给后面的决策模块。2. 感知模块的工作流程从“信息收集”到“信息整理”感知模块不是简单地“把信息堆在一起”而是要做“预处理”让决策模块能直接用。它的工作流程就像咱们写代码时的“数据清洗”信息采集通过各种“接口”收集信息比如用户输入接口对话框、API请求、数据库查询接口查订单、查服务器状态、文件读取接口读日志、读Excel信息筛选过滤掉无关信息比如用户问快递问题时筛选掉用户的历史购物记录没用保留订单号、物流信息有用信息结构化把非结构化的信息变成结构化数据比如把用户的自然语言“快递三天没到”拆解成关键词【快递】【超时】【时长3天】方便决策模块解析信息关联把相关信息关联起来比如把“用户ID”和“对应的订单信息”“物流信息”关联形成一个完整的上下文。3. 程序员视角怎么实现一个简单的感知模块其实实现感知模块一点都不复杂咱们用Python举个例子比如做一个“代码生成Agent”的感知模块它要收集的信息是“用户需求已导入的库项目代码风格”1. 采集信息从用户输入、项目文件中收集信息def collect_information(user_input, project_path):# 采集用户输入明文需求demand user_input# 采集已导入的库从项目的requirements.txt中读取with open(f{project_path}/requirements.txt, “r”) as f:imported_libs f.read().splitlines()# 采集项目代码风格从已有的.py文件中提取命名规范code_style analyze_code_style(project_path)return {“demand”: demand,“imported_libs”: imported_libs,“code_style”: code_style}2. 信息预处理筛选、结构化、关联def process_information(raw_info):# 筛选只保留和代码生成相关的库比如过滤掉测试库pytestrelevant_libs [lib for lib in raw_info[“imported_libs”] if lib in [“pandas”, “requests”, “flask”]]# 结构化把自然语言需求拆成功能点function_points parse_demand(raw_info[“demand”])# 关联把功能点和相关库关联比如“读取Excel”关联pandasassociated_info {“function_points”: function_points,“recommended_libs”: relevant_libs,“code_style”: raw_info[“code_style”]}return associated_info感知模块的入口收集预处理def perception_module(user_input, project_path):raw_info collect_information(user_input, project_path)processed_info process_information(raw_info)return processed_info这个简单的感知模块就完成了“收集信息→预处理”的全流程输出的结构化信息可以直接交给决策模块使用。核心就是明确要收集哪些信息然后通过各种接口获取再做简单的清洗和结构化。二、记忆模块Agent的“大脑存储区”——记住关键信息避免“健忘”如果Agent只有感知模块和决策模块那它就是个“鱼的记忆”——每次交互都从零开始比如你和智能客服聊了半天“快递问题”转头问“那我的退款呢”它还得让你重新说订单号这体验就太差了。记忆模块就是Agent的“大脑存储区”核心作用是存储和管理关键信息让Agent能“记住”之前的交互、执行过的步骤、收集到的信息从而做出更智能的决策。1. 记忆模块要记哪些东西Agent的记忆和咱们人类的记忆类似分“短期记忆”和“长期记忆”对应不同的使用场景•短期记忆上下文记忆记“最近的信息”比如和用户的对话历史、当前任务的执行步骤。比如你和代码助手聊“写一个读取Excel的函数”然后追问“添加异常处理”短期记忆会记住之前的需求不用你重新说•长期记忆知识库记忆记“长期有用的信息”比如项目的业务规则“用户密码必须加密存储”、技术文档“Spring Boot的接口开发规范”、历史执行记录“上次部署失败的原因是端口占用”。这些信息不会随着任务结束而消失会长期存储供后续任务使用。2. 记忆模块的工作流程存储→检索→更新记忆模块的工作流程就像咱们用“数据库缓存”存储把感知模块处理后的信息、决策模块的执行结果、用户的反馈等按“短期/长期”分类存储。短期记忆可以存在内存里比如Python的字典长期记忆可以存在数据库里比如MySQL、向量数据库检索当Agent处理新任务时记忆模块会根据当前需求检索相关的记忆。比如用户问“我的订单退款进度”记忆模块会检索“用户的订单号”“之前的退款申请记录”更新当有新的信息产生时记忆模块会更新记忆。比如用户提供了新的订单号短期记忆会新增这条信息Agent学到了新的业务规则长期记忆会添加这条规则。3. 程序员视角怎么实现一个简单的记忆模块咱们还是用Python举例子实现一个“短期记忆长期记忆”的简单版本import jsonimport sqlite3短期记忆用字典存储任务结束后清空class ShortTermMemory:def __init__(self):self.memory {} # 结构{“对话历史”: [], “当前任务步骤”: []}# 存储短期信息 def store(self, key, value): self.memory[key] value # 检索短期信息 def retrieve(self, key): return self.memory.get(key, None) # 清空短期记忆任务结束后调用 def clear(self): self.memory {}长期记忆用SQLite存储持久化class LongTermMemory:def __init__(self, db_path“agent_memory.db”):self.conn sqlite3.connect(db_path)self._create_table()# 创建表存储业务规则、技术文档等 def \_create\_table(self): cursor self.conn.cursor() cursor.execute( CREATE TABLE IF NOT EXISTS knowledge ( id INTEGER PRIMARY KEY AUTOINCREMENT, type TEXT, # 类型业务规则、技术文档、执行记录 content TEXT, # 内容 create\_time TIMESTAMP DEFAULT CURRENT\_TIMESTAMP ) ) self.conn.commit() # 存储长期信息 def store(self, type\_, content): cursor self.conn.cursor() cursor.execute( INSERT INTO knowledge (type, content) VALUES (?, ?) , (type\_, content)) self.conn.commit() # 检索长期信息根据类型和关键词 def retrieve(self, type\_, keyword): cursor self.conn.cursor() cursor.execute( SELECT content FROM knowledge WHERE type ? AND content LIKE ? , (type\_, f%{keyword}%)) return [row[0] for row in cursor.fetchall()]记忆模块整合短期和长期记忆class MemoryModule:def __init__(self):self.short_term ShortTermMemory()self.long_term LongTermMemory()# 存储信息自动判断短期/长期 def store(self, memory\_type, key\_or\_type, valueNone): if memory\_type short: # 短期记忆key是标识value是内容 self.short\_term.store(key\_or\_type, value) elif memory\_type long: # 长期记忆key\_or\_type是类型value是内容 self.long\_term.store(key\_or\_type, value) # 检索信息 def retrieve(self, memory\_type, key\_or\_type, keywordNone): if memory\_type short: return self.short\_term.retrieve(key\_or\_type) elif memory\_type long: return self.long\_term.retrieve(key\_or\_type, keyword)使用示例if __name__ “__main__”:memory MemoryModule()# 存储短期记忆对话历史memory.store(“short”, “conversation_history”, [“用户写一个Python读取Excel的函数”, “Agent已生成函数”])# 存储长期记忆业务规则memory.store(“long”, “业务规则”, “用户数据必须加密存储禁止明文”)# 检索短期记忆print(memory.retrieve(“short”, “conversation_history”))# 检索长期记忆查找和“加密”相关的业务规则print(memory.retrieve(“long”, “业务规则”, “加密”))这个记忆模块虽然简单但已经实现了核心功能短期记忆存对话和任务状态长期记忆存业务规则和知识库检索时能快速找到需要的信息。实际开发中你可以用Redis优化短期记忆的检索速度用向量数据库比如Milvus优化长期记忆的语义检索比如根据“读取Excel”找到相关的技术文档。三、决策模块Agent的“大脑核心”——自主判断“该怎么做”如果说感知模块是“收集原材料”记忆模块是“存储原材料”那决策模块就是Agent的“核心工厂”——它根据收集到的信息和记忆自主判断“该怎么做”是Agent智能的核心体现。传统程序的“决策”是程序员写死的if-else而Agent的决策模块是“动态的”——不用写死所有情况它能根据具体场景自主拆分步骤、调整策略。1. 决策模块要解决两个核心问题决策模块的工作本质上是解决两个问题•做什么把用户的目标拆成可执行的小步骤。比如用户目标是“分析销售数据并生成报告”决策模块会拆成“1. 读取销售数据文件2. 清洗数据处理缺失值3. 统计销售额、订单量4. 生成可视化图表5. 撰写分析报告”•怎么做为每个步骤选择合适的执行方式。比如“读取销售数据文件”决策模块会判断“文件是CSV格式用pandas的read_csv函数”如果文件是Excel格式就决策“用pandas的read_excel函数”。2. 决策模块的工作流程目标解析→步骤拆分→策略选择→动态调整决策模块的工作流程就像一个“项目经理”接到一个大项目后拆解任务、分配资源、监控进度、调整方案目标解析先理解用户的核心目标比如用户说“我的快递没到”核心目标是“查询快递状态并解决未送达问题”步骤拆分把核心目标拆成可执行的小步骤比如“查询订单号→查询物流轨迹→判断物流状态→生成解决方案”策略选择为每个步骤选择策略比如“如果物流显示滞留策略是提交催单如果物流显示已签收策略是查询签收记录并联系快递员”动态调整根据执行结果调整策略比如提交催单后物流还是没动决策模块会调整策略“联系人工客服跟进”。3. 程序员视角怎么实现一个简单的决策模块决策模块的实现难度相对高一些因为需要结合大模型的语义理解能力。咱们用“大模型规则”的混合方式实现一个简单的决策模块from langchain.chat_models import ChatOpenAI决策模块结合大模型和规则自主拆分步骤和选择策略class DecisionModule:def __init__(self, llm_api_key):# 初始化大模型用于语义理解和步骤拆分self.llm ChatOpenAI(model_name“gpt-3.5-turbo”, api_keyllm_api_key)# 核心方法根据目标和上下文生成决策步骤策略 def make\_decision(self, goal, context, memory): # 1. 构建提示词告诉大模型要做什么拆分步骤、选择策略 prompt f 你是一个智能决策助手需要帮Agent完成目标。请根据以下信息做两件事 1. 把目标拆成3-5个可执行的步骤按顺序排列 2. 为每个步骤选择合适的执行策略比如调用什么工具、执行什么操作。 目标{goal} 上下文信息{context} 相关记忆{memory} 输出格式 步骤1[步骤描述] 策略1[执行策略] 步骤2[步骤描述] 策略2[执行策略] ... # 2. 调用大模型生成决策 decision\_result self.llm.predict(prompt) # 3. 解析大模型的输出变成结构化数据方便后续执行 structured\_decision self.\_parse\_decision(decision\_result) return structured\_decision # 解析大模型输出变成字典格式 def \_parse\_decision(self, decision\_text): steps [] strategies [] lines decision\_text.split(\n) for line in lines: line line.strip() if line.startswith(步骤): steps.append(line.split()[1].strip()) elif line.startswith(策略): strategies.append(line.split()[1].strip()) # 组合成结构化数据 return [{步骤: step, 策略: strategy} for step, strategy in zip(steps, strategies)]使用示例if __name__ “__main__”:# 初始化决策模块替换成你的API密钥decision_module DecisionModule(“你的大模型API密钥”)# 目标用户需求goal “帮我分析2024年3月的销售数据生成可视化图表并写一份分析报告”# 上下文信息感知模块处理后的信息比如数据文件路径、数据格式context “数据文件路径./sales_202403.csv数据格式CSV包含字段日期、产品类别、销售额、订单量”# 相关记忆从记忆模块检索到的信息比如之前的分析规则memory “记忆销售数据分析需要统计Top5产品、月度销售额趋势、各品类占比”# 生成决策decision decision_module.make_decision(goal, context, memory)print(“生成的决策”)for item in decision:print(f步骤{item[‘步骤’]}策略{item[‘策略’]})这个决策模块的核心逻辑是用大模型的语义理解能力拆分步骤和选择策略再把输出解析成结构化数据。实际开发中你可以加入“规则校验”比如限制步骤数量、指定必须调用的工具避免大模型生成不合理的决策还可以加入“反馈机制”如果某个步骤执行失败让决策模块重新调整策略。四、工具调用模块Agent的“手脚”——执行决策和外界交互决策模块生成了“步骤和策略”但Agent不能只“想”不“做”——工具调用模块就是Agent的“手脚”核心作用是执行决策模块的策略和外界交互比如调用工具、操作文件、访问API、和用户沟通。没有工具调用模块Agent就是一个“只会想不会做”的“空想家”有了它Agent才能把决策落地真正解决问题。1. 工具调用模块要调用哪些“工具”Agent能调用的工具非常多本质上是“所有能帮它完成任务的程序、接口、服务”常见的有•数据操作工具数据库MySQL、PostgreSQL、文件系统读/写文件、Excel/CSV处理工具pandas•API接口工具第三方API天气API、物流API、内部系统API用户系统API、订单系统API•开发工具代码编译器、静态代码分析工具SonarQube、测试工具pytest•沟通工具邮件服务、短信服务、聊天接口Slack、钉钉•自定义工具你自己写的Python/Java函数比如“数据清洗函数”“加密函数”。2. 工具调用模块的工作流程工具选择→参数解析→执行→结果返回工具调用模块的工作流程就像咱们调用函数工具选择根据决策模块的策略选择对应的工具。比如策略是“读取CSV文件”就选择“pandas的read_csv函数”策略是“查询物流信息”就选择“物流API”参数解析解析执行工具需要的参数。比如调用read_csv需要“文件路径”“编码格式”调用物流API需要“订单号”“用户ID”执行调用调用工具并执行比如执行read_csv函数读取文件发送HTTP请求调用物流API结果处理接收工具的执行结果比如读取到的数据、API返回的物流信息然后把结果返回给决策模块和记忆模块存储执行结果。3. 程序员视角怎么实现一个简单的工具调用模块咱们用Python实现一个支持“读取CSV文件”“生成图表”“写报告”的工具调用模块import pandas as pdimport matplotlib.pyplot as pltfrom typing import Any第一步定义各种工具函数形式class Tools:# 工具1读取CSV文件staticmethoddef read_csv(file_path: str, encoding: str “utf-8”) - pd.DataFrame:try:df pd.read_csv(file_path, encodingencoding)return {“status”: “success”, “data”: df, “message”: “文件读取成功”}except Exception as e:return {“status”: “fail”, “data”: None, “message”: f读取失败{str(e)}}# 工具2生成可视化图表 staticmethod def generate\_chart(df: pd.DataFrame, chart\_type: str, save\_path: str) - str: try: plt.rcParams[font.sans-serif] [SimHei] # 解决中文显示问题 if chart\_type sales\_trend: # 销售额趋势图 df.plot(x日期, y销售额, kindline) plt.title(月度销售额趋势) elif chart\_type category\_ratio: # 品类占比饼图 category\_sales df.groupby(产品类别)[销售额].sum() category\_sales.plot(kindpie, autopct%1.1f%%) plt.title(各品类销售额占比) plt.savefig(save\_path, dpi300, bbox\_inchestight) plt.close() return {status: success, data: save\_path, message: 图表生成成功} except Exception as e: return {status: fail, data: None, message: f图表生成失败{str(e)}} # 工具3生成分析报告 staticmethod def generate\_report(df: pd.DataFrame, report\_path: str) - str: try: # 计算核心指标 total\_sales df[销售额].sum() total\_orders df[订单量].sum() top5\_products df.groupby(产品类别)[销售额].sum().nlargest(5) # 撰写报告 report f 2024年3月销售数据分析报告 1. 整体业绩 - 总销售额{total\_sales:.2f}元 - 总订单量{total\_orders}单 2. Top5产品销售额 {top5\_products.to\_string()} 3. 趋势分析 - 销售额整体呈上升趋势具体需结合图表 - 家电品类占比最高具体需结合图表 with open(report\_path, w, encodingutf-8) as f: f.write(report) return {status: success, data: report\_path, message: 报告生成成功} except Exception as e: return {status: fail, data: None, message: f报告生成失败{str(e)}}第二步工具调用模块管理工具、执行调用class ToolCallingModule:def __init__(self):self.tools Tools() # 加载所有工具# 核心方法根据决策策略调用对应的工具 def call\_tool(self, strategy: str, params: dict) - dict: # 根据策略选择工具 if 读取CSV文件 in strategy: # 调用读取CSV工具 return self.tools.read\_csv( file\_pathparams.get(file\_path), encodingparams.get(encoding, utf-8) ) elif 生成可视化图表 in strategy: # 调用生成图表工具 return self.tools.generate\_chart( dfparams.get(df), chart\_typeparams.get(chart\_type), save\_pathparams.get(save\_path) ) elif 生成分析报告 in strategy: # 调用生成报告工具 return self.tools.generate\_report( dfparams.get(df), report\_pathparams.get(report\_path) ) else: return {status: fail, message: f没有找到对应的工具{strategy}}使用示例if __name__ “__main__”:# 初始化工具调用模块tool_module ToolCallingModule()# 1. 调用读取CSV工具read_result tool_module.call_tool(strategy“读取CSV文件”,params{“file_path”: “./sales_202403.csv”})if read_result[“status”] “success”:df read_result[“data”]print(“CSV文件读取成功”)# 2. 调用生成图表工具chart_result tool_module.call_tool(strategy“生成可视化图表”,params{“df”: df, “chart_type”: “sales_trend”, “save_path”: “./sales_trend.png”})print(chart_result[“message”])# 3. 调用生成报告工具report_result tool_module.call_tool(strategy“生成分析报告”,params{“df”: df, “report_path”: “./sales_report.txt”})print(report_result[“message”])这个工具调用模块的核心是“策略→工具的映射”根据决策模块的策略找到对应的工具并传入参数执行。实际开发中你可以用LangChain的Tool类来封装工具支持自动参数解析和类型校验还可以加入“工具优先级”比如同一个任务有多个工具可用时选择效率最高的工具。五、总结Agent的核心模块是“流水线”环环相扣聊完四个核心模块咱们可以用一张“流水线”图来理解它们的关系用户目标 → 感知模块收集预处理信息 → 记忆模块存储检索相关记忆 → 决策模块拆分步骤选择策略 → 工具调用模块执行策略返回结果 → 结果反馈给用户和记忆模块 → 循环直到达成目标每个模块都有自己的核心作用缺一不可• 感知模块保证“信息全”• 记忆模块保证“不健忘”• 决策模块保证“方向对”• 工具调用模块保证“能落地”。对咱们程序员来说开发Agent的本质就是“搭建这四个模块并让它们高效协作”——你可以用现成的框架比如LangChain来快速集成这些模块也可以根据业务需求自定义每个模块的实现。AI时代未来的就业机会在哪里答案就藏在大模型的浪潮里。从ChatGPT、DeepSeek等日常工具到自然语言处理、计算机视觉、多模态等核心领域技术普惠化、应用垂直化与生态开源化正催生Prompt工程师、自然语言处理、计算机视觉工程师、大模型算法工程师、AI应用产品经理等AI岗位。掌握大模型技能就是把握高薪未来。那么普通人如何抓住大模型风口AI技术的普及对个人能力提出了新的要求在AI时代持续学习和适应新技术变得尤为重要。无论是企业还是个人都需要不断更新知识体系提升与AI协作的能力以适应不断变化的工作环境。因此这里给大家整理了一份《2026最新大模型全套学习资源》包括2026最新大模型学习路线、大模型书籍、视频教程、项目实战、最新行业报告、面试题、AI产品经理入门到精通等带你从零基础入门到精通快速掌握大模型技术由于篇幅有限有需要的小伙伴可以扫码获取1. 成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。2. 大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。4. 大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。5. 大模型行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。6. 大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。为什么大家都在学AI大模型随着AI技术的发展企业对人才的需求从“单一技术”转向 “AI行业”双背景。企业对人才的需求从“单一技术”转向 “AI行业”双背景。金融AI、制造AI、医疗AI等跨界岗位薪资涨幅达30%-50%。同时很多人面临优化裁员近期科技巨头英特尔裁员2万人传统岗位不断缩减因此转行AI势在必行这些资料有用吗这份资料由我们和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理现任上海殷泊信息科技CEO其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证服务航天科工、国家电网等1000企业以第一作者在IEEE Transactions发表论文50篇获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。资料内容涵盖了从入门到进阶的各类视频教程和实战项目无论你是小白还是有些技术基础的技术人员这份资料都绝对能帮助你提升薪资待遇转行大模型岗位。大模型全套学习资料已整理打包有需要的小伙伴可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】