首页 > 人工智能 > 人工智能 > 如何将Python脚本转变为AI智能体
学习如何使用 OpenAI Agents SDK(软件开发工具包) 构建 Python AI 智能体,利用工具调用和函数工具来自动化多步骤工作流。

你不需要重写 Python 应用程序就可以开始使用 AI 智能体。
如果你的脚本已经包含有用的函数,你可以将这些函数作为工具暴露出来,让 LLM(大语言模型) 决定何时调用它们、提供什么参数以及如何使用它们的输出。
在本教程中,我们将以一个简单的网站监控脚本为例,使用 OpenAI Agents SDK 将其转变为 AI 智能体。
在构建 AI 智能体之前,让我们先从一个普通的 Python 程序开始。
假设我们想要检查一个网站是否有响应,并测量请求需要多长时间:
from time import perf_counter
import requests
def check_website(url: str) -> str:
start = perf_counter()
try:
response = requests.get(url, timeout=10)
latency = perf_counter() - start
return (
f"{url}\n"
f"Status: {response.status_code}\n"
f"Response time: {latency:.2f}s"
)
except requests.RequestException as error:
return f"{url}\nError: {error}"
print(check_website("https://www.python.org"))https://www.python.org Status: 200 Response time: 0.99s
该脚本完全按照我们编程设定的方式执行:发送 HTTP 请求、收集状态码、测量响应时间并返回结果。
这很有用,但工作流是完全固定的:

如果我们想要检查五个网站、比较它们的响应时间,或者确定哪个网站看起来不健康,我们需要自己编写这些逻辑。
这正是 AI 智能体改变工作流程的地方。
与其在 Python 中编码每一个决策,我们可以将 check_website() 作为一个工具暴露出来,并给 AI 模型一个目标。模型随后可以决定何时调用该工具、检查哪个 URL、使用多少次以及如何处理结果。

首先,设置一个 Python 项目并安装构建和运行智能体所需的包。
创建一个新项目:
mkdir website-agent cd website-agent uv init uv add openai-agents requests
pip install openai-agents requests
设置你的 OpenAI API(应用程序编程接口) 密钥:
export OPENAI_API_KEY="your-api-key"
Agents SDK 为智能体、工具、交接、会话和追踪提供了一个轻量级运行时。
接下来,将我们现有的 Python 函数暴露为一个模型可以选择调用的工具。
我们可以保留几乎所有现有的函数。
主要的变化是添加 @function_tool :
from time import perf_counter
import requests
from agents import function_tool
@function_tool
def check_website(url: str) -> str:
"""Check a website's HTTP status and response time."""
start = perf_counter()
try:
response = requests.get(url, timeout=10)
latency = perf_counter() - start
return (
f"URL: {url}\n"
f"Status: {response.status_code}\n"
f"Response time: {latency:.2f}s"
)
except requests.RequestException as error:
return f"URL: {url}\nError: {error}"OpenAI Agents SDK 会自动将函数签名转换为模型所需的 JSON schema。它还使用函数名和 docstring 来描述该工具。
我们不需要手动创建工具 schema。
现在,创建一个智能体,定义它应该做什么,并让它能够访问我们的 check_website() 工具。
from agents import Agent, Runner agent = Agent( name="Website Monitor", model="gpt-5.6-luna", instructions=""" Monitor websites using the available tool. Compare results and explain problems clearly. """, tools=[check_website], )
result = Runner.run_sync( agent, "Check python.org, github.com, and openai.com. " "Which one has the slowest response?" ) print(result.final_output)
python.org is the slowest, responding in **1.59 seconds**. - github.com: 0.83s - openai.com: 0.49s All returned HTTP 200.
以前,我们需要自己编写循环和比较逻辑:
for url in urls: check_website(url)
现在,模型会解释请求,为三个网站调用 check_website(),接收结果,进行比较,并生成答案。
在幕后,Runner 管理模型与工具之间的交互。
从概念上讲,循环如下所示:

如果模型需要更多信息,它可以再次调用该工具。循环会持续进行,直到它拥有足够的信息来生成最终响应。
这正是该工作流具有智能体特性的原因。模型不再遵循完全用 Python 编写的固定序列,而是根据请求及其收到的结果来决定采取哪些操作。
同样的模式适用于几乎所有现有的 Python 自动化脚本。你保留执行实际工作的 Python 函数,让智能体决定调用哪些函数以及如何组合结果。
CSV 分析器:Functions 过滤行、计算指标并发现趋势。智能体回答关于数据的自然语言问题。
服务器监控:Functions 检查 CPU、内存、磁盘和进程。智能体调查服务器为何看起来不健康。
日志分析器:Functions 搜索日志、统计错误并提取事件。智能体调查事件并总结发生了什么。
API 自动化:Functions 获取数据、更新记录或创建报告。智能体决定需要哪些操作以及以什么顺序执行。
使用 OpenAI Agents SDK,你可以通过 @function_tool 暴露现有的 Python 函数,并将它们添加到智能体的工具列表中。
Python 代码仍然执行实际工作;智能体增加了自然语言理解、工具选择和编排能力。
智能体 AI 正在成为一种实用的工作流自动化方式,越来越多的公司使用智能体来处理多步骤任务,而不是依赖固定脚本。
与此同时,像 GPT-5.6 Luna 这样更便宜的模型使得大规模运行使用工具甚至多智能体系统变得更加经济实惠。
在本指南中,我们从一个普通的 Python 函数开始,将其转化为工具,连接到智能体,并让 Runner 管理决策循环。
这就是智能体应用背后的核心思想:给模型一个目标和合适的工具,然后让它决定如何完成任务。
Abid Ali Awan(@1abidaliawan)是一位认证数据科学家专业人士,热爱构建机器学习模型。目前,他专注于内容创作以及撰写关于机器学习和数据科学技术的技术博客。Abid 拥有技术管理硕士学位和电信工程学士学位。他的愿景是利用图神经网络为受精神疾病困扰的学生构建一款 AI 产品。
转载声明:本文为转载整理,原文版权归原作者及原站点所有。
原文来源:KDnuggets
原创地址:https://www.kdnuggets.com/how-to-turn-a-python-script-into-an-ai-agent
原文作者:https://www.facebook.com/kdnuggets;如有侵权,请联系管理员删除。