What you’ll build
A Gradio-based control room that:- Detects and classifies incidents
- Proposes response actions with governance
- Requires human approval for high-risk operations
- Captures learning signals for future improvement
Prerequisites
- Completed the first policy tutorial
- Understanding of the cognitive loop
- Familiarity with Python async patterns (helpful but not required)
Step 1: Understand the architecture
The incident triage system follows the Noēsis cognitive loop:| Component | Noēsis concept | Production swap |
|---|---|---|
| Detector | Observe phase | Prometheus/Datadog queries |
| Classifier | Interpret phase | LLM + retrieval |
| Responder | Plan + Act phases | LangGraph plan generator |
| Reviewer | Governance | Slack/ServiceNow approval |
| Policy | Intuition | Your org’s guardrails |
Step 2: Create the policy
Create a policy that enforces your organization’s incident response rules:prod_guard.py
Step 3: Build the detector
Create a mock detector that simulates incident detection:detector.py
Step 4: Build the responder
Create a responder that proposes actions:responder.py
Step 5: Wire it together with Noēsis
Create the main orchestration:incident_triage.py
Step 6: Add a Gradio UI (optional)
Create a visual control room:gradio_app.py
Step 7: Human-in-the-loop approval
When the policy requires approval, you need a way to capture human decisions:approval.py
What you’ve built
You now have a complete incident triage system with:
- Incident detection and classification
- Policy-based guardrails
- Human approval workflows
- Full observability through Noēsis artifacts
Artifacts produced
Every triage run produces:| File | Contents |
|---|---|
events.jsonl | Full timeline with phases, agent IDs, advice, status |
summary.json | Success metrics, latencies, learn proposal counts |
state.json | Current plan state and cognitive context |
learn.jsonl | Learning signals for policy improvement |

