CivicFix — Autonomous Community Resolution Engine
The Problem
When citizens report broken streetlights, blocked drainage, potholes, overflowing waste, or leaking water infrastructure, the biggest problem is often not reporting the issue — it is knowing whether the issue was actually resolved.
A conventional reporting system can move a ticket from "reported" to "resolved" because someone claims the work was completed.
CivicFix is designed around a different principle: don't trust the resolution blindly.
A case should only be resolved when there is sufficient evidence that the original problem was actually addressed.
The Idea
CivicFix is an agentic civic-resolution system that takes a citizen's report, understands the problem using Gemini, determines the appropriate workflow, coordinates simulated municipal departments, requests evidence when necessary, and independently verifies resolution evidence using multimodal AI.
The agent follows a lifecycle:
Understand → Plan → Act → Wait → Verify → Recover → Escalate → Resolve
The important part is that resolution is not treated as a simple status update. It is an evidence-based decision.
How CivicFix Works
- A citizen submits a problem with a description and optional image.
- Gemini analyzes the report and extracts the relevant information.
- The CivicFix agent determines the appropriate department and next action.
- A municipal department simulation receives the work order.
- A department may claim that the problem has been fixed.
- CivicFix does not automatically trust that claim.
- The agent requests photographic resolution evidence when required.
- Gemini performs multimodal verification using the original problem, the resolution claim, and the evidence image.
- The verification result is recorded in the case history.
- A deterministic safety guard prevents the case from being closed unless verification is sufficient.
- Verified cases are resolved; insufficient or contradictory evidence remains open or is escalated.
Why an Agent?
CivicFix is not simply a chatbot answering questions.
The system must reason over a changing case state and decide what should happen next.
The agent can move between actions such as:
- creating a case
- categorizing an issue
- assigning a department
- creating a work order
- requesting evidence
- verifying evidence
- escalating a case
- resolving a case
The workflow also includes deterministic safety tools so that an agent cannot bypass the verification requirement.
This combination of agent reasoning and deterministic safeguards is central to CivicFix.
Multimodal Gemini Verification
Gemini is used for both language and visual reasoning.
For resolution verification, CivicFix provides the original problem, the department's claim, and the resolution evidence image to Gemini.
Gemini evaluates whether the evidence is sufficient to support the claimed repair.
This allows CivicFix to distinguish between:
- sufficient evidence
- insufficient evidence
- contradictory evidence
A failed or insufficient verification never becomes an automatic successful resolution.
Google Technologies
CivicFix uses:
- Gemini for problem understanding, classification, prioritization, and multimodal resolution verification.
- Google Agent Development Kit (ADK) for the agent layer.
- Google GenAI SDK for Gemini interaction.
- Google Cloud Firestore for persistent case state and audit history.
- Google Cloud Pub/Sub for asynchronous workflow events.
The application is containerized and can be deployed to cloud infrastructure.
Demo Scenarios
CivicFix includes five scenarios that demonstrate the same autonomous lifecycle across different civic problems:
- Streetlight failure
- Blocked drainage
- Road/pothole damage
- Waste accumulation
- Water leak
What We Built
The project was built as a full-stack agentic application with:
- FastAPI backend
- CivicFix agent layer
- Google ADK
- Gemini multimodal reasoning
- Firestore persistence
- Pub/Sub event messaging
- deterministic safety tools
- responsive web dashboard
- automated tests
- Docker deployment configuration
The municipal departments shown in the demonstration are explicitly simulated for the hackathon. The goal is to demonstrate the autonomous workflow and verification architecture without claiming integration with real government systems.
Challenges
One of the biggest challenges was designing the system so that an AI agent could make decisions without being allowed to bypass important safety conditions.
We therefore separated agent reasoning from deterministic actions. In particular, closing a case requires a successful verification result rather than simply trusting an agent's decision.
Another challenge was making resolution verification genuinely multimodal rather than relying on keywords in a description. CivicFix now sends the evidence image to Gemini so that the model can reason over the visual evidence.
We also had to handle AI/API failures safely. If Gemini cannot complete verification, CivicFix does not convert the failure into a successful resolution.
What We Learned
Building CivicFix taught us that an agentic system is more than connecting an LLM to a few buttons.
A useful agent needs:
- tools
- state
- memory/persistence
- event-driven workflows
- clear decision boundaries
- verification
- failure handling
- deterministic safety controls
Most importantly, we learned that autonomy should not mean blind trust.
CivicFix combines autonomous reasoning with evidence-based verification so that a case is resolved because there is evidence supporting the resolution, not simply because someone changed its status.
Future Vision
The hackathon version uses simulated municipal departments. A production version could integrate with real municipal work-order systems, geospatial data, notification channels, identity systems, and verified field-service providers.
Future versions could also compare before-and-after imagery, detect recurring infrastructure failures, prioritize problems based on community impact, and provide municipalities with analytics about unresolved infrastructure issues.
CivicFix's long-term goal is simple: turn "reported" and "claimed fixed" into "verified resolved."
Log in or sign up for Devpost to join the conversation.