karthik2945/resilientagent-prod

GitHub: karthik2945/resilientagent-prod

用于训练AI代理诊断和解决ML模型生产事故的模拟环境,评估LLM在延迟、漂移、级联故障场景下的故障排查与修复能力。

Stars: 0 | Forks: 0

## title: ResilientAgent Prod emoji: 🚀 colorFrom: green colorTo: blue sdk: docker app_port: 7860 pinned: false # ResilientAgent-Prod ## 概述 用于训练 AI 代理诊断和解决 ML 模型生产事故的 OpenEnv 环境。代理观察系统指标、日志和告警,然后采取针对性的修复操作来恢复服务健康。 专为 **Meta PyTorch OpenEnv Hackathon 2026** 构建。 ## 实际应用价值 ML 模型故障导致公司因停机而损失数百万美元。该环境训练代理将平均修复时间 (MTTR) 从 30 分钟减少到 5 分钟以下,教授它们针对每种事故类别采取正确的诊断和修复顺序。 ## 操作空间 | 操作 | 描述 | |--------|-------------| | `check_metrics` | 查询当前系统指标(延迟、错误率、GPU 利用率、吞吐量) | | `read_logs` | 读取指定服务的最近日志条目 | | `check_deployment` | 验证部署状态和配置 | | `analyze_drift` | 分析模型预测漂移和特征分布 | | `scale_service` | 扩展/缩减指定服务资源 | | `rollback_model` | 回滚到之前的模型版本(仅对漂移事故有效) | | `optimize_batch` | 优化推理吞吐量的批处理大小(仅对延迟事故有效) | | `restart_service` | 重启已降级或失败的服务 | | `verify_fix` | 验证事故是否已解决 | | `notify_team` | 向运维团队发送告警通知 | ## 观察空间 | 字段 | 描述 | |-------|-------------| | `metrics` | 包含 latency_p99、error_rate、gpu_util、throughput 的字典(以及任务特定指标) | | `recent_logs` | 监控服务的最近 10 条日志条目列表 | | `alert_status` | 当前告警级别:`"healthy"` 或 `"critical"` | | `time_elapsed` | 事故发生以来的秒数 | | `last_action_result` | 上次操作结果的描述 | | `root_cause_hint` | 如果已识别出根本原因,则提供可选提示 | ## 任务 ### task1_latency_spike(简单) GPU 内存耗尽导致 ML 模型推理延迟从 200ms 飙升到 5000ms。 **正确顺序:** `check_metrics` → `read_logs` → `optimize_batch` → `verify_fix` ### task2_prediction_drift(中等) 数据管道架构变更导致模型准确率在一夜之间下降 15%。 **正确顺序:** `analyze_drift` → `check_deployment` → `rollback_model` → `verify_fix` ### task3_cascading_failure(困难) 主模型因 OOM 被杀死,回退服务降级,由于内存泄漏自动扩缩容未触发。 **正确顺序:** `check_metrics` → `read_logs` → `restart_service(primary_model)` → `scale_service(fallback_model)` → `verify_fix` ## 评分细则 该环境使用严格的多因素评分系统,旨在防止奖励作弊: | 组件 | 权重 | 描述 | |-----------|--------|-------------| | **健康状态** | 25% | 事故必须完全解决(`model_healthy = True`) | | **步骤效率** | 25% | 步骤越少分数越高(最佳:匹配正确顺序的长度) | | **根本原因** | 15% | 正确识别根本原因获得奖励 | | **操作效率** | 15% | 对浪费/无关操作进行惩罚 | | **指标质量** | 10% | 最终系统指标必须在健康阈值内 | | **顺序正确性** | 10% | 按照完全正确的操作顺序获得奖励 | ## 奖励设计 - **在正确步骤执行正确操作:** `+0.15`(最高 `+0.05` 目标奖励) - **错误操作:** `-0.3`(严厉惩罚,防止随机探索成功) - **超出顺序的额外操作:** `-0.2` - **事故解决:** `+1.0` 随机代理平均分数:**~0.0** 最佳代理平均分数:**~0.95** ## 经验证的 LLM 性能 使用 `llama-3.3-70b-versatile`(Groq)测试: | 任务 | 分数 | 步骤 | 状态 | |------|-------|-------|--------| | latency_spike | **0.905** | 3 | ✅ 已解决 | | prediction_drift | **1.000** | 4 | ✅ 已解决 | | cascading_failure | **0.960** | 5 | ✅ 已解决 | | **平均** | **0.955** | - | **3/3 已解决** | ## 设置 ``` pip install -r requirements.txt uvicorn server.app:app --host 0.0.0.0 --port 7860 ``` ## Docker(Hugging Face Spaces 就绪) ``` docker build -t resilientagent-prod . docker run -p 7860:7860 resilientagent-prod ``` ## API 使用 ### 重置任务环境 ``` curl -X POST http://localhost:7860/reset \ -H "Content-Type: application/json" \ -d '{"task_id": "task1_latency_spike"}' ``` ### 执行操作 ``` curl -X POST http://localhost:7860/step \ -H "Content-Type: application/json" \ -d '{ "action_type": "check_metrics", "target": "inference_service", "parameters": null }' ``` ### 获取当前状态 ``` curl http://localhost:7860/state ``` ### 获取最终评分 ``` curl -X POST http://localhost:7860/grader ``` ### 列出所有任务 ``` curl http://localhost:7860/tasks ``` ### 运行基线代理 ``` curl http://localhost:7860/baseline ``` ## 环境变量 | 变量 | 必填 | 描述 | |----------|----------|-------------| | `API_BASE_URL` | **是** | LLM 的 API 端点。 | | `MODEL_NAME` | **是** | 用于推理的模型标识符。 | | `HF_TOKEN` | **是** | 您的 Hugging Face / LLM API 密钥。 | ## 要求 - Python 3.11+ - PyTorch 2.0+ - FastAPI 0.104+ - Uvicorn 0.24+ - Pydantic v2 - OpenAI Python 客户端(`openai`) - `python-dotenv`
标签:AI代理, AI训练, Docker, LLM代理, Meta, MLOps, PyTorch, 事故响应, 凭据扫描, 安全防御评估, 容器化部署, 延迟优化, 开源框架, 异常检测, 强化学习, 性能优化, 持续集成, 推理优化, 故障诊断, 机器学习运维, 检测绕过, 模型漂移, 生产环境, 监控告警, 系统恢复, 级联故障, 自动化运维, 请求拦截, 逆向工具