LogTriageEnv SRE Agent

An LLM agent trained with GRPO (Group Relative Policy Optimization) to triage production incidents through causal reasoning. This model learns to identify root causes in cascading microservice failures under partial observability.

Model Details

Model Description

  • Base Model: Qwen 2.5-3B-Instruct
  • Training Algorithm: GRPO via HuggingFace TRL
  • Quantization: 4-bit via Unsloth
  • License: Apache 2.0

This model is fine-tuned to reason backward through microservice dependency graphs and identify root causes of production incidents—a task where even frontier LLMs struggle.

Training Data & Environment

LogTriageEnv

The agent trains in LogTriageEnv, an OpenEnv-compliant reinforcement learning environment that simulates realistic production incident scenarios with 7 microservices and injectable faults.

Three Training Tasks:

  1. Single Crash (Easy): Identify a downed service and apply remediation
  2. Cascading Failure (Medium): Root cause is upstream and doesn't log immediately; must trace backward through dependencies
  3. Silent Degradation (Hard): Filter 60% noise while detecting slow temporal degradation

Structured Action Space

The model outputs structured actions, not free-form text:

  • classify_severity → P1, P2, P3
  • identify_root_cause → One of 7 services
  • escalate → Correct team (sre/backend/dba/security)
  • remediate → restart/rollback/scale/flush-cache/kill-query
  • request_more_logs → Get context from specific service
  • resolve / ignore → Finalize incident

Critical constraint: Correct root cause + wrong escalation = 0 reward. This forces precise reasoning.

Training Details

Hyperparameter Value
Base Model Qwen/Qwen2.5-3B-Instruct
Training Algorithm GRPO
Episodes per Task 30
Total Episodes 90
Batch Size 4
Learning Rate 1e-5
Quantization 4-bit (Unsloth)
LoRA Rank 16
LoRA Alpha 32
Hardware NVIDIA T4 GPU

Results

Empirical Performance

Task First 10 Eps (avg) Last 10 Eps (avg) Improvement Interpretation
Single Crash +0.180 +0.065 −0.115 Task-limited; model saturates quickly
Cascading Failure +0.090 +0.105 +0.015 Genuine causal learning
Silent Degradation +0.180 +0.110 −0.070 Requires larger model capacity

Key Finding

Cascading failure showed +0.015 improvement, representing genuine multi-hop causal reasoning. The agent learned to identify root causes upstream of visible symptoms—exactly what LogTriageEnv trains for.

Baseline Comparison

Even frontier models struggle on this task:

  • LLaMA 3.3 70B (zero-shot): 0.65 cascading_failure accuracy
  • Our Qwen 3B (after 30 episodes): 0.105 average reward in last 10 episodes

The gap reflects both model size and the fundamental difficulty of learning from interaction vs. pre-training.

Scaling Projections

Qwen 7B (2.3× parameters, 50 episodes):

  • cascading_failure: +0.04 to +0.06 improvement
  • silent_degradation: +0.03 to +0.05 improvement

Qwen 32B (10.7× parameters, 100 episodes):

  • cascading_failure: +0.12+ improvement (near-mastery)
  • silent_degradation: +0.08 to +0.12 improvement (usable)

Usage

from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = "OGrohit/logtriage-sre-agent"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    device_map="auto",
    load_in_4bit=True
)

# Example incident triage prompt
incident_logs = """
api-gateway ERROR: upstream timeout from auth-service (30002ms)
auth-service WARN: db connection pool exhausted (50/50)
user-db ERROR: slow query detected (2847ms)
payment-db: [no logs]
"""

prompt = f"Triage this incident:\n{incident_logs}\nAction: "
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_length=100)
print(tokenizer.decode(outputs[0]))

Limitations

  1. Model Capacity: Qwen 3B is small; full potential emerges at 7B-32B scale
  2. Episode Budget: 30 episodes per task is minimal; 100+ episodes show steeper improvements
  3. Task Scope: Trained on synthetic scenarios; real production logs may differ
  4. Action Space: Designed for structured incident response; free-form reasoning limited

Bias & Safety

This model is fine-tuned on synthetic incident scenarios without demographic data. No known safety issues specific to incident triage, but standard LLM limitations apply (hallucinations, confidence calibration).

Recommended Use Cases

Good for:

  • Incident triage automation in on-call systems
  • Benchmarking RL approaches on structured reasoning tasks
  • Training larger models (7B, 13B, 32B+) as an experiment baseline

Not recommended for:

  • Critical production decision-making (human review required)
  • Tasks requiring real-time inference (<1 second latency)
  • Environments with non-standard microservice topologies

Environment & Reproducibility

Live Environment: https://huggingface.co/spaces/OGrohit/logtriage-env GitHub: https://github.com/OGrohit/logtriage-env License: MIT (environment), Apache 2.0 (model)

To train your own agent:

python train.py \
  --model Qwen/Qwen2.5-3B-Instruct \
  --task all \
  --episodes 30 \
  --load_in_4bit \
  --grpo_max_steps 10 \
  --env_url https://ogrohit-logtriage-env.hf.space \
  --push_to_hub

Citation

@project{logtriage2026,
  author = {OGrohit},
  title = {LogTriageEnv: Training LLM Agents to Reason Through Cascading Production Failures},
  year = {2026},
  publisher = {Meta × PyTorch × Scaler OpenEnv Grand Finale},
  url = {https://huggingface.co/spaces/OGrohit/logtriage-env}
}

Acknowledgments

  • Meta × PyTorch × Scaler — OpenEnv Hackathon Grand Finale 2026
  • HuggingFace — TRL, Transformers, Spaces infrastructure
  • Unsloth — Memory-efficient 4-bit quantization
  • Qwen Team — Base model

Model Card Last Updated: April 2026 For questions, visit: https://github.com/rohitdecodes/logtriage-env/issues

Downloads last month
85
Safetensors
Model size
3B params
Tensor type
F32
·
U8
·
Video Preview
loading