
1. 引言什么是 AI AgentAI Agent智能体是以大语言模型LLM为核心能够感知环境、自主规划、调用工具并执行任务以达成目标的程序系统。与传统单轮问答不同Agent 具备记忆、推理和行动能力可以完成多步骤复杂任务。本文面向零基础或初级开发者从核心概念讲起逐步深入到代码实战帮助你建立 AI Agent 工程师所需的知识体系和动手能力。2. 核心概念与架构一个完整的 AI Agent 通常由以下核心模块组成大语言模型LLM负责理解指令、推理决策和生成文本。规划Planning将复杂任务拆解为可执行的子步骤。记忆Memory保存对话历史、任务状态和长期知识。工具调用Tool Use通过函数调用访问外部 API、数据库或代码执行环境。行动与反馈Action Feedback执行动作并根据结果调整下一步计划。下图展示了 Agent 的基本工作流程flowchart TD A[用户输入] -- B[LLM 理解与规划] B -- C{是否需要工具?} C -- 是 -- D[调用工具/API] D -- E[获取结果] E -- B C -- 否 -- F[生成最终回复] F -- G[输出给用户]3. 环境准备在开始编码前请确保本地环境满足以下要求Python 3.10 或更高版本一个 OpenAI 兼容的 API Key或使用本地模型如 Ollama安装必要的 Python 包执行以下命令安装依赖pip install openai python-dotenv在项目根目录创建.env文件写入你的 API KeyOPENAI_API_KEYsk-你的密钥 OPENAI_BASE_URLhttps://api.openai.com/v14. 第一个 Agent简单的对话助手我们先从最基础的对话助手开始理解 LLM 调用的基本流程。import os from openai import OpenAI from dotenv import load_dotenv load_dotenv() client OpenAI( api_keyos.getenv(OPENAI_API_KEY), base_urlos.getenv(OPENAI_BASE_URL), ) def chat(prompt: str) - str: response client.chat.completions.create( modelgpt-4o-mini, messages[ {role: system, content: 你是一个乐于助人的 AI 助手。}, {role: user, content: prompt}, ], ) return response.choices[0].message.content if name main: print(chat(请用一句话介绍你自己))运行上述代码你会得到模型返回的自我介绍。这是所有 Agent 的基础——先学会与 LLM 对话。5. 让 Agent 学会调用工具真正的 Agent 需要调用外部工具。OpenAI 提供了 Function Calling 机制让模型可以输出结构化调用指令。下面我们实现一个能查询天气的 Agent。import json import os from openai import OpenAI from dotenv import load_dotenv load_dotenv() client OpenAI(api_keyos.getenv(OPENAI_API_KEY)) 模拟天气查询工具 def get_weather(city: str) - str: weather_data { 北京: 晴25°C, 上海: 多云28°C, 广州: 小雨30°C, } return weather_data.get(city, 暂无该城市数据) tools [ { type: function, function: { name: get_weather, description: 查询指定城市的天气, parameters: { type: object, properties: { city: {type: string, description: 城市名称} }, required: [city], }, }, } ] def run_agent(user_input: str) - str: messages [{role: user, content: user_input}] response client.chat.completions.create( modelgpt-4o-mini, messagesmessages, toolstools, tool_choiceauto, ) msg response.choices[0].message if msg.tool_calls: # 执行工具调用 for tool_call in msg.tool_calls: args json.loads(tool_call.function.arguments) result get_weather(args[city]) messages.append(msg) messages.append({ role: tool, tool_call_id: tool_call.id, content: result, }) # 将工具结果返回给模型生成最终回答 final client.chat.completions.create( modelgpt-4o-mini, messagesmessages, ) return final.choices[0].message.content return msg.content if name main: print(run_agent(北京今天天气怎么样))这段代码演示了 Agent 的核心循环模型判断需要调用工具我们执行工具并返回结果模型再基于结果生成最终回答。6. 使用 LangChain 构建 AgentLangChain 是目前最流行的 Agent 开发框架之一它封装了工具调用、记忆管理和链式调用等复杂逻辑。首先安装依赖pip install langchain langchain-openai下面用 LangChain 快速构建一个带记忆的 Agentimport os from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain.agents import create_tool_calling_agent, AgentExecutor from langchain.tools import tool from langchain.memory import ConversationBufferMemory from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder load_dotenv() tool def add(a: float, b: float) - float: 计算两个数字的和 return a b tool def multiply(a: float, b: float) - float: 计算两个数字的乘积 return a * b llm ChatOpenAI(modelgpt-4o-mini, temperature0) prompt ChatPromptTemplate.from_messages([ (system, 你是一个数学计算助手请使用工具完成计算。), MessagesPlaceholder(variable_namechat_history), (human, {input}), MessagesPlaceholder(variable_nameagent_scratchpad), ]) memory ConversationBufferMemory( memory_keychat_history, return_messagesTrue, ) agent create_tool_calling_agent(llm, [add, multiply], prompt) executor AgentExecutor(agentagent, tools[add, multiply], memorymemory, verboseTrue) if name main: print(executor.invoke({input: 请计算 3 加 5 等于多少})) print(executor.invoke({input: 再帮我算一下刚才的结果乘以 4 是多少}))注意第二个问题用到了「刚才的结果」这正是记忆模块在起作用。LangChain 自动维护了对话历史让 Agent 具备多轮上下文理解能力。7. 实战项目自动研究报告生成器下面我们综合运用所学知识构建一个能自动搜索资料并生成研究报告的 Agent。这个项目包含搜索工具、内容总结和报告生成三个环节。import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain.agents import create_tool_calling_agent, AgentExecutor from langchain.tools import tool from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder load_dotenv() 模拟搜索工具实际可接入 SerpAPI 或 Bing Search tool def search_web(query: str) - str: 搜索互联网获取最新信息 # 这里用模拟数据代替真实搜索 database { AI Agent: AI Agent 是 2025 年最热门的 AI 应用方向市场规模预计达 500 亿美元。, 大模型: 大语言模型参数规模持续增长多模态成为新趋势。, 自动驾驶: L4 级自动驾驶进入商业化试点阶段。, } return database.get(query, f关于 {query} 的搜索结果暂无详细数据建议查阅最新行业报告。) tool def summarize(text: str) - str: 对长文本进行摘要 # 实际项目中可调用 LLM 完成摘要 return f摘要{text[:50]}... llm ChatOpenAI(modelgpt-4o-mini, temperature0.3) prompt ChatPromptTemplate.from_messages([ (system, 你是一名资深行业分析师请基于工具返回的资料撰写结构清晰、数据详实的研究报告。), (human, {input}), MessagesPlaceholder(variable_nameagent_scratchpad), ]) agent create_tool_calling_agent(llm, [search_web, summarize], prompt) executor AgentExecutor(agentagent, tools[search_web, summarize], verboseTrue) if name main: result executor.invoke({ input: 请研究 AI Agent 行业的发展现状并生成一份 500 字左右的报告。 }) print(result[output])运行后Agent 会先调用搜索工具获取资料再调用摘要工具整理信息最后生成完整报告。你可以把search_web替换为真实的搜索 API让 Agent 具备联网能力。8. 进阶多 Agent 协作复杂任务往往需要多个 Agent 分工协作。下面演示一个「项目经理 程序员 测试员」的多 Agent 系统。import os from dotenv import load_dotenv from langchain_openai import ChatOpenAI from langchain.agents import create_tool_calling_agent, AgentExecutor from langchain.tools import tool from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder load_dotenv() tool def write_code(requirement: str) - str: 根据需求编写 Python 代码 return fdef solution():\n # 实现{requirement}\n return 完成 tool def run_tests(code: str) - str: 对代码执行测试 return 测试通过无错误。 llm ChatOpenAI(modelgpt-4o-mini, temperature0) def create_agent(system_prompt: str, tools: list): prompt ChatPromptTemplate.from_messages([ (system, system_prompt), (human, {input}), MessagesPlaceholder(variable_nameagent_scratchpad), ]) agent create_tool_calling_agent(llm, tools, prompt) return AgentExecutor(agentagent, toolstools, verboseTrue) 三个角色 manager create_agent( 你是项目经理负责拆解任务并分派给程序员。, [write_code], ) programmer create_agent( 你是资深程序员负责编写高质量代码。, [write_code], ) tester create_agent( 你是测试工程师负责验证代码质量。, [run_tests], ) if name main: # 模拟协作流程 task 实现一个计算斐波那契数列的函数 plan manager.invoke({input: f请拆解任务{task}}) code programmer.invoke({input: f请编写代码{task}}) test_result tester.invoke({input: f请测试代码{code[output]}}) print(项目经理计划, plan[output]) print(程序员产出, code[output]) print(测试结果, test_result[output])多 Agent 协作的核心思想是「职责分离」每个 Agent 只负责一个专业领域通过工具和消息传递完成整体任务。实际生产环境中你可以用消息队列或工作流引擎来编排这些 Agent。9. 常见问题与调试技巧开发 Agent 过程中你可能会遇到以下常见问题问题可能原因解决方案模型不调用工具工具描述不清晰在工具 description 中写清楚用途和参数含义工具返回格式错误JSON 解析失败用 try-except 包裹解析逻辑打印原始返回Agent 陷入死循环缺少终止条件设置最大迭代次数max_iterations上下文过长记忆无限累积使用滑动窗口或摘要压缩历史调试时建议开启verboseTrue观察 Agent 每一步的思考和工具调用过程这是定位问题最有效的手段。10. 总结与学习路线本文从零开始介绍了 AI Agent 的核心概念、架构和代码实战涵盖工具调用、LangChain 框架、记忆管理和多 Agent 协作。要成为一名合格的 AI Agent 工程师建议按以下路线继续深入学习第一阶段熟练掌握 Python 和 LLM API 调用。第二阶段深入理解 Function Calling 和工具设计模式。第三阶段学习 LangChain、LlamaIndex 等框架的源码。第四阶段研究 RAG检索增强生成、Agent 记忆持久化和多 Agent 编排。第五阶段关注 AutoGPT、MetaGPT 等前沿项目动手复现并改进。AI Agent 是当前 AI 工程化最活跃的方向之一希望本文能帮你迈出扎实的第一步。动手把上面的代码跑起来再结合自己的业务场景改造你会成长得更快。