Inspiration
Why we built this: IT support desks are flooded daily with repetitive, low-complexity requests. Password resets, software access requests, printer troubleshooting, and basic network questions consume up to 70–80% of a support team's time.
Traditional approaches to solve this involve chat widgets on internal portals, but these require active user initiation and suffer from low adoption because employees naturally prefer sending an email to a shared address. We built the Inbox Guardian to meet users where they already work: their email inbox. It acts as an autonomous first responder, solving routine requests instantly while logging and escalating complex queries so human engineers can focus on critical work._
What it does
The Autonomous IT Support Inbox Guardian is a proactive, background-running system that executes the following loop:
- Ingestion: Reads the unread queue of the shared support inbox (emulated via native Google Cloud Firestore collection
inbox). - Triage & Branching: A Gemini reasoning model classifies each email (e.g. Password Reset, Hardware Issue, Security/Phishing) and assigns a priority level.
- Routine Path: The agent drafts a step-by-step resolution from the Knowledge Base, replies to the user, logs a "Resolved" ticket in Firestore, and archives the email.
- Complex Path: The agent logs the ticket as "Escalated/Pending" in Firestore, assigns a department owner (e.g., Security Team, Hardware Provisioning), archives the email, and triggers alerts for human operators.
- Self-Introspection: The agent retrieves recent execution traces via telemetry tools.
- Self-Evaluation & Self-Improvement (LLM-as-a-Judge): The system automatically grades recent replies on Helpfulness, Completeness, and Tone (1-5 scale) using Gemini. If average scores fall below
4.0/5.0, Gemini acts as a prompt engineer to autonomously optimize the agent's core instructions (system_prompt.txt), learning and refining its own behavior. - Interactive Control Dashboard: A premium dark-themed Streamlit console visualizing live Firestore state, inbox status, ticket logs, and live evaluation charts.
How we built it
We engineered a production-ready cloud architecture:
- Google Agent Development Kit (ADK): Orchestrates the agent definition (
LlmAgent), custom tool registration, and execution via ADK'sRunner. - Google Vertex AI / Gemini: Serves as the core engine for ticket reasoning, email drafting, and LLM-as-a-Judge evaluations.
- Google Cloud Firestore: Replaces file-based databases with native GCP Firestore collections (
inbox,replies,tickets) for live, persistent storage. - Arize Phoenix (Self-Hosted on Cloud Run): Collects OpenTelemetry traces to inspect spans, tool arguments, model inputs, outputs, token counts, and latency.
- OpenInference Instrumentation: Automatic agent telemetry instrumentation using
openinference-instrumentation-google-adk. - FastAPI & Streamlit: FastAPI hosts the background webhook runner, and Streamlit serves as the live management UI, both deployed to Google Cloud Run.
Challenges we ran into
- Telemetry Shipping in Serverless Environments: Configuring OpenTelemetry exporters to reliably ship spans from serverless Cloud Run backend containers to a self-hosted Cloud Run Phoenix collector endpoint without blocking request cycles. We resolved this by customizing the OTLP exporter config and endpoint resolution.
- Stateless Container Synchronization: Developing a way to visualize self-evaluations and prompt updates on Streamlit when containers run independently and do not share local files. (We migrated the primary inbox database to Firestore and mapped out the roadmap to move telemetry JSONs there too).
- Dependency Auditing: Resolving Python version syntax errors inside the
phoenixlibrary wrapper by moving to the modernizedarize-phoenixpackage across all container build stages.
Accomplishments that we're proud of
- Closed-Loop Prompts: Successfully implementing a functional prompt-engineering optimizer inside the agent that actively listens to its own evaluations and adapts its instructions.
- Production GCP Deployment: Moving the entire workspace from a local mock-sandbox to Google Cloud Run and Google Cloud Firestore.
- High-Fidelity Telemetry: Instantly gaining deep planning insight inside Arize Phoenix for every tool call (
read_unread_emails,send_reply,create_ticket_record,archive_email).
What we learned
- How to properly leverage OpenTelemetry and OpenInference to debug complex multi-step agent planning loops.
- The benefits of the Google ADK framework in decoupling agent instructions, tools, and execution runtimes.
- Building zero-user-initiated agent loops that run on webhook triggers.
What's next for Autonomous IT Support Inbox Guardian
- Strict MCP Compliance: Transition from directly querying the python SDK client to using the Google ADK
McpToolsetto mount the@arizeai/phoenix-mcpserver, complying fully with the Model Context Protocol. - Stateless Persistence: Migrate the evaluation data (
mock_evals.json) and system prompt configuration directly to Firestore so they survive container restarts. - Live Workspace Bindings: Swap Firestore-emulated inbox tools for real OAuth-delegated Gmail and Google Sheets APIs.
Log in or sign up for Devpost to join the conversation.