Python+Agent 入门实战:零基础搭建可复用 AI 智能体
介绍如何使用 Python 和 LangChain 框架从零搭建一个 AI 智能体。内容涵盖环境配置、OpenAI API Key 设置、工具模块编写及 Agent 核心逻辑实现。通过构建一个自动化 Excel 处理 Agent,演示了任务拆解、工具调用及结果反馈的完整流程,适合初学者快速上手 AI 应用开发。

介绍如何使用 Python 和 LangChain 框架从零搭建一个 AI 智能体。内容涵盖环境配置、OpenAI API Key 设置、工具模块编写及 Agent 核心逻辑实现。通过构建一个自动化 Excel 处理 Agent,演示了任务拆解、工具调用及结果反馈的完整流程,适合初学者快速上手 AI 应用开发。

2026 年,AI Agent 不再是大厂专属,借助 Python 生态和开源框架,普通开发者也能从 0 到 1 搭建属于自己的 AI 智能体。本文以 Python 为核心,从概念拆解到代码实战,从工具选型到避坑指南,附带流程图、可直接复制的代码和高频问题表格,新手跟着敲代码就能上手。
很多新手混淆了'Python 脚本'和'Python+Agent'的区别——普通 Python 脚本是'写死的指令执行',而 Python+Agent 是'智能的任务闭环',核心优势就是**'自主决策、自动执行、可复用、可扩展'**。
| 对比维度 | 普通 Python 脚本 | Python+Agent 智能体 | 核心优势体现 |
|---|---|---|---|
| 执行逻辑 | 按固定步骤执行,一步错全流程崩 | 自主拆解任务、动态调整步骤,容错性强 | 无需手动修改代码,适配不同场景 |
| 交互方式 | 被动执行,需手动触发,无法多轮交互 | 主动理解需求,支持多轮对话,记住上下文 | 像'助手'一样沟通,无需懂代码也能使用 |
| 功能扩展 | 新增功能需修改全部代码,复用性差 | 通过工具注册、插件扩展,无需改动核心逻辑 | 一次搭建,多场景复用(如办公、数据分析) |
| 技术依赖 | 仅依赖 Python 基础语法,无 AI 能力 | 结合大模型+Python 生态,具备智能决策能力 | 依托开源框架,零基础也能快速上手 |
新手不用追求复杂场景,优先选择'代码量少、落地快、能直接用'的方向,这 3 个场景是目前最适合入门的,也是企业刚需:
自动化办公 Agent:自动处理 Excel、生成报表、批量发送消息(Python 基础 + 简单 Agent 框架,1 天就能落地);本地知识库 Agent:上传文档(PDF、Word),用自然语言查询内容,无需手动检索(结合 RAG 技术,新手易上手);代码辅助 Agent:自动检查 Python 代码错误、优化代码、生成注释(贴合开发者自身需求,边学边用)。
不用堆砌复杂技术,这 4 个工具/框架就够了,全程 Python 编写,零基础也能快速掌握,按优先级排序:
新手避坑:不要一开始就学习多个框架(如 AutoGen、CrewAI),先吃透 LangChain+Python 的组合,再逐步扩展。本文实战案例仅用这 4 个核心工具,代码简洁,可直接复制运行。
环境搭建是新手最容易卡壳的地方,这里一步一步拆解,确保每个人都能搞定,无需复杂操作。
python --version # 输出 Python 3.11.x 即为成功
pip --version # 输出 pip 版本即可(一般会自动安装)
虚拟环境能隔离不同项目的依赖,避免出现'安装 A 包导致 B 包报错'的问题,新手一定要养成这个习惯,步骤如下:
# 1. 创建虚拟环境(环境名建议叫 agent-env,好记)
python -m venv agent-env
# 2. 激活虚拟环境(Windows 系统)
agent-env\Scripts\activate
# 2. 激活虚拟环境(Mac/Linux 系统)
source agent-env/bin/activate
# 激活成功后,终端前面会出现 (agent-env),如下所示:
(agent-env) C:\Users\XXX>
激活虚拟环境后,复制以下命令,一次性安装所有需要的依赖(LangChain、OpenAI、Chroma 等),无需手动逐个安装:
pip install langchain openai chromadb python-dotenv pandas openpyxl
说明:pandas 和 openpyxl 用于后续自动化办公 Agent 处理 Excel,提前安装,避免后续报错。
Agent 需要调用大模型才能实现智能决策,这里用 OpenAI 的 API,新手有免费额度,足够入门使用:
.env 的文件(无文件名,后缀为 env),打开文件,写入以下内容(替换为你的 API Key):
OPENAI_API_KEY=your_api_key_here # 替换成你复制的 OpenAI API Key
本次实战目标:搭建一个自动化 Excel 处理 Agent,功能包括:读取 Excel 文件、分析数据、生成可视化报表、保存结果,全程无需手动操作,新手跟着敲代码就能实现,代码注释详细,每一步都有说明。
在写代码前,先理清 Agent 的工作流程,避免盲目编码。本次搭建的 Excel 处理 Agent,核心分为 5 个模块,形成'接收需求→规划任务→执行操作→记忆结果→反馈输出'的闭环,流程图如下:

