Inspiration
Every engineering team has this problem: a developer fixes a critical incident at 2AM, resolves it in 20 minutes, and moves on. Nobody writes it down. Three months later, a different developer hits the exact same error and spends 2 hours debugging from scratch.
The knowledge existed. It just disappeared.
IncidentIQ was built to solve this — not as a chatbot or search tool, but as an autonomous AI agent that captures every incident, learns from it, and makes that knowledge instantly available to every developer on your team.
What it does
IncidentIQ is an autonomous incident resolution agent powered by Google ADK and Gemini 2.5 Flash.
When a developer pastes an error log (or when an exception is automatically captured via middleware), the agent runs a 4-step pipeline:
- Extract - cleans and normalizes the error signature
- Search - generates 3072-dimension semantic embeddings and searches MongoDB Atlas Vector Search for similar past incidents
- Generate - Gemini 2.5 Flash produces a structured postmortem: root cause, fix applied, and prevention steps
- Store - saves the new incident with its embedding to MongoDB Atlas, growing the team's knowledge base
The result: root cause, fix, and prevention in under 10 seconds — with similar past incidents surfaced from memory.
How we built it
Core agent pipeline built with LangGraph (4 nodes: extract_error → search_memory → generate_postmortem → store_incident). Wrapped with Google ADK 2.1.0 as the orchestration layer with an analyze_incident FunctionTool.
Gemini 2.5 Flash (google-genai SDK) handles both embedding generation (gemini-embedding-001, 3072 dimensions) and postmortem generation.
MongoDB Atlas stores incident documents with vector embeddings. Atlas Vector Search with cosine similarity finds semantically similar past incidents across the knowledge base.
AutoCaptureMiddleware fires a background thread on every unhandled Django exception, automatically posting to the ADK agent endpoint — zero manual work required.
Backend: Django 5 + Django REST Framework. Deployed on Railway. Frontend: single HTML file with vanilla JS, cyberpunk terminal aesthetic.
Challenges we ran into
The biggest challenge was the Google ADK integration — specifically making ADK reliably invoke our custom FunctionTool for short single-line error inputs. ADK's Gemini reasoning loop sometimes decided no tool call was needed. We solved this by strengthening the agent instruction prompt and adding a fallback to the direct LangGraph pipeline on ADK failures, ensuring 100% uptime for the demo endpoint.
Managing Gemini API quota on the free tier was also a challenge during development — we implemented API key rotation across multiple keys to ensure reliability during judge testing.
Accomplishments that we're proud of
Built a fully autonomous incident resolution agent that genuinely works — not a demo toy. 32+ real incidents stored with semantic embeddings. Vector similarity search correctly surfaces related past incidents across different error types.
The AutoCaptureMiddleware means zero developer friction after a 2-line setup. Errors capture themselves.
Shipped a production-grade Django + LangGraph + Google ADK + MongoDB Atlas stack as a solo developer in under 2 weeks.
What we learned
Google ADK is powerful but requires careful prompt engineering to ensure reliable tool invocation. LangGraph and ADK complement each other well — LangGraph handles the deterministic pipeline, ADK handles the reasoning layer on top.
MongoDB Atlas Vector Search is remarkably fast even on the free M0 tier. The 3072-dimension embeddings from gemini-embedding-001 produce excellent semantic similarity results for technical error logs.
What's next for IncidentIQ
- Python SDK for one-line integration in any Python project
- Slack/PagerDuty webhook notifications when similar incidents are found
- Team workspaces with authentication
- Support for JavaScript/Node.js and Go error logs
- Dashboard with incident frequency analytics and MTTR tracking
Built With
- django
- gemini-2.5-flash
- google-adk
- javascript
- langgraph
- mongodb-atlas
- mongodb-atlas-vector-search
- python
- railway
- restapi
Log in or sign up for Devpost to join the conversation.