共计 2359 个字符,预计需要花费 6 分钟才能阅读完成。
什么是 AI Agent
AI Agent(智能代理)是一种能够感知环境、自主决策并执行动作的软件程序。它像是一个数字世界的智能助手,能帮你完成特定任务,比如自动回复邮件、智能客服、数据分析等。

AI Agent 的核心特点包括:
- 自主性:能在没有人类干预下运行
- 反应性:能感知环境变化并做出响应
- 目标导向:为实现特定目标而设计
- 学习能力:部分 Agent 能通过经验改进表现
开发工具选型
目前主流 AI Agent 开发框架主要有两类:
- LangChain:
- 优点:模块化设计,支持多种大语言模型,文档丰富
-
缺点:学习曲线较陡,需要较多配置
-
AutoGPT:
- 优点:开箱即用,自动任务分解能力强
- 缺点:可控性较低,资源消耗大
对于初学者,建议从 LangChain 开始,因为它能让你更清楚地理解 Agent 的工作机制。
实战:构建天气查询 Agent
环境准备
- 安装 Python 3.8+(推荐使用 Anaconda 管理环境)
- 安装必要库:
pip install openai python-dotenv requests - 申请 OpenAI API Key(免费试用额度足够学习使用)
核心代码实现
创建 weather_agent.py 文件,完整代码如下:
import os
import openai
import requests
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")
# 天气 API 配置
WEATHER_API_URL = "https://api.openweathermap.org/data/2.5/weather"
WEATHER_API_KEY = os.getenv("WEATHER_API_KEY")
# 基础 Agent 类
class WeatherAgent:
def __init__(self):
self.memory = [] # 简单的对话记忆
def get_weather(self, city):
"""调用天气 API 获取数据"""
try:
params = {
'q': city,
'appid': WEATHER_API_KEY,
'units': 'metric'
}
response = requests.get(WEATHER_API_URL, params=params)
data = response.json()
if response.status_code == 200:
weather = {'city': data['name'],
'temp': data['main']['temp'],
'description': data['weather'][0]['description']
}
return weather
else:
return {"error": data.get("message", "Unknown error")}
except Exception as e:
return {"error": str(e)}
def process_query(self, user_input):
"""处理用户输入并生成响应"""
# 使用 GPT-3.5 分析用户意图
prompt = f"""用户说:'{user_input}'.
这是关于天气的查询吗?如果是,请提取城市名。只回复城市名或 '不是天气查询'。"""
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
temperature=0
)
city = response.choices[0].message.content.strip()
if city.lower() == "不是天气查询":
return "我是一个天气查询助手,请询问与天气相关的问题"
weather = self.get_weather(city)
if "error" in weather:
return f"无法获取 {city} 的天气: {weather['error']}"
return f"{weather['city']}当前天气: {weather['description']}, 温度{weather['temp']}°C"
# 示例使用
if __name__ == "__main__":
agent = WeatherAgent()
print(agent.process_query("北京今天天气怎么样?"))
运行测试
- 创建
.env文件存储 API 密钥:OPENAI_API_KEY= 你的 OpenAI 密钥 WEATHER_API_KEY= 你的天气 API 密钥 - 运行程序:
python weather_agent.py - 测试不同查询,例如:
- “ 上海明天会下雨吗?”
- “ 纽约现在的气温 ”
- “ 今天适合穿什么衣服?”(非天气查询)
生产环境注意事项
API 调用频率限制
- OpenAI 免费账号每分钟 3 次请求
- 天气 API 通常有每日限额
解决方案:
- 添加请求间隔(如
time.sleep(1)) - 实现本地缓存(对相同查询返回缓存结果)
- 监控 API 使用量
错误处理最佳实践
- 对所有 API 调用添加 try-catch
- 检查 HTTP 状态码
- 实现重试机制(但要注意指数退避)
- 记录错误日志
本地测试技巧
- 使用
unittest或pytest编写测试用例 - Mock 外部 API 响应
- 测试边界情况(如空输入、错误城市名)
总结与思考
通过这个简单项目,你已经实现了一个能理解自然语言并查询天气的 AI Agent。这是构建更复杂 Agent 的基础。
接下来可以思考:
- 如何让 Agent 记住对话历史,实现多轮对话?
- 除了天气查询,还能整合哪些实用功能?
- 如何评估和改进 Agent 的准确性?
AI Agent 开发是一个循序渐进的过程,从简单功能开始,逐步增加复杂度,是最高效的学习路径。
正文完
