1. 什么是 AgentAgent智能体是当前人工智能领域最热门的概念之一。简单来说Agent 是一个能够感知环境、做出决策并执行行动的系统。它不仅仅是简单地回答问题而是能够自主地规划任务、调用工具、获取反馈并根据反馈调整自己的行为最终完成一个相对复杂的目标。与传统的大语言模型LLM不同传统 LLM 只能根据输入生成文本输出而 Agent 则在此基础上增加了行动能力。它可以通过调用外部工具如搜索引擎、代码解释器、数据库、API 等来获取信息、执行操作从而真正地“做事”而不只是“说话”。一个典型的 Agent 通常包含以下核心组件大脑LLM负责理解任务、进行推理、制定计划和生成决策。规划Planning将复杂任务拆解为多个子步骤并确定执行顺序。记忆Memory保存对话历史、中间结果和长期知识帮助 Agent 保持上下文一致性。工具ToolsAgent 可以调用的外部函数或 API如搜索、计算、代码执行等。行动Action根据决策调用相应的工具并处理工具返回的结果。下面这张图展示了 Agent 的基本工作流程flowchart TD A[用户输入任务] -- B[LLM 理解与规划] B -- C[拆解子任务] C -- D[调用工具执行] D -- E[获取工具结果] E -- F{任务是否完成} F --|否| B F --|是| G[输出最终结果]2. Agent 的核心原理要深入理解 Agent需要掌握几个关键原理ReAct 模式、工具调用和记忆机制。2.1 ReAct 模式ReActReasoning Acting是 Agent 最核心的工作模式。它让 LLM 在推理Reasoning和行动Acting之间交替进行先思考当前状态再决定采取什么行动观察行动结果后继续思考如此循环直到任务完成。ReAct 的循环过程可以概括为Thought思考分析当前问题决定下一步该做什么。Action行动选择一个工具并传入参数。Observation观察获取工具返回的结果。重复以上步骤直到得出最终答案。2.2 工具调用Function Calling工具调用是 Agent 与外部世界交互的桥梁。LLM 本身不具备执行能力但它可以生成结构化的调用指令指定要调用的函数名和参数。外部系统解析这些指令后执行相应的函数并把结果返回给 LLM。例如当用户问“北京现在天气怎么样”时Agent 会生成一个调用天气 API 的指令获取数据后再组织成自然语言回答。2.3 记忆机制Agent 的记忆分为短期记忆和长期记忆短期记忆当前对话的上下文通常通过把历史消息拼接到 Prompt 中实现。长期记忆跨会话的知识通常存储在向量数据库中通过语义检索获取相关片段。3. 代码实战用 Python 从零实现一个 Agent下面我们通过一个完整的 Python 示例从零实现一个简单的 Agent。这个 Agent 能够调用两个工具计算器和当前时间查询并通过 ReAct 模式自主完成任务。3.1 环境准备首先安装必要的依赖库pip install openai然后导入相关模块并配置 API Keyimport json import datetime from openai import OpenAI 请替换为你的真实 API Key client OpenAI(api_keyyour-api-key)3.2 定义工具函数我们定义两个简单的工具函数一个用于数学计算一个用于获取当前时间。def calculator(expression: str) - str: 计算数学表达式的结果 try: # 注意实际项目中应使用更安全的计算方式 result eval(expression) return str(result) except Exception as e: return f计算错误: {str(e)} def get_current_time() - str: 获取当前日期和时间 now datetime.datetime.now() return now.strftime(%Y-%m-%d %H:%M:%S) 工具注册表Agent 可用的工具列表 TOOLS { calculator: { description: 计算数学表达式例如 2 3 * 4, function: calculator, parameters: { type: object, properties: { expression: { type: string, description: 要计算的数学表达式 } }, required: [expression] } }, get_current_time: { description: 获取当前的日期和时间, function: get_current_time, parameters: { type: object, properties: {} } } }3.3 构建 Agent 核心循环接下来实现 Agent 的核心循环。我们使用 OpenAI 的 Function Calling 能力让模型自主决定是否调用工具以及调用哪个工具。class SimpleAgent: def __init__(self, modelgpt-4o-mini, max_steps5): self.model model self.max_steps max_steps self.messages [] self.tools [ { type: function, function: { name: name, description: info[description], parameters: info[parameters] } } for name, info in TOOLS.items() ] def run(self, user_input: str) -gt; str: 运行 Agent处理用户输入并返回最终结果 self.messages.append({role: user, content: user_input}) for step in range(self.max_steps): print(f\n--- 第 {step 1} 步 ---) # 调用 LLM response client.chat.completions.create( modelself.model, messagesself.messages, toolsself.tools, tool_choiceauto ) message response.choices[0].message self.messages.append(message) 如果模型没有要求调用工具说明已经得到最终答案 if not message.tool_calls: print(f最终回答: {message.content}) return message.content 处理工具调用 for tool_call in message.tool_calls: function_name tool_call.function.name arguments json.loads(tool_call.function.arguments) print(f调用工具: {function_name}, 参数: {arguments}) # 执行工具函数 if function_name in TOOLS: result TOOLS[function_name][function](**arguments) else: result f未知工具: {function_name} print(f工具返回: {result}) # 把工具结果加入消息列表 self.messages.append({ role: tool, tool_call_id: tool_call.id, content: result }) return 已达到最大步数任务未完成。 使用示例 agent SimpleAgent() result agent.run(帮我计算 (15 27) * 3 的结果然后告诉我现在的日期和时间)3.4 运行结果分析运行上述代码你会看到 Agent 的完整推理和行动过程。它可能会这样工作--- 第 1 步 --- 调用工具: calculator, 参数: {expression: (15 27) * 3} 工具返回: 126 --- 第 2 步 --- 调用工具: get_current_time, 参数: {} 工具返回: 2026-08-09 16:34:22 --- 第 3 步 --- 最终回答: 计算结果是 126。当前日期和时间是 2026-08-09 16:34:22。可以看到Agent 自主地完成了任务拆解、工具调用和结果汇总这正是 Agent 的核心价值所在。4. 实战进阶使用 LangChain 构建 Agent在实际项目中我们通常使用成熟的框架来构建 Agent其中最流行的是LangChain。LangChain 提供了丰富的工具集成和 Agent 实现大大降低了开发门槛。4.1 安装 LangChainpip install langchain langchain-openai4.2 使用 LangChain 创建 Agentfrom langchain.agents import create_tool_calling_agent, AgentExecutor from langchain.tools import tool from langchain_openai import ChatOpenAI from langchain_core.prompts import ChatPromptTemplate tool def add(a: int, b: int) - int: 计算两个整数的和 return a b tool def multiply(a: int, b: int) - int: 计算两个整数的乘积 return a * b 初始化 LLM llm ChatOpenAI(modelgpt-4o-mini, api_keyyour-api-key) 创建 Prompt prompt ChatPromptTemplate.from_messages([ (system, 你是一个乐于助人的 AI 助手可以调用工具来解决问题。), (human, {input}), (placeholder, {agent_scratchpad}) ]) 创建 Agent tools [add, multiply] agent create_tool_calling_agent(llm, tools, prompt) agent_executor AgentExecutor(agentagent, toolstools, verboseTrue) 运行 Agent result agent_executor.invoke({input: 请计算 23 乘以 4 的结果然后加上 15}) print(result[output])LangChain 封装了 ReAct 循环、工具调用解析和消息管理等复杂逻辑让我们可以专注于业务逻辑本身。5. Agent 的典型应用场景Agent 的应用场景非常广泛以下是几个典型的例子智能客服自动理解用户问题查询订单、退换货、解答常见问题。代码助手根据需求自动编写代码、运行测试、修复 Bug。数据分析自动查询数据库、生成报表、发现数据规律。自动化办公自动整理邮件、安排日程、生成会议纪要。研究助手自动搜索文献、总结要点、生成综述报告。6. 总结与展望Agent 是 AI 从“对话工具”走向“行动助手”的关键一步。通过本文的学习我们掌握了Agent 的基本概念和核心组件大脑、规划、记忆、工具和行动。ReAct 模式的工作原理思考、行动、观察的循环。如何用 Python 从零实现一个简单的 Agent。如何使用 LangChain 框架快速构建生产级 Agent。未来随着多模态模型、更强的推理能力和更丰富的工具生态的发展Agent 将能够处理越来越复杂的任务成为我们工作和生活中不可或缺的智能伙伴。建议读者在此基础上进一步探索多 Agent 协作、Agent 记忆持久化、以及 Agent 安全等进阶主题。