agentic-triage-amd / README.md
OGrohit's picture
Updated README with metadata
d4aa497
|
Raw
History Blame Contribute Delete
8.1 kB
---
title: AgentTriage AMD Developer Cloud
emoji: πŸ”΄
colorFrom: red
colorTo: blue
sdk: docker
pinned: false
---
# πŸ”΄ AgentTriage β€” Agentic SRE Incident Response on AMD Developer Cloud
> Multi-agent log triage system that autonomously diagnoses production incidents using AMD-hosted LLMs and a LangGraph-powered agent pipeline.
Built for the **AMD Developer Cloud Hackathon β€” Track 1: AI Agents & Agentic Workflows**
πŸ‘‰ **[Try the Live Demo](https://OGrohit-agentic-triage-amd.hf.space)**
---
## πŸ“Œ What Is This?
AgentTriage is a production-grade agentic system where an AI agent pipeline automatically triages software incidents β€” the same work a human Site Reliability Engineer (SRE) does when production goes down.
When something breaks in production (a server crashes, a database causes a cascade failure, or a service silently degrades), engineers need to:
1. Diagnose the severity (P1/P2/P3)
2. Identify the root cause (which service/component)
3. Decide on remediation (restart, kill-query, flush-cache)
4. Escalate to the right team
AgentTriage automates this entire workflow using a **multi-agent pipeline** running on **AMD Developer Cloud**.
---
## 🧠 How It Works
### The Environment (LogTriageEnv)
A simulated microservice incident environment with a REST API interface (OpenEnv-compatible). The agent interacts via a reset β†’ step loop, reads logs and service states, takes actions, and gets scored.
**Three incident scenarios:**
| Task | Difficulty | Noise | Incident Type |
|---|---|---|---|
| `single_crash` | Easy | 20% | Payment service NullPointerException |
| `cascading_failure` | Medium | 30% | user-db slow query β†’ auth β†’ gateway cascade |
| `silent_degradation` | Hard | 60% | Gradual payment-db latency increase (no crash) |
### The Agent Pipeline
```
Incoming Logs + Service State
↓
[PLANNER AGENT]
Reads logs, decides strategy
↓
[EXECUTOR AGENT]
Takes triage actions step-by-step
classify_severity β†’ identify_root_cause β†’ remediate β†’ resolve
↓
[SUMMARIZER AGENT]
Produces structured incident report
↓
Episode Score (0.0 β†’ 1.0)
```
All agents powered by **AMD Developer Cloud** (Qwen2.5-72B on MI300X) with Groq fallback for the live demo.
---
## πŸ—οΈ Architecture
```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ AgentTriage System β”‚
β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ LangGraph │────▢│ AMD Developer β”‚ β”‚
β”‚ β”‚ Agent Loop β”‚ β”‚ Cloud LLM API β”‚ β”‚
β”‚ β”‚ │◀────│ Qwen2.5-72B β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ LogTriage β”‚ β”‚
β”‚ β”‚ Environment β”‚ β”‚
β”‚ β”‚ (FastAPI) β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ Scenario Engine β”‚ β”‚
β”‚ β”‚ single_crash | cascading | silent_degradeβ”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ Grader β”‚ β†’ Episode Score (0.0–1.0) β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
```
---
## πŸ› οΈ Tech Stack
| Layer | Technology |
|---|---|
| Agent Framework | LangGraph |
| LLM Backend | AMD Developer Cloud β€” Qwen2.5-72B on MI300X |
| LLM Fallback | Groq β€” llama-3.3-70b-versatile |
| Environment API | FastAPI + Uvicorn |
| Data Validation | Pydantic v2 |
| Containerization | Docker |
| Environment Interface | OpenEnv-compatible (reset/step) |
| Language | Python 3.11 |
---
## πŸ“ Project Structure
```
agentic-triage-amd/
β”‚
β”œβ”€β”€ server/ # LogTriageEnv (environment core)
β”‚ β”œβ”€β”€ app.py # FastAPI endpoints + UI routes
β”‚ β”œβ”€β”€ environment.py # Core simulator (reset/step/state)
β”‚ β”œβ”€β”€ models.py # Pydantic schemas
β”‚ β”œβ”€β”€ log_generator.py # Log + service state generation
β”‚ β”œβ”€β”€ scenarios/
β”‚ β”‚ β”œβ”€β”€ single_crash.py # Task 1: Payment service crash
β”‚ β”‚ β”œβ”€β”€ cascading.py # Task 2: user-db cascade
β”‚ β”‚ └── silent_degrade.py # Task 3: Gradual latency degradation
β”‚ └── graders/
β”‚ β”œβ”€β”€ base_grader.py
β”‚ β”œβ”€β”€ crash_grader.py
β”‚ β”œβ”€β”€ cascade_grader.py
β”‚ └── silent_degrade_grader.py
β”‚
β”œβ”€β”€ agents/ # Multi-agent pipeline
β”‚ β”œβ”€β”€ planner.py # Reads logs, sets strategy
β”‚ β”œβ”€β”€ executor.py # Step-by-step triage actions
β”‚ β”œβ”€β”€ summarizer.py # Generates incident report
β”‚ └── pipeline.py # LangGraph orchestration
β”‚
β”œβ”€β”€ static/
β”‚ └── index.html # Judge-facing web UI
β”‚
β”œβ”€β”€ amd_client.py # LLM client (AMD + Groq fallback)
β”œβ”€β”€ run_agent.py # CLI entry point
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ docker-compose.yml
β”œβ”€β”€ requirements.txt
└── .env.example
```
---
## βš™οΈ Setup & Running
### Option 1 β€” Docker (Recommended)
```bash
git clone https://github.com/YOUR_USERNAME/agentic-triage-amd.git
cd agentic-triage-amd
cp .env.example .env
# Add your GROQ_API_KEY or AMD_API_KEY to .env
docker build -t agentic-triage-amd .
docker run -p 7860:7860 --env-file .env agentic-triage-amd
# Open http://localhost:7860
```
### Option 2 β€” Local Python
```bash
pip install -r requirements.txt
# Terminal 1 β€” environment server
uvicorn server.app:app --host 0.0.0.0 --port 7860
# Terminal 2 β€” run agent on all 3 tasks
python run_agent.py
```
---
## πŸ”‘ Environment Variables
```env
# Use one of these β€” Groq for free tier, AMD for full power
GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=llama-3.3-70b-versatile
# AMD Developer Cloud VM
AMD_API_KEY=your_amd_api_key
AMD_BASE_URL=http://YOUR_VM_IP:8000/v1
AMD_MODEL=qwen
```
---
## πŸ§ͺ Scoring System
Each task scored 0.0 β†’ 1.0:
| Action | Points |
|---|---|
| Correct severity classification | +0.30 |
| Correct root cause identification | +0.35 |
| Correct remediation command | +0.25 |
| Speed bonus (within step threshold) | +0.10 |
| Wrong escalation | -0.10 |
| Ignoring a P1 incident | -0.50 |
| Symptom identified as root cause | -0.10 |
---
## πŸ“Š Results
| Task | Score |
|---|---|
| single_crash | 0.9 |
| cascading_failure | 0.6 |
| silent_degradation | 0.3 |
| **Average** | **0.6** |
---
## πŸ™‹ Team
| Name | Role |
|---|---|
| Rohit Patil (Sonic) | Environment + Agent Pipeline |
| [Teammate] | Infrastructure + AMD VM Setup |
---
## πŸ“„ License
MIT License β€” open source, built for AMD Developer Cloud Hackathon.
---
> Built with AMD MI300X (192GB VRAM) Β· Qwen2.5-72B Β· LangGraph Β· FastAPI Β· Docker