用 OpenAI Agents SDK 构建一个能写代码、还能执行代码的 AI Agent

大语言模型(LLM)已经能够生成代码,但真正让 Agent 发挥价值的,并不是"写代码",而是写完之后还能自己运行、验证,再根据结果继续迭代。

拥有代码执行能力后,一个 Agent 就不仅仅是聊天机器人了,它还能分析数据、处理文件、生成图表,甚至自动输出报告,很多原本需要人工完成的工作都可以交给它完成。

本文将结合 OpenAI Agents SDKDocker,搭建一个具备代码执行能力的 AI Agent,并通过一个 CSV 数据分析案例,看看它是如何完成一整套数据分析流程的。

图片1.png

为什么 Agent 需要代码执行能力?

普通的大模型只能根据已有知识回答问题。

而具备代码执行能力之后,Agent 的能力边界会被进一步扩展,例如自动读取 CSV、Excel、PDF 等文件、编写 Python 脚本进行数据处理 、生成统计图表 、输出 Markdown、CSV 等分析结果、根据运行结果继续修改代码并再次执行,整个流程形成了一个闭环:

用户提供数据 → Agent 编写代码 → 执行代码 → 分析结果 → 输出最终文件

对于数据分析、自动报表、AI 办公等场景来说,这种能力非常实用。

OpenAI Agents SDK 是如何实现代码执行的?

一个具备代码执行能力的 Agent,大致由三个部分组成。

1. LLM

负责理解用户需求,例如分析 CSV、决定使用哪些算法、生成 Python 代码、读取运行结果,并根据结果继续修改代码。

2. Workspace(工作区)

工作区相当于 Agent 的文件系统,用户上传的数据都会放到这里,例如:

input/data.csv

运行过程中生成的结果也会保存到这里,例如:

output/report.md output/chart.png

整个分析过程都围绕 Workspace 展开。

3. Sandbox(执行环境)

Agent 生成代码以后,需要一个真正可以运行 Python 的环境。

官方提供了多种方案,例如:

OpenAI Code Interpreter

Docker Sandbox

Shell Tool

其中 Docker 是最常见的一种方案。

Docker 可以把运行环境完全隔离,既方便管理依赖,也能保证宿主机不会受到影响。

如果后续准备长期部署这类 Agent,也可以直接放到 Linux 云服务器上运行。像 Hostease 的 VPS 和云服务器,对 Docker、Python 等环境支持比较完善,部署起来会省去不少环境配置工作。

使用 SandboxAgent

OpenAI Agents SDK 已经把整个流程进行了封装。

首先,需要告诉 Agent 哪些文件需要放进工作区。

例如:

from pathlib import Path from agents.sandbox import LocalFile, Manifest manifest = Manifest( entries={ "input/data.csv": LocalFile(src=Path("data/data.csv")), }, )

这段代码会把本地的 CSV 文件映射到 Sandbox 内部。

随后创建 Agent:

agent = SandboxAgent( name="coding agent", instructions="Inspect files and write code.", model="gpt-5.4", default_manifest=manifest, )

这里主要指定了三个内容:

使用的模型

Agent 的职责

默认工作区

接下来,只需要创建 Docker Sandbox,并把两者关联即可。

result = await Runner.run( agent, "Analyze input/data.csv", run_config=RunConfig( sandbox=SandboxRunConfig(session=sandbox_session), ), )

整个过程其实并不复杂。

模型负责思考,Sandbox 负责运行,两者之间由 Agents SDK 自动协调。

一个完整案例:分析建筑能耗数据

为了验证 Agent 是否真正具备数据分析能力,我们准备了一份建筑能耗数据。

CSV 中包含三列数据:

timestamp energy_kwh outdoor_temp_c

分别表示:

时间

每小时耗电量

室外温度

任务目标非常简单:

找出建筑能耗中的异常情况。

最终要求 Agent 输出三个文件:

output/anomalies.csv output/energy_anomalies.png output/anomaly_report.md

其中:

CSV 保存异常数据

PNG 保存可视化图表

Markdown 输出分析报告

准备 Docker 环境

由于 Agent 需要执行 Python,因此先准备一个 Docker 镜像。

Dockerfile 非常简单:

FROM python:3.12-slim ENV MPLBACKEND=Agg RUN pip install numpy scipy pandas matplotlib WORKDIR /workspace

这里提前安装好了几个常用的数据分析库:

NumPy

Pandas

SciPy

Matplotlib

这样 Agent 运行时就可以直接调用这些库,而不用每次重新安装。

Agent 会做些什么?

真正运行之后,整个流程几乎全部自动完成。

Agent 首先会读取 CSV 文件,然后检查数据列、数据类型、是否存在空值、总记录数,随后开始编写 Python 脚本。

脚本主要完成几件事情:

建立正常能耗基线

计算每小时偏差

使用 Robust Z-Score 判断异常

绘制异常点图表

输出 CSV

生成 Markdown 报告

整个过程几乎不需要人工参与。

如果脚本运行失败,Agent 还会根据错误信息重新修改代码,再继续执行。

这也是代码执行 Agent 相比普通聊天模型最大的优势。

查看分析结果

运行结束以后,Sandbox 中已经生成了所有输出文件。

SDK 支持把整个 Workspace 打包导出:

workspace_archive = await sandbox_session.persist_workspace()

随后就可以把需要的文件提取到本地。

最终可以看到:

anomalies.csv energy_anomalies.png anomaly_report.md

在测试过程中,Agent 成功定位到了数据中的异常能耗事件,并在图表中进行了标记。

与此同时,它还自动生成了一份 Markdown 报告,说明采用了什么检测方法,以及为什么判定这些数据属于异常。

整个流程真正实现了:

数据输入 → 自动分析 → 自动写代码 → 自动执行 → 自动生成结果

几乎不需要人工干预。

实际项目中需要注意哪些问题?

如果准备把这种 Agent 应用到真实项目中,有几个地方值得提前规划。

首先,要明确 Agent 的职责。

Prompt 中尽量写清楚需要完成哪些任务,以及最终输出哪些文件,否则生成结果可能不符合预期。

其次,要提前准备好运行环境。

例如需要哪些 Python 库、是否允许联网、是否允许执行 Shell 命令,都应该提前配置好。

另外,建议统一规定输出目录和文件命名方式。

例如所有结果统一放到 output/ 目录,这样后续无论是自动下载还是交给其他系统继续处理,都更加方便。

如果后续需要长期运行多个 Agent,建议直接部署到支持 Docker 的 Linux 云服务器,而不是一直依赖本地电脑。这样不仅运行更稳定,也方便后续扩展。像 Hostease 的云服务器就比较适合作为这类 AI Agent 的运行环境,部署完成后基本可以长期稳定运行。

写在最后

代码执行能力,让 AI Agent 从"会聊天"真正升级成了"会干活"。

借助 OpenAI Agents SDK,我们几乎不用自己实现复杂的执行流程,就可以让 Agent 自动完成代码生成、运行、调试以及结果输出。

对于数据分析、自动报表、文件处理、数据清洗等任务来说,这种模式已经具备很高的实用价值。

随着 Agent 能力不断完善,未来它能够承担的工作也会越来越多,而代码执行,无疑是其中最关键的一块能力。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容