AI Agent上线避坑:生产环境10个常见问题
🩺 摘要
开发环境跑得好好的Agent,一上线就出各种问题——响应慢、乱回答、Token超支。这篇帮你提前避坑。
📝 详情
AI Agent生产上线Top 10坑及解决方案
1. 没有设置超时
AI调用可能卡住30秒以上. 每个调用必须设timeout:
# 错误: 没有超时, 可能永久卡住
# client.chat.completions.create(model="gpt-4", messages=[...])
# 正确: 设置超时, 超过自动抛异常触发降级
client.chat.completions.create(
model="gpt-4",
messages=[...],
timeout=30
)
2. 没有重试机制
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=1, min=1, max=10),
before_sleep=lambda r: print(f"重试第{r.attempt_number}次...")
)
def call_llm_safe(prompt):
return client.chat.completions.create(messages=[{"role": "user", "content": prompt}])
3. 没有Token监控方案
def track_cost(response):
cost_table = {"gpt-4o-mini": (0.15, 0.60), "deepseek-chat": (0.14, 0.28)}
rates = cost_table.get(response.model, (0, 0))
tokens_in = response.usage.prompt_tokens
tokens_out = response.usage.completion_tokens
cost = (tokens_in / 1000 * rates[0]) + (tokens_out / 1000 * rates[1])
return {"model": response.model, "input_tokens": tokens_in, "output_tokens": tokens_out, "cost": round(cost, 4)}
4-10: 其他关键坑
| 序号 | 问题 | 后果 | 解决方案 |
|---|---|---|---|
| 4 | 无上下文裁剪 | Token无限增长, 成本失控 | 每5轮对话触发一次摘要替换 |
| 5 | 无内容过滤 | 恶意输入污染系统 | 前置敏感词+分类器双重过滤 |
| 6 | 无限重试 | 故障时API费用暴增 | 设置max_retries=3 |
| 7 | 无日志 | 无法排查问题根因 | 每条请求记录request_id+耗时+结果 |
| 8 | 无Prompt版本管理 | 改了什么都不知道 | Git管理+JSON Schema约束 |
| 9 | 无限流 | 用户1秒100次=天价账单 | 令牌桶算法限流(每秒10次) |
| 10 | 无降级方案 | AI挂了用户看到500 | 缓存结果+友好提示+备用模型 |
生产级降级方案
class AIGateway:
def __init__(self):
self.fallback = ["gpt-4o-mini", "deepseek-chat", "qwen3:local"]
self.cache = {}
def call(self, prompt):
for i, model in enumerate(self.fallback):
try:
return client(model=model, messages=[...], timeout=15)
except Exception:
if i == len(self.fallback) - 1:
return "抱歉, AI服务暂时不可用, 请稍后再试."
continue
关键原则: AI应用上线的坑跟传统应用差不多, 但后果更严重 -- 因为AI的错误回答不像系统报错那么容易被发现.
💬 评论 (0)