共计 1918 个字符,预计需要花费 5 分钟才能阅读完成。
核心概念:什么是 AI Agent?
AI Agent(人工智能代理)是一种能感知环境、自主决策并执行动作的智能程序。与普通程序相比,它有三大特征:

- 自主性:无需人工干预即可完成任务(如自动回复邮件)
- 反应性:能实时响应环境变化(如监测到异常数据触发告警)
- 目标导向性:围绕特定目标执行动作链(如订票 Agent 会先查航班再比价)
举个生活化的例子:普通程序像微波炉(按按钮加热固定时间),AI Agent 则像智能厨师(能根据食材自动调节火候)。
主流框架对比
| 框架 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| AutoGPT | 自动任务分解能力强 | 调试复杂 | 多步骤自动化流程 |
| LangChain | 模块化设计,文档丰富 | 需要较多 prompt 工程 | 对话式应用开发 |
| SemanticKernel | 微软生态集成好 | 社区资源较少 | Azure 云服务场景 |
实战:天气查询 Agent
环境准备
pip install openai requests python-dotenv
基础代码结构
# agent.py
import os
import requests
from dotenv import load_dotenv
load_dotenv()
class WeatherAgent:
def __init__(self):
self.api_key = os.getenv('OPENAI_KEY')
self.weather_api = "https://api.weatherapi.com/v1/current.json"
self.conversation_history = []
def get_weather(self, city):
"""调用天气 API 获取实时数据"""
params = {'key': os.getenv('WEATHER_API_KEY'),
'q': city,
'aqi': 'no'
}
response = requests.get(self.weather_api, params=params)
return response.json()
def chat(self, user_input):
"""处理用户对话"""
self.conversation_history.append(f"User: {user_input}")
# 识别用户意图(实际项目建议用 NLU 组件)if "天气" in user_input:
city = user_input.split("天气")[0].strip()
weather_data = self.get_weather(city)
reply = f"{city}当前温度:{weather_data['current']['temp_c']}℃"
else:
reply = "我是天气助手,请告诉我您想查询哪个城市的天气"
self.conversation_history.append(f"Agent: {reply}")
return reply
添加 OpenAI 集成
# 在 WeatherAgent 类中添加方法
def generate_response(self, prompt):
"""调用 GPT 模型增强回复"""
messages = [{"role": "system", "content": "你是一个专业的天气助手"},
{"role": "user", "content": prompt}
]
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages,
temperature=0.7 # 控制回复创意度
)
return response.choices[0].message.content
生产环境建议
优化技巧
- 异步处理 :用
asyncio并发处理多个 API 请求 - 缓存机制:对天气数据做 Redis 缓存(设置 10 分钟过期)
- 流量控制 :使用
tenacity库实现 API 调用重试
常见错误防范
- Prompt 注入:清洗用户输入中的特殊字符
def sanitize_input(text): return re.sub(r'[;\"\']', '', text) - Token 超限:监控上下文长度
if len(conversation_history) > 10: conversation_history.pop(0) # 移除最早记录
扩展方向
- 多 Agent 协作:让行程规划 Agent 调用天气 Agent
- 记忆存储:用向量数据库保存历史对话
- 硬件集成:连接智能音箱实现语音交互
资源推荐
刚开始接触时可能会被各种概念绕晕,建议从一个小功能点(如本文的天气查询)开始实践,逐步叠加复杂功能。遇到问题时,不妨先打印出中间变量值——这是我调试 Agent 时最常用的笨办法。
正文完
