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, 事故响应, 凭据扫描, 安全防御评估, 容器化部署, 延迟优化, 开源框架, 异常检测, 强化学习, 性能优化, 持续集成, 推理优化, 故障诊断, 机器学习运维, 检测绕过, 模型漂移, 生产环境, 监控告警, 系统恢复, 级联故障, 自动化运维, 请求拦截, 逆向工具