AI Agent 工作原理在开始深入了解 AI Agent 之前我们先来回答一个根本问题既然有 LLM为什么还需要 Agent想象一下你有一位非常博学的朋友——他读过海量的书能回答几乎所有问题但他在 2024 年不再接触新信息也没有手机、不能上网、不能帮你订外卖、不能查今天的天气。这就是大型语言模型LLM——知识丰富但知识截止于训练数据无法主动获取实时信息也无法执行具体的操作。而AI Agent就像是给这位朋友配备了一部可以上网的手机、一台计算器、一个日历……让他不仅能思考还能真正动手做事。AI Agent 通过将 LLM 与工具和记忆结合突破了这一限制实现了思考与行动的统一。AI Agent 的三大核心组成一个典型的 AI Agent 由三个关键部分协同工作我们继续用上面的比喻来理解1、大脑 (The Brain) - 大型语言模型 (LLM)角色Agent 的决策中心和推理引擎。功能理解用户输入的目标和上下文分析当前状况然后决定下一步该做什么——是直接回答问题还是调用某个工具它负责规划和分解复杂任务。比喻就像公司的CEO 或指挥官负责战略思考、任务规划和下达指令。它知道要做什么但需要借助工具来真正做到。2、工具 (Tools) - 可执行的动作角色Agent 的手和脚是其能力的延伸。功能一个个具体的函数或 API让 Agent 能够与外部世界互动。例如search_web搜索网页、execute_python_code运行代码、read_file读取文件、send_email发送邮件等。比喻就像员工桌上的各种办公软件和设备如 Excel、浏览器、电话、打印机。CEO大脑发出指令员工工具负责执行。关键理解没有工具LLM 只能说有了工具Agent 才能真正做。3、记忆 (Memory) - 对话与经验的存储角色记录工作过程保证任务的连贯性。功能短期记忆保存当前对话的历史让 Agent 记得之前说过什么、做过什么。就好比你跟朋友聊天不需要每句话都重新自我介绍。长期记忆可以存储更持久的信息例如用户偏好、历史任务结果供未来任务参考。就像你有一本专属于你的用户档案。比喻就像员工的工作笔记和项目档案避免重复劳动让每次工作都能基于之前的经验继续推进。一句话总结大脑负责思考工具负责行动记忆保证连贯三者缺一不可。AI Agent 的类型根据不同的设计目标和复杂度AI Agent 可以分为多种类型Agent 类型特点典型应用反应式 Agent (Reactive Agent)基于当前感知做出即时响应不维护内部状态。就像一个只看眼前、不记过去的客服。简单问答、游戏 AI目标导向 Agent (Goal-based Agent)围绕特定目标规划行动能评估目标是否达成。就像有 KPI 的员工知道自己做什么是为了完成什么目标。任务助手、自动化工作流实用型 Agent (Utility-based Agent)通过效用函数给多种可能的行动打分选择最优方案。就像一个会权衡利弊、追求最优解的决策者。资源优化、路径规划学习型 Agent (Learning Agent)能从经验中学习不断优化决策策略。越用越聪明像一个勤于复盘的员工。推荐系统、个性化助手多智能体系统 (Multi-Agent)多个 Agent 协作分工各司其职。就像一个分工明确的团队每人负责一块。复杂任务分解、团队协作初学者只需先掌握前两种它们是最常见的基础形态。工作流程ReAct 循环了解了 Agent 的组成下一个问题是它是怎么运转起来的AI Agent 通常遵循一个名为ReAct Reasoning推理 Acting行动的经典思维范式。顾名思义就是先想、再做、再想、再做……这个循环不断重复直到任务完成。你可以把它想象成一个认真负责的新员工接到一个任务时的工作方式我先想想该怎么做 → 去查一下资料 → 看看查到了什么 → 再想下一步 → 继续行动……而不是一拍脑袋就乱做。用户User思考ReasonLLM 推理行动Action调用工具观察Observe获取结果记忆Memory存储上下文1. 生成计划2. 执行动作3. 接收反馈4. 更新记忆继续推理用一个完整例子来跟踪这个循环用户向 Agent 发出指令帮我在北京找一家评分高于 4.5 的意大利餐厅并告诉我它的地址和招牌菜。下面我们一步一步跟着 Agent 的思路走第 1 步思考 (Think/Reason)大脑分析目标Agent 的大脑LLM拿到这个任务首先在脑子里梳理这是一个信息查询任务需要两类信息① 找到符合条件的餐厅② 获取地址和招牌菜。我目前什么都不知道应该先去搜索。生成行动指令大脑决定调用search_web工具关键词设为北京意大利餐厅评分 4.5 以上。注意这一步 Agent 还没有做任何事它只是在想。LLM 的价值就体现在这里——能够理解意图、拆解任务、制定计划。第 2 步行动 (Act)调用工具Agent 根据上一步的决策实际调用search_web工具并传入关键词。工具执行搜索工具在互联网上执行搜索返回一批原始的搜索结果网页标题、摘要、链接等。注意工具本身不会思考它只是忠实执行。思考是大脑的工作执行是工具的工作分工明确。第 3 步观察 (Observe)接收反馈Agent 获取到工具返回的搜索结果并将结果存入记忆中供下一轮推理使用。假设结果包含了若干家餐厅Bottega 意库评分 4.7、Da Vittorio、Le Marche 等。第 4 步再思考 (Think Again)大脑再分析看到搜索结果后大脑继续推理好我找到了几家候选餐厅。但用户要的是地址和招牌菜这些在搜索摘要里没有。我需要进一步查询 Bottega 意库的详细信息。生成新指令调用get_restaurant_details工具查询Bottega 意库的详细信息。第 5 步再行动 → 再观察循环继续这个 思考 → 行动 → 观察 的循环会不断重复每一轮都让 Agent 离目标更近一步直到大脑判断我已经有了足够的信息来回答用户。第 6 步输出最终答案 (Final Answer)当大脑确认任务完成它将所有收集到的信息存储在记忆中整合起来生成一个结构化、人性化的回复找到一家符合要求的餐厅Bottega 意库评分 4.7。地址北京市朝阳区三里屯路 XX 号。招牌菜黑松露披萨、手工提拉米苏。这个思考 → 行动 → 观察 → 再思考…的循环就是 AI Agent 自主完成复杂任务的核心动力机制。它不是一次性给出答案而是像人一样逐步推进、边做边想。Python 中实现 AI Agent理论讲完了现在来看代码。一个 AI Agent 系统通常由几个核心模块协同工作理解这个架构有助于我们明白它是如何思考和行动的。我们把每个模块拆开来用简单的 Python 代码演示它的职责。初学者不必深究每一行代码重点是理解每个模块在做什么。1. 感知模块 —— Agent 的眼睛和耳朵感知模块负责从环境中获取信息即接收到了什么输入。环境可以是数字世界一段文本、一个网页、数据库中的记录、API 返回的数据。物理世界通过硬件摄像头图像、麦克风音频、传感器数据。对于最常见的文本型 Agent感知就是接收用户输入的一句话。实例# 感知模块负责接收外部信息def perceive_from_environment():从环境中感知信息。在此示例中环境就是命令行里用户输入的文字。user_input input(请输入您的指令或问题)print(f[感知模块] 接收到信息{user_input})return user_input # 将感知到的内容传递给下一个模块决策模块# 获取感知信息current_observation perceive_from_environment()2. 决策模块大脑—— Agent 的指挥官这是 Agent 的核心通常由一个AI 模型如大语言模型 LLM驱动。它拿到感知模块传来的信息负责做三件事理解这条信息是什么意思用户想要什么推理当前情况下我该怎么做规划下一步或接下来几步应该调用哪个工具、做什么操作下面的代码用最简单的关键词匹配来模拟决策过程。真实的 Agent 里这一步由 LLM 完成能处理复杂得多的语义理解。实例# 决策模块负责思考和规划def make_decision(observation):根据感知信息做出简单决策。这里用关键词匹配来模拟实际中由 LLM 完成更复杂的推理。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. 行动模块 —— Agent 的执行者决策模块输出的是想法要做什么行动模块则负责将想法变成现实真的去做。它执行具体的操作从而影响外部环境常见的行动包括数字行动在屏幕上输出答案、调用某个函数、发起 API 请求、写入文件。物理行动通过控制硬件控制机械臂移动、让音箱播放声音。实例# 行动模块负责执行决策模块给出的指令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 的工作笔记如果没有记忆Agent 每次回复都是失忆状态——忘了你之前说过什么忘了它自己做过什么。记忆模块解决了这个问题它分两类短期记忆 / 对话历史记录本次对话中说过的话让 Agent 在多轮对话中保持连贯。就像你和朋友聊天你不需要每句话都重新解释背景。长期记忆 / 知识库通过向量数据库等技术存储的专属知识例如公司内部文档、用户偏好用于增强模型的能力。初学者可暂时忽略这部分先掌握短期记忆即可。在下面的完整示例中我们用一个 Python 列表来模拟短期记忆。5. 工具模块 —— Agent 的瑞士军刀模型本身的能力是有限的比如不知道实时天气、不能做复杂计算、不能操作文件。工具模块为 Agent 提供了一套外挂技能极大地扩展了其能力边界。工具可以是一个 Python 函数、一个第三方 API或者一个完整的外部软件。下面是一个最简单的工具示例实例# 工具模块示例一个简单的计算器工具def calculator_tool(expression):接收一个数学表达式字符串返回计算结果。这就是一个工具——等待被 Agent 的大脑按需调用。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# 注意Python 先算乘除后算加减所以是 3 10 13而不是 8 * 2 16实践练习构建一个简单的命令行 AI Agent上面我们分别介绍了每个模块。现在让我们把它们组合起来创建一个能进行持续对话和工具调用的完整迷你 Agent。运行前请先在脑海中过一遍这个结构用户输入 →感知→决策关键词匹配→行动调用工具或对话→ 输出结果 →记忆存入历史→ 等待下一轮输入实例# 完整迷你 AI Agent 示例import random# 工具定义 def get_weather(city):工具1模拟天气查询实际可替换为真实天气 APIweather_options [晴, 多云, 小雨, 大风]temperature random.randint(15, 35)return f{city}的天气是{random.choice(weather_options)}气温{temperature}℃。def simple_calculator(a, b, operator):工具2简单计算器if operator :return f{a} {b} {a b}elif operator -:return f{a} - {b} {a - b}else:return 暂不支持此运算。# 记忆短期# 用列表模拟对话历史每一条都是一个字符串conversation_history []# Agent 主循环 def run_simple_agent():print(【简单AI Agent已启动】输入退出来结束对话。)print(提示你可以问天气如北京今天天气或做计算如计算11\n)while True:# ---- 感知阶段获取用户输入 ----user_input input(您)conversation_history.append(f用户{user_input})# 特殊指令退出if user_input.lower() in [退出, exit, quit]:print(Agent再见)break# ---- 决策 行动阶段根据输入选择工具或对话 ----response if 天气 in user_input:# 尝试从输入中识别城市名默认用北京city 北京for c in [北京, 上海, 广州, 深圳]:if c in user_input:city cbreak# 调用天气工具response get_weather(city)elif 计算 in user_input or in user_input or - in user_input:# 简单的模式匹配识别几个固定的计算表达式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。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)# 启动 Agentif __name__ __main__:run_simple_agent()运行这个程序你将体验到一个能持续多轮对话的循环感知模块不断运转。根据你的输入关键词如天气、计算自动触发不同的工具行动模块。对话结束后可以看到完整的对话历史记录记忆模块。思考一下如果你想让这个 Agent 更强大可以尝试① 增加更多工具如查汇率、翻译② 把决策模块中的关键词匹配替换为真实的 LLM API 调用Agent 就能理解自然语言了总结与展望通过本文你应该已经掌握了 AI Agent 的基本概念它是由感知、决策大脑、行动、记忆、工具等模块组成的智能程序它通过ReAct 循环思考 → 行动 → 观察 → 再思考自主追求目标LLM 是它的大脑工具是它的手脚记忆让它保持连贯。一句话记住核心LLM 只能说Agent 能做。下一步学习建议深入大语言模型LLMAPI学习如何调用 OpenAI GPT、DeepSeek、通义千问等模型的 API将它们作为你 Agent 的真正大脑替换掉我们示例中简陋的关键词匹配。学习 Agent 开发框架探索LangChain、LlamaIndex或AutoGen等成熟框架。它们把记忆、工具链、任务编排等模块都封装好了用它们可以事半功倍避免重复造轮子。接入真实工具尝试将你的 Agent 连接到真实的 API例如数据库、邮件系统或天气服务解决实际问题。这一步会让你对工具的概念有全新的体会。学习提示工程Prompt Engineering如何给 LLM 写出高质量的指令直接决定 Agent 大脑的发挥水平。这是开发高效 Agent 不可忽视的关键技能。AI Agent 的世界广阔而充满可能从自动化个人助手到企业级智能解决方案它正在成为人机交互的新范式。希望你以此文为起点开始构建属于自己的智能体。