Python+Agent 入门实战:搭建可复用 AI 智能体
Python Agent 技术结合大模型与 Python 生态实现自主任务执行。本文详解从零搭建环境,配置 OpenAI API,利用 LangChain 框架开发自动化 Excel 处理智能体。涵盖工具模块编写、核心逻辑调度及记忆存储机制,提供可直接运行的代码示例与测试验证步骤,帮助开发者快速掌握 Agent 构建流程并拓展至 RAG 或多 Agent 协作场景。

Python Agent 技术结合大模型与 Python 生态实现自主任务执行。本文详解从零搭建环境,配置 OpenAI API,利用 LangChain 框架开发自动化 Excel 处理智能体。涵盖工具模块编写、核心逻辑调度及记忆存储机制,提供可直接运行的代码示例与测试验证步骤,帮助开发者快速掌握 Agent 构建流程并拓展至 RAG 或多 Agent 协作场景。

随着技术发展,AI Agent 不再是大厂专属。借助 Python 生态和开源框架,开发者也能从 0 到 1 搭建属于自己的 AI 智能体。普通 Python 脚本是'写死的指令执行',而 Python+Agent 是'智能的任务闭环',核心优势在于自主决策、自动执行、可复用及可扩展。
| 对比维度 | 普通 Python 脚本 | Python+Agent 智能体 | 核心优势体现 |
|---|---|---|---|
| 执行逻辑 | 按固定步骤执行,一步错全流程崩 | 自主拆解任务、动态调整步骤,容错性强 | 无需手动修改代码,适配不同场景 |
| 交互方式 | 被动执行,需手动触发,无法多轮交互 | 主动理解需求,支持多轮对话,记住上下文 | 像'助手'一样沟通,无需懂代码也能使用 |
| 功能扩展 | 新增功能需修改全部代码,复用性差 | 通过工具注册、插件扩展,无需改动核心逻辑 | 一次搭建,多场景复用(如办公、数据分析) |
| 技术依赖 | 仅依赖 Python 基础语法,无 AI 能力 | 结合大模型 +Python 生态,具备智能决策能力 | 依托开源框架,零基础也能快速上手 |
新手优先选择'代码量少、落地快、能直接用'的方向,这 3 个场景是目前最适合入门的:
不用堆砌复杂技术,这 4 个工具/框架就够了,全程 Python 编写:
python --version,输出 Python 3.11.x 即为成功。虚拟环境能隔离不同项目的依赖,避免冲突。
# 1. 创建虚拟环境(环境名建议叫 agent-env)
python -m venv agent-env
# 2. 激活虚拟环境(Windows 系统)
agent-env\Scripts\activate
# 2. 激活虚拟环境(Mac/Linux 系统)
source agent-env/bin/activate
激活虚拟环境后,复制以下命令一次性安装所有需要的依赖:
pip install langchain openai chromadb python-dotenv pandas openpyxl
说明:pandas 和 openpyxl 用于后续自动化办公 Agent 处理 Excel,提前安装,避免后续报错。
Agent 需要调用大模型才能实现智能决策。
.env 的文件,写入以下内容(替换为你的 API Key):
OPENAI_API_KEY=your_api_key_here
本次实战目标:搭建一个自动化 Excel 处理 Agent,功能包括:读取 Excel 文件、分析数据、生成可视化报表、保存结果。
核心分为 5 个模块,形成'接收需求→规划任务→执行操作→记忆结果→反馈输出'的闭环。
项目结构简洁,共 4 个文件,新手可直接在桌面创建文件夹(命名为 excel-agent),然后创建以下文件:
excel-agent/
├── .env # 配置 OpenAI API Key
├── tools.py # 自定义 Python 工具
├── agent_core.py # Agent 核心逻辑
├── main.py # 入口文件
└── test.xlsx # 测试用 Excel 文件
测试用 Excel 文件:创建一个 test.xlsx,包含'姓名、年龄、成绩'三列,填入 10-20 条测试数据。
定义 4 个核心 Python 工具,供 Agent 自主调用。
from langchain.tools import tool
import pandas as pd
import matplotlib.pyplot as plt
import os
# 工具 1:读取 Excel 文件
@tool
def read_excel(file_path: str) -> str:
"""读取 Excel 文件内容,返回数据的基本信息"""
if not os.path.exists(file_path):
return f"❌ 错误:文件{file_path}不存在"
df = pd.read_excel(file_path)
info = f"✅ 成功读取文件:{file_path}\n- 行数:{len(df)} 列数:{len(df.columns)}\n- 字段:{list(df.columns)}\n- 前 5 行:\n{df.head().to_string()}"
print(info)
return info
# 工具 2:分析 Excel 数据
@tool
def analyze_excel_data(file_path: str) -> str:
"""分析数值型字段的核心统计信息"""
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 not numeric_cols.empty:
analysis = "📊 数据分析结果:\n"
for col numeric_cols:
analysis +=
(analysis)
analysis
() -> :
os.path.exists(file_path):
df = pd.read_excel(file_path)
numeric_cols = df.select_dtypes(include=[, ]).columns
numeric_cols.empty:
plt.rcParams[] = []
plt.figure(figsize=(, ))
plt.bar(df.index, df[numeric_cols[]], color=, alpha=)
plt.title(, fontsize=)
plt.savefig(save_path, dpi=, bbox_inches=)
plt.close()
() -> :
(save_path, , encoding=) f:
f.write(content)
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. 初始化大模型
llm = ChatOpenAI(
model="gpt-3.5-turbo",
temperature=0.4,
api_key=os.getenv("OPENAI_API_KEY")
)
# 2. 初始化记忆模块
embeddings = OpenAIEmbeddings()
vector_store = Chroma(
embedding_function=embeddings,
persist_directory="./agent_memory",
collection_name="excel_agent_memory"
)
vector_store.persist()
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 提示词
prompt = ChatPromptTemplate.from_messages([
("system", """你是一个专业的 Excel 处理 AI 智能体,基于 Python 实现,负责帮助用户自动处理 Excel 相关任务。
工作规则:
1. 你的核心工具是 python 的 pandas、matplotlib 库,所有 Excel 操作都通过调用提供的工具完成;
2. 接收用户指令后,先拆解任务步骤,再逐步调用工具;
3. 调用工具前,必须检查参数是否正确,若参数缺失,及时询问用户;
4. 每次执行完一个工具,查看返回结果,确认无错误后,再执行下一个步骤;
5. 利用记忆模块,记住之前处理过的文件路径、分析结果,避免重复操作;
6. 最终将所有结果整理成清晰的文字,反馈给用户。"""),
MessagesPlaceholder(variable_name="chat_history"),
("user", "{input}"),
MessagesPlaceholder(variable_name=)
])
agent = create_openai_tools_agent(
llm=llm,
tools=excel_tools,
prompt=prompt
)
agent_executor = AgentExecutor(
agent=agent,
tools=excel_tools,
memory=memory,
verbose=,
handle_parsing_errors=
)
():
:
()
()
result = agent_executor.invoke({: user_input})
()
()
result
Exception e:
error_msg =
(error_msg)
{: error_msg}
简单的入口函数,运行后输入指令,即可让 Agent 自动处理 Excel 任务。
from agent_core import run_excel_agent
if __name__ == "__main__":
print("🎉 Excel 处理 Agent 已启动!")
print("💡 测试指令:读取 test.xlsx,分析数据,生成报表并保存结果")
print("❌ 输入'退出'结束程序\n")
while True:
user_input = input("你:")
if user_input == "退出":
print("👋 程序结束!")
break
run_excel_agent(user_input)
python main.py;读取当前目录下的 test.xlsx 文件,分析数据,生成报表,然后保存分析结果。运行成功后,打开项目根目录,会看到 3 个新增文件:
agent_memory/:Chroma 记忆模块存储的文件;report.png:生成的可视化报表;analysis_result.txt:保存的数据分析结果。搭建完第一个 Agent 后,可按以下路线进阶:
AI Agent 的核心竞争力,在于能用 Python 落地解决实际问题。对于新手来说,无需畏惧复杂的技术概念,从一个简单的场景入手,逐步积累经验,就能快速掌握 Python+Agent 的核心能力。本文的代码可直接复制运行,新手可根据自身需求修改工具,实现个性化落地。

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