核心说明:本次实战不涉及复杂的多 Agent 协作,聚焦'单 Agent+Python 工具',重点让新手掌握'Agent 如何调用 Python 工具',为后续进阶打下基础。
项目结构简洁,共 4 个文件,新手可直接在桌面创建文件夹(命名为 excel-agent),然后创建以下文件:
excel-agent/
├── .env # 配置 OpenAI API Key
├── tools.py # 自定义 Python 工具(读取 Excel、生成报表等)
├── agent_core.py # Agent 核心逻辑(调度工具、规划任务)
└── main.py # 入口文件(运行 Agent,输入指令)
└── test.xlsx # 测试用 Excel 文件(自己创建,随便填点数据)
测试用 Excel 文件:新手可创建一个 test.xlsx,包含'姓名、年龄、成绩'三列,填入 10-20 条测试数据,用于后续 Agent 读取和分析。
定义 4 个核心 Python 工具,供 Agent 自主调用,代码注释详细,新手无需修改,直接复制即可:
from langchain.tools import tool
import pandas as pd
import matplotlib.pyplot as plt
import os
# 工具 1:读取 Excel 文件(核心工具,调用 pandas)
@tool
def read_excel(file_path: str) -> str:
"""
读取 Excel 文件内容,返回数据的基本信息(行数、列数、字段名、前 5 行数据)
Args:
file_path: Excel 文件路径(如./test.xlsx)
Returns:
数据基本信息,便于 Agent 分析数据
"""
# 检查文件是否存在
if not os.path.exists(file_path):
return f"❌ 错误:文件{file_path}不存在,请检查路径是否正确"
# 读取 Excel 文件
df = pd.read_excel(file_path)
# 返回数据基本信息
info = f"""✅ 成功读取 Excel 文件:{file_path}
- 数据总行数:{len(df)}
- 数据总列数:{len(df.columns)}
- 字段名称:{list(df.columns)}
- 前 5 行数据:
{df.head().to_string()}"""
print(info)
return info
# 工具 2:分析 Excel 数据(调用大模型辅助分析,结合 pandas)
@tool
def analyze_excel_data(file_path: str) -> str:
"""
分析 Excel 数据的核心信息,包括均值、中位数、异常值等(针对数值型字段)
Args:
file_path: Excel 文件路径(如./test.xlsx)
Returns:
数据详细分析结果
"""
if not os.path.exists(file_path):
return f"❌ 错误:文件{file_path}不存在,请检查路径是否正确"
df = pd.read_excel(file_path)
# 筛选数值型字段,进行分析
numeric_cols = df.select_dtypes(include=['int64', 'float64']).columns
if len(numeric_cols) == 0:
return "❌ 错误:Excel 文件中无数值型字段,无法进行数据分析"
# 计算核心统计信息
analysis = f"📊 Excel 数据详细分析结果(仅数值型字段):\n"
for col in numeric_cols:
analysis += f"- {col}:\n"
analysis += f" 均值:{df[col].mean():.2f}\n"
analysis += f" 中位数:{df[col].median():.2f}\n"
analysis += f" 最小值:{df[col].min()}\n"
analysis += f" 最大值:{df[col].max()}\n"
# 简单判断异常值(超出均值±2 倍标准差)
mean = df[col].mean()
std = df[col].std()
outliers = df[(df[col] < mean - 2 * std) | (df[col] > mean + 2 * std)]
analysis += f" 异常值数量:{len(outliers)}\n\n"
print(analysis)
return analysis
# 工具 3:生成数据可视化报表(调用 matplotlib)
@tool
def generate_excel_report(file_path: str, save_path: str = "./report.png") -> str:
"""
生成 Excel 数据的可视化报表(柱状图),保存到指定路径
Args:
file_path: Excel 文件路径(如./test.xlsx)
save_path: 报表保存路径(默认./report.png)
Returns:
报表生成结果
"""
if not os.path.exists(file_path):
return f"❌ 错误:文件{file_path}不存在,请检查路径是否正确"
df = pd.read_excel(file_path)
numeric_cols = df.select_dtypes(include=['int64', 'float64']).columns
if len(numeric_cols) == 0:
return "❌ 错误:Excel 文件中无数值型字段,无法生成报表"
# 生成柱状图(取第一个数值型字段为例)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 解决中文乱码
plt.figure(figsize=(10, 6))
plt.bar(df.index, df[numeric_cols[0]], color='#1f77b4', alpha=0.8)
plt.title(f'{numeric_cols[0]}数据分布', fontsize=14)
plt.xlabel('索引', fontsize=12)
plt.ylabel(numeric_cols[0], fontsize=12)
plt.grid(axis='y', alpha=0.3)
# 保存报表
plt.savefig(save_path, dpi=300, bbox_inches='tight')
plt.close()
result = f"✅ 可视化报表已生成,保存路径:{os.path.abspath(save_path)}"
print(result)
return result
# 工具 4:保存分析结果到文件
@tool
def save_analysis_result(content: str, save_path: str = "./analysis_result.txt") -> str:
"""
将数据分析结果保存到文本文件中
Args:
content: 要保存的分析结果内容
save_path: 保存路径(默认./analysis_result.txt)
Returns:
保存结果
"""
with open(save_path, 'w', encoding='utf-8') as f:
f.write(content)
result = f"✅ 分析结果已保存,保存路径:{os.path.abspath(save_path)}"
print(result)
return result
# 工具列表:将所有工具整理成列表,供 Agent 调用
excel_tools = [read_excel, analyze_excel_data, generate_excel_report, save_analysis_result]
整合 Python 工具、大模型和记忆模块,创建 Agent,实现自主规划任务、调用工具,代码如下:
from langchain.agents import AgentExecutor, create_openai_tools_agent
from langchain_openai import ChatOpenAI
from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain.memory import VectorStoreRetrieverMemory
from langchain.vectorstores import Chroma
from langchain.embeddings.openai import OpenAIEmbeddings
from tools import excel_tools
from dotenv import load_dotenv
import os
# 加载.env 文件中的 API Key
load_dotenv()
# 1. 初始化大模型(新手用 gpt-3.5-turbo,速度快、免费额度足)
llm = ChatOpenAI(
model="gpt-3.5-turbo",
temperature=0.4, # 温度越低,决策越稳定,避免乱调用工具
api_key=os.getenv("OPENAI_API_KEY")
)
# 2. 初始化记忆模块(Chroma 向量数据库,存储操作记录和数据信息)
embeddings = OpenAIEmbeddings()
vector_store = Chroma(
embedding_function=embeddings,
persist_directory="./agent_memory", # 记忆数据存储路径
collection_name="excel_agent_memory"
)
vector_store.persist()
# 记忆检索器,供 Agent 查询历史记录
retriever = vector_store.as_retriever(search_kwargs={"k": 2})
memory = VectorStoreRetrieverMemory(
retriever=retriever,
memory_key="chat_history",
input_key="input",
output_key="output"
)
# 3. 定义 Agent 提示词(核心!告诉 Agent 它的角色和工作规则)
prompt = ChatPromptTemplate.from_messages([
("system", """你是一个专业的 Excel 处理 AI 智能体,基于 Python 实现,负责帮助用户自动处理 Excel 相关任务。
工作规则:
1. 你的核心工具是 python 的 pandas、matplotlib 库,所有 Excel 操作都通过调用提供的工具完成;
2. 接收用户指令后,先拆解任务步骤(例如:读取 Excel→分析数据→生成报表→保存结果),再逐步调用工具;
3. 调用工具前,必须检查参数是否正确(如文件路径是否合理),若参数缺失,及时询问用户;
4. 每次执行完一个工具,查看返回结果,确认无错误后,再执行下一个步骤;
5. 利用记忆模块,记住之前处理过的文件路径、分析结果,避免重复操作;
6. 最终将所有结果整理成清晰的文字,反馈给用户,包括文件保存路径、核心分析结论。"""),
MessagesPlaceholder(variable_name="chat_history"), # 记忆上下文
("user", "{input}"), # 用户输入指令
MessagesPlaceholder(variable_name="agent_scratchpad") # Agent 思考过程
])
# 4. 创建 Agent(基于 OpenAI 工具调用能力,结合 Python 工具)
agent = create_openai_tools_agent(
llm=llm,
tools=excel_tools,
prompt=prompt
)
# 5. 创建 Agent 执行器(调度 Agent、工具、记忆)
agent_executor = AgentExecutor(
agent=agent,
tools=excel_tools,
memory=memory,
verbose=True, # 开启详细日志,便于新手调试
handle_parsing_errors=True # 自动处理解析错误
)
# 定义 Agent 运行函数(供入口文件调用)
def run_excel_agent(user_input: str):
try:
print(f"\n📋 用户指令:{user_input}")
print("🚀 Agent 开始执行任务...\n")
result = agent_executor.invoke({"input": user_input})
print(f"\n✅ 任务执行完成!")
print(f"📄 最终结果:{result['output']}")
return result
except Exception as e:
error_msg = f"❌ 任务执行失败:{str(e)}"
print(error_msg)
return {"output": error_msg}
简单的入口函数,运行后输入指令,即可让 Agent 自动处理 Excel 任务,代码如下:
from agent_core import run_excel_agent
if __name__ == "__main__":
print("🎉 Python+Excel 处理 Agent 已启动!")
print("💡 新手测试指令推荐:读取当前目录下的 test.xlsx 文件,分析数据,生成报表,然后保存分析结果")
print("❌ 输入'退出'即可结束程序\n")
while True:
user_input = input("你:")
if user_input == "退出":
print("👋 程序已结束,再见!")
break
# 运行 Agent,执行用户指令
run_excel_agent(user_input)
所有代码编写完成后,按以下步骤运行,验证 Agent 是否能正常工作,步骤如下:
python main.py;读取当前目录下的 test.xlsx 文件,分析数据,生成报表,然后保存分析结果运行成功后,打开项目根目录,会看到 3 个新增文件:
agent_memory/:Chroma 记忆模块存储的文件,记录 Agent 的操作历史;report.png:生成的可视化报表(柱状图);analysis_result.txt:保存的数据分析结果。打开这 3 个文件,确认内容正确,就说明你的第一个 Python+Agent 智能体搭建成功了!
搭建完第一个 Agent 后,可按以下路线进阶,逐步提升能力,贴合 2026 年技术趋势,避免盲目学习:
基础阶段(1-2 周):熟练掌握本文的 Excel 处理 Agent,能独立修改工具(如增加 Excel 筛选、排序功能),理解 Agent 的核心流程; 进阶阶段(2-4 周):学习 RAG 检索增强技术,搭建本地知识库 Agent(上传 PDF、Word,实现智能查询),掌握多工具组合使用; 提升阶段(1-2 个月):学习多 Agent 协作(用 LangChain+AutoGen 搭建多 Agent 团队),实现更复杂的任务(如办公自动化全流程); 实战阶段(长期):结合自身需求,开发实用 Agent(如代码辅助 Agent、客服 Agent),尝试部署到服务器,实现 24 小时自动运行。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online