AI Agent健康检查:怎么知道Agent还活着?

📘 AI教程 💬 🔥 Trending

🩺 摘要

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挂了会自动告警。