You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An AI agent acts as an on-call engineer performing service incident triage.
Given partial logs and metrics from a multi-service system, the agent must
strategically inspect services, identify the root cause, and declare the
correct severity — all while minimizing unnecessary diagnostic steps.
Real incident response requires quickly narrowing down which service is failing
from noisy, incomplete signals. This environment captures that challenge:
Partial observability — only one service's logs are visible at the start.
Information-gathering actions cost steps.
Misleading signals at higher difficulties.
Shaped reward encourages efficient investigation.
Action Space
Every action is a JSON object with three fields:
Field
Type
Values
Description
action
string
inspect_logs, inspect_metrics, declare
What to do
target
string
service name (e.g. "db", "auth")
Which service to act on
severity
string
P0, P1, P2
Required only for declare
Action semantics
Action
Effect
inspect_logs(target)
Reveals the full log text for that service
inspect_metrics(target)
Reveals latency, error rate, CPU, memory for that service
declare(target, severity)
Ends the episode with a root-cause declaration
Observation Space
Field
Type
Description
visible_logs
dict[str, str]
Service → log text (only for inspected services)
visible_metrics
dict[str, dict[str, float]]
Service → {latency_ms, error_rate, cpu_pct, memory_pct}
services
list[str]
All services in the current incident
step_count
int
Steps taken so far
max_steps
int
Step budget for this task
message
str
Human-readable status after each action
incident_id
str
Current incident identifier
done
bool
Whether the episode has ended
reward
float
Reward for the latest step
Reward Function
Intermediate rewards
Signal
Reward
Useful inspection (reveals anomaly)
+0.1
Redundant / uninformative inspection
−0.05
Terminal rewards
Outcome
Reward
Correct service and severity
+1.0
Correct service, wrong severity
+0.6
Wrong service
0.0 − 0.3 penalty
Penalties
Condition
Penalty
Exceeding step budget
−0.2
Tasks
Task
Difficulty
Max Steps
Description
easy
🟢 Easy
3
One service clearly spiking; obvious anomaly in logs and metrics
medium
🟡 Medium
5
Multiple noisy signals; correlated failures across services