--- 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