| title | DevOps Incident Suite |
|---|---|
| emoji | 🚨 |
| colorFrom | red |
| colorTo | blue |
| sdk | gradio |
| sdk_version | 6.14.0 |
| python_version | 3.11 |
| app_file | app.py |
| pinned | false |
A VS Code-ready GenAI project that uses LangChain + LangGraph to analyze DevOps logs and generate remediation guidance, runbooks, Slack notifications, and JIRA tickets.
- Multi-agent architecture
- LangGraph orchestration
- LangChain LLM usage
- DevOps/SRE log analysis
- Automated incident classification
- Remediation recommendation
- Runbook generation
- Optional Slack and JIRA integration
- Optional RAG: Chroma vector store + embeddings for past resolutions (from closed Jira sync script)
- Single LLM call for classification and remediation (fewer round trips than separate classify + plan steps)
- Gradio UI
End-to-end processing from raw logs to outputs (Presidio runs in the Gradio app before LangGraph). The knowledge base is optional: populate it with scripts/sync_closed_jira_to_kb.py so classify_and_remediate can run similarity search before the model call.
Flow summary:
- parse_logs — Structure events from raw text.
- classify_and_remediate — Keyword seed classification → RAG retrieve similar closed issues → one structured LLM response (incident fields + steps + remediation narrative using KB context).
- generate_runbook — Markdown runbook from steps, optional LLM narrative, and embedded RAG excerpts (issue keys, summaries, snippets) for Slack/Jira and the UI.
- notify_and_ticket — Slack webhook; Jira ticket for P1/P2 with the full runbook body.
Legacy helpers classifier_agent.classify_incident and remediation_agent.recommend_remediation remain in the repo for reuse but are not wired into the default graph.
flowchart TB
subgraph input["Input"]
U["Paste or upload .log / .txt"]
end
subgraph gate["Privacy"]
P["Presidio anonymization<br/>PII / network identifiers"]
end
subgraph kb["Knowledge base (optional)"]
SYNC["scripts/sync_closed_jira_to_kb.py<br/>closed Jira issues → summaries"]
V["Chroma persistent store<br/>data/chroma"]
SYNC --> V
end
subgraph graph["LangGraph pipeline"]
A["parse_logs"]
B["classify_and_remediate<br/>RAG retrieve + single LLM JSON"]
D["generate_runbook<br/>steps + KB section + narrative"]
N["notify_and_ticket<br/>Slack webhook · Jira API"]
end
subgraph output["UI outputs"]
S["Incident summary"]
R["Runbook"]
I["Slack & Jira status"]
J["Full agent state JSON"]
end
V -.->|"similarity search<br/>optional"| B
U --> P
P --> A --> B --> D --> N
N --> S
N --> R
N --> I
N --> J
devops-incident-suite/
├── agents/
│ ├── log_agent.py
│ ├── heuristics.py
│ ├── classify_remediate_agent.py
│ ├── classifier_agent.py
│ ├── remediation_agent.py
│ ├── runbook_agent.py
│ └── notification_agent.py
├── graph/
│ └── workflow.py
├── integrations/
│ ├── slack.py
│ └── jira.py
├── knowledge/
│ ├── vector_store.py
│ └── jira_kb_sync.py
├── scripts/
│ └── sync_closed_jira_to_kb.py
├── utils/
│ ├── llm.py
│ ├── embeddings.py
│ └── log_anonymization.py
├── tests/
├── data/sample_logs/
├── app.py
├── state.py
├── requirements.txt
├── .env.example
└── README.md
Open this repository folder (e.g. devops-incident-suite).
py -m venv .venv.\.venv\Scripts\Activate.ps1If PowerShell blocks activation, run:
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedThen activate again:
.\.venv\Scripts\Activate.ps1py -m pip install --upgrade pip
py -m pip install -r requirements.txtCopy .env.example to .env.
copy .env.example .envAdd your OpenRouter key:
OPENAI_API_KEY=your_key_here
OPENAI_BASE_URL=https://openrouter.ai/api/v1
LLM_MODEL=openai/gpt-4o-miniThe app also works without an API key using fallback rule-based classification.
py app.pyOpen the local URL shown in the terminal, usually:
http://127.0.0.1:7860
Upload the project folder or zip file, then run:
!pip install -r requirements.txt
!python app.pyFor public Colab link, change the last line in app.py from:
demo.launch()to:
demo.launch(share=True)- Create a new Hugging Face Space
- Select Gradio as SDK
- Upload all project files
- Add secrets in Space settings:
OPENAI_API_KEYOPENAI_BASE_URLLLM_MODEL- optional Slack/JIRA values
- Hugging Face will install
requirements.txtand runapp.py