AI Agent健康检查:怎么知道Agent还活着?
🩺 摘要
Agent跑了三天没出过问题,第四天突然卡住了。没有健康检查,你只能等用户投诉才发现。
📝 详情
Kubernetes里的Pod有readiness probe和liveness probe。你的Agent也需要。
检查什么
1. LLM可达性 检查API是否能正常响应。
@app.get("/health")
async def health_check():
try:
await llm.ping()
return {"status": "ok", "llm": "connected"}
except Exception as e:
return {"status": "degraded", "llm": str(e)}
2. 工具可用性 所有注册的工具是否都能正常调用。
3. 缓存状态 缓存服务(Redis/数据库)是否正常。
4. 资源使用 当前等待队列长度、平均响应时间、错误率。
检查频率
| 环境 | 频率 |
|---|---|
| 开发 | 手动 |
| 测试 | 每30秒 |
| 生产 | 每10秒 |
总结
健康检查不是运维的事,是Agent架构的一部分。 一个/health端点加上基本的指标采集,能让你在用户发现前就发现问题。
完整健康检查实现
@app.get("/health")
async def health():
checks = {
"llm": await check_llm(),
"redis": await check_redis(),
"vector_db": await check_vector_db(),
"tools": await check_all_tools(),
}
all_ok = all(v.get("status") == "ok" for v in checks.values())
return {
"status": "ok" if all_ok else "degraded",
"checks": checks,
"uptime": get_uptime()
}
把这个端点注册到你的监控系统(Prometheus/Grafana),Agent挂了会自动告警。
💬 评论 (0)