AI Agent(智能体)是2026年最热门的技术方向之一。LangChain、CrewAI、AutoGen等框架层出不穷,但对于新手来说,最快速的入门方式是用Python从零搭建一个简单的AI Agent。本文将带你完整走一遍这个过程。
什么是AI Agent?
与普通AI聊天机器人不同,Agent不仅能对话,还能执行实际操作——查询天气、发送邮件、管理日程、操作文件。Agent的核心理念是:AI决定做什么,然后调用工具去完成。
第一步:环境准备
需要Python 3.10+和OpenAI API Key(可从ChatGPT平台获取,新用户有免费额度)。安装必要库:
pip install openai requests python-dotenv
第二步:定义Agent的工具箱
Agent的能力边界由它的工具集定义。我们先实现三个简单工具:
import json
import requests
from datetime import datetime
def get_weather(city: str) -> str:
"""查询指定城市的天气(模拟API)"""
# 实际使用时替换为真实天气API
weather_data = {
"北京": "晴,28°C,湿度45%",
"上海": "多云转阴,32°C,湿度65%",
"深圳": "雷阵雨,29°C,湿度80%"
}
return weather_data.get(city, f"未找到{city}的天气数据")
def send_email(to: str, subject: str, body: str) -> str:
"""模拟发送邮件"""
return f"邮件已发送至 {to},主题:{subject}"
def get_current_time() -> str:
"""获取当前时间"""
return datetime.now().strftime("%Y-%m-%d %H:%M:%S")
第三步:实现Agent核心循环
Agent的核心逻辑很简单:理解用户意图 → 决定使用哪个工具 → 执行工具 → 返回结果。
from openai import OpenAI
client = OpenAI(api_key="your-api-key")
# 工具定义(告诉AI它有哪些能力)
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "查询指定城市的天气",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名"}
},
"required": ["city"]
}
}
},
# ... send_email 和 get_current_time 的定义类似
]
def run_agent(user_input: str):
messages = [{"role": "user", "content": user_input}]
# 第一步:AI决定是否需要调用工具
response = client.chat.completions.create(
model="gpt-4o",
messages=messages,
tools=tools,
tool_choice="auto"
)
msg = response.choices[0].message
# 第二步:如果需要调用工具,执行并返回结果
if msg.tool_calls:
for tool_call in msg.tool_calls:
func_name = tool_call.function.name
args = json.loads(tool_call.function.arguments)
# 执行对应的工具函数
if func_name == "get_weather":
result = get_weather(**args)
elif func_name == "send_email":
result = send_email(**args)
elif func_name == "get_current_time":
result = get_current_time()
# 将结果返回给AI进行总结
messages.append(msg)
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": result
})
# AI根据工具结果生成最终回复
final = client.chat.completions.create(
model="gpt-4o",
messages=messages
)
return final.choices[0].message.content
return msg.content
# 测试
print(run_agent("北京今天天气怎么样?帮我发邮件给boss@company.com,主题是天气报告"))
第四步:扩展Agent能力
掌握核心循环后,可以轻松扩展更多工具:
- 网页搜索:集成SerpAPI或DuckDuckGo
- 文件操作:读取/写入/搜索本地文件
- 数据库查询:连接MySQL/PostgreSQL
- 日程管理:对接Google Calendar/飞书日历
如果觉得从零搭建太繁琐,推荐使用Dify或Coze等低代码Agent平台,拖拽式构建,5分钟即可上线。
总结
AI Agent的本质并不神秘——大模型做决策,工具函数做执行。本文的完整代码不到100行,但它们已经构成了一个可扩展的Agent基础框架。动手试试吧,从零打造属于你的AI智能体!