HoRain 云小助手个人主页⛺️生活的理想就是为了理想的生活!⛳️ 推荐前些天发现了一个超棒的服务器购买网站性价比超高大内存超划算忍不住分享一下给大家。点击跳转到网站。目录⛳️ 推荐AI Agent 的类型工作流程ReAct 循环Python 中实现 AI Agent1. 感知模块实例2. 决策模块大脑实例3. 行动模块实例4. 记忆模块5. 工具模块实例实践练习构建一个简单的命令行 AI Agent实例总结与展望下一步学习建议在开始深入了解 AI Agent 之前我们先来回答一个根本问题既然有 LLM为什么还需要 Agent大型语言模型LLM本身非常强大但它们有一个本质局限——知识截止于训练数据无法主动获取实时信息或执行具体操作。AI Agent 则通过将 LLM 与工具和记忆结合突破了这一限制实现了思考与行动的统一。一个典型的 AI Agent 由三个关键部分协同工作我们可以用一个生动的比喻来理解1. 大脑 (The Brain) - 大型语言模型 (LLM)角色Agent 的决策中心和推理引擎。功能理解用户输入的目标和上下文分析当前状况然后决定下一步该做什么是直接回答问题还是调用某个工具它负责规划和分解复杂任务。比喻就像公司的CEO 或指挥官负责战略思考、任务规划和下达指令。2. 工具 (Tools) - 可执行的动作角色Agent 的手和脚是其能力的延伸。功能一个个具体的函数或 API让 Agent 能够与外部世界互动。例如search_web搜索、execute_python_code运行代码、read_file读文件、send_email发邮件等。比喻就像员工可用的各种办公软件和技能如 Excel、浏览器、电话、打印机。3. 记忆 (Memory) - 对话与经验的存储角色记录工作过程保证任务的连贯性。功能短期记忆保存当前对话的历史让 Agent 记得之前说过什么、做过什么。长期记忆可以存储更持久的信息例如用户偏好、历史任务结果供未来任务参考。比喻就像员工的工作笔记和项目档案避免重复劳动让每次工作都能基于之前的经验。AI Agent 的类型根据不同的设计目标和复杂度AI Agent 可以分为多种类型Agent 类型特点典型应用反应式 Agent (Reactive Agent)基于当前感知做出即时响应不维护内部状态简单问答、游戏 AI目标导向 Agent (Goal-based Agent)围绕特定目标规划行动能评估目标达成度任务助手、自动化工作流实用型 Agent (Utility-based Agent)通过效用函数评估多种可能的行动选择最优方案资源优化、路径规划学习型 Agent (Learning Agent)能从经验中学习不断优化决策策略推荐系统、个性化助手多智能体系统 (Multi-Agent)多个 Agent 协作分工各司其职复杂任务分解、团队协作工作流程ReAct 循环AI Agent 通常遵循一个名为ReAct Reasoning推理 Acting行动的经典思维范式这是一个持续的 思考-行动 循环直到任务完成为止。ReAct 是一种让 LLM 交替进行推理和行动的框架通过让模型显式地展示思考过程来提高复杂任务的解决能力。用户User思考ReasonLLM 推理行动Action调用工具观察Observe获取结果记忆Memory存储上下文1. 生成计划2. 执行动作3. 接收反馈4. 更新记忆继续推理让我们用一个具体的例子来跟踪这个循环帮我在北京找一家评分高于 4.5 的意大利餐厅并告诉我它的地址和招牌菜。循环步骤分解1、思考 (Think/Reason)2、行动 (Act)大脑分析Agent 的大脑LLM接收到目标它会分析这是一个信息查询任务我需要先找到符合条件的餐厅然后获取其详细信息。我应该使用搜索工具。生成指令大脑生成一个清晰的内部指令例如我需要调用search_web工具关键词是北京意大利餐厅评分 4.5。3、观察 (Observe)4、再思考 (Think Again)5、再行动 (Act Again)-再观察 (Observe Again)6、最终响应 (Final Answer)这个思考 - 行动 - 观察 - 再思考...的循环就是 AI Agent 自主完成复杂任务的核心动力机制。Python 中实现 AI Agent一个 AI Agent 系统通常由几个核心模块协同工作。理解这个架构有助于我们明白它是如何思考和行动的。1. 感知模块这是 Agent 的眼睛和耳朵它负责从环境中获取信息环境可以是示例代码模拟感知文本输入实例# 一个简单的感知函数用于接收用户输入def perceive_from_environment():从环境中感知信息。在此示例中环境是命令行中的用户输入。user_input input(请输入您的指令或问题)print(f[感知模块] 接收到信息{user_input})return user_input# 获取感知信息current_observation perceive_from_environment()2. 决策模块大脑这是 Agent 的核心通常由一个AI模型如大语言模型 LLM驱动。它负责示例代码模拟一个基于规则的简单决策实例def make_decision(observation):根据感知信息做出简单决策。这是一个基于规则的示例实际中通常由复杂的AI模型完成。print(f[决策模块] 正在分析信息{observation})if 天气 in observation:decision 调用天气查询工具elif 计算 in observation:decision 调用计算器工具elif 结束 in observation:decision 执行终止动作else:decision 进行通用对话回应print(f[决策模块] 决策结果{decision})return decision# 基于感知做出决策current_decision make_decision(current_observation)3. 行动模块决策模块输出的是想法行动模块则负责将想法变成现实。它执行具体的操作从而影响环境。示例代码模拟执行行动实例def execute_action(decision):执行决策模块给出的指令。print(f[行动模块] 正在执行{decision})if decision 调用天气查询工具:# 这里可以是一个真实的API调用result 北京晴25℃。elif decision 调用计算器工具:result 112elif decision 执行终止动作:result 任务结束。print(result)exit() # 结束程序else:result f我已理解您的意思{decision}print(f[行动模块] 行动结果{result})return result# 执行决策action_result execute_action(current_decision)4. 记忆模块为了让 Agent 更智能它需要记忆。记忆模块存储了5. 工具模块模型本身的能力是有限的比如不知道实时天气、不能做复杂计算。工具模块为 Agent 提供了瑞士军刀极大地扩展了其能力边界。工具可以是一个函数、一个 API 或一个完整的软件。示例为 Agent 扩展一个计算工具实例# 定义一个工具函数def calculator_tool(expression):一个简单的计算器工具用于执行数学表达式注意实际使用中需考虑安全性。try:# 警告在生产环境中直接使用eval是危险的此处仅用于演示。result eval(expression)return f计算结果{expression} {result}except Exception as e:return f计算错误{e}# 假设决策模块决定调用此工具tool_result calculator_tool(3 5 * 2)print(tool_result) # 输出计算结果3 5 * 2 13实践练习构建一个简单的命令行 AI Agent现在让我们将上面的模块组合起来创建一个能进行简单对话和工具调用的微型 Agent。实例# 简单AI Agent示例import random# 1. 工具定义def get_weather(city):模拟天气查询工具weather_options [晴, 多云, 小雨, 大风]temperature random.randint(15, 35)return f{city}的天气是{random.choice(weather_options)}气温{temperature}℃。def simple_calculator(a, b, operator):简单计算器工具if operator :return f{a} {b} {a b}elif operator -:return f{a} - {b} {a - b}else:return 暂不支持此运算。# 2. 记忆用列表模拟短期对话历史conversation_history []# 3. 核心Agent循环def run_simple_agent():print(【简单AI Agent已启动】输入退出来结束对话。)while True:# 感知user_input input(\n您)conversation_history.append(f用户{user_input})if user_input.lower() in [退出, exit, quit]:print(Agent再见)break# 决策与行动response if 天气 in user_input:# 简单提取城市名实际应用需要更复杂的NLPcity 北京 # 默认城市for c in [北京, 上海, 广州]:if c in user_input:city cbreakresponse get_weather(city)elif 计算 in user_input or in user_input or - in user_input:# 非常简单的模式匹配try:if 11 in user_input:response simple_calculator(1, 1, )elif 10-5 in user_input:response simple_calculator(10, 5, -)else:response 请尝试输入计算11或计算10-5。except:response 计算时出错了。else:# 默认的对话回应default_responses [我理解您的意思了。,这是一个有趣的话题。,我目前还在学习中可以试试问我天气或简单计算。,嗯请继续。]response random.choice(default_responses)# 记录并输出行动结果print(fAgent{response})conversation_history.append(fAgent{response})# 打印本次对话历史print(\n 本次对话历史 )for line in conversation_history:print(line)# 4. 启动Agentif __name__ __main__:run_simple_agent()运行这个程序你将体验到总结与展望通过本文你应该已经掌握了 AI Agent 的基本概念它是一个由感知、决策、行动等模块组成的能自主追求目标的智能程序。下一步学习建议AI Agent 的世界广阔而充满可能从自动化个人助手到企业级智能解决方案它正在成为人机交互的新范式。希望你以此文为起点开始构建属于自己的智能体。调用工具Agent 根据上一步的指令调用search_web工具并传入关键词。执行工具开始工作在互联网上执行搜索并返回一堆原始的搜索结果列表。接收反馈Agent 获取到工具执行的结果即搜索到的网页摘要或链接列表。大脑再分析大脑看到搜索结果后继续分析我已经得到了一些餐厅名字。但用户要的是地址和招牌菜。我需要选择第一个结果比如Bottega 意库然后调用工具获取它的详细信息。生成新指令调用get_restaurant_details工具餐厅名称为Bottega 意库。这个思考-行动-观察的循环会继续直到大脑认为已经收集到足够的信息来达成目标。当大脑判断任务完成后它会将所有的观察结果记忆整合起来生成一个结构化、人性化的最终答案给用户找到一家符合要求的餐厅Bottega 意库。地址北京市朝阳区三里屯路 XX 号。招牌菜黑松露披萨、手工提拉米苏。数字世界一段文本、一个网页、数据库中的记录、API 返回的数据。物理世界通过硬件摄像头图像、麦克风音频、传感器数据。理解感知到的信息。推理当前状况。规划下一步或一系列行动以达到目标。调用必要的工具。数字行动在屏幕上输出答案、点击按钮、调用一个函数、写入文件。物理行动通过控制硬件控制机械臂移动、让音箱播放声音。短期记忆/对话历史本次交互中说过的话避免重复回答。长期记忆/知识库通过向量数据库等技术存储的专属知识用于增强模型的能力。一个能持续对话的循环。根据你的输入关键词如天气、计算触发不同的工具。一个简单的对话历史记录。深入大语言模型LLM学习如何使用 OpenAI GPT、DeepSeek、通义千问等模型的 API将其作为你 Agent 强大的决策大脑。学习框架探索专业的 Agent 开发框架如LangChain、LlamaIndex或AutoGen。它们提供了构建复杂 Agent 所需的内存、工具链、流程编排等标准化组件能让你事半功倍。集成真实工具尝试将你的 Agent 连接到真实的 API如数据库、电子邮件系统或项目管理软件解决实际问题。理解提示工程学习如何通过精心设计提示词Prompt来更好地引导和控制 LLM 的行为这是开发高效 Agent 的关键技能。❤️❤️❤️本人水平有限如有纰漏欢迎各位大佬评论批评指正如果觉得这篇文对你有帮助的话也请给个点赞、收藏下吧非常感谢! Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