Inspiration

What it does

Inspiration

Working in or alongside agencies, we constantly see the same bottleneck: client onboarding and project tracking are painfully manual and disorganized. Account managers spend weeks chasing clients for briefs, updating requirements, and manually checking if projects are stalling.

We realized that standard chatbots aren't enough. An agency doesn't need an agent to just "write an email"—they need an autonomous system that works in the background, routes tasks to specialized departments, and maintains context across weeks. This inspired us to build Fortified ClientOps Agent: an enterprise-grade multi-agent fleet designed perfectly for the Fortified Enterprise Fleet track. Our goal was to create "unlikely heroes" out of background agents that silently orchestrate operations, enforce security, and audit project health.

How we built it

We architected a robust, failure-tolerant system leveraging Google Cloud and the Gemini Enterprise Agent Platform.

  • The Brain (Gemini 3.5 Flash & Vertex AI): We utilized Gemini 3.5 Flash via the google-genai SDK for its blazing-fast reasoning and massive context window. It handles multimodal inputs, allowing clients to simply upload PDF briefs alongside text instructions.
  • Agent Gateway & Routing (Orchestrator): Built with Python (FastAPI), our Orchestrator acts as the unified gateway. It ingests messy, unstructured client briefs and autonomously routes them to specialized sub-agents (Designer, Developer) based on strict separation of concerns.
  • Memory Bank & Agent Registry (Firestore): We bypassed standard chat loops by implementing Google Cloud Firestore natively. This serves as our secure Memory Bank, persisting cross-session context over extended timelines, and as our Agent Registry for discovery.
  • Fleet Observability: We engineered an asynchronous "Fleet Health" module. It continuously monitors the Firestore state of all active projects, using Gemini to detect staleness, analyze risks, and proactively flag stalled projects before they become a problem.
  • Frontend (React + TypeScript): Hosted on Google Cloud Run alongside our backend, we built a responsive, glassmorphism-styled dashboard to visualize the agent registry, project histories, and risk metrics in real-time.

Challenges we ran into

  1. Long-term Memory Management: A major challenge was ensuring that an agent could remember decisions made a week ago without hallucinating or overflowing the context window. We solved this by structuring our Firestore Database as a deterministic state machine, only feeding Gemini 3.5 the sanitized, relevant historical chunks it needs.
  2. Reliable Inter-Agent Routing: Making sure the Orchestrator didn't just loop endlessly or hallucinate target departments was tough. We had to enforce strict JSON schemas and system instructions using the GenAI SDK to guarantee the Gateway always routed to a valid specialized agent.
  3. Staleness Heuristics vs. AI Analysis: Relying purely on AI to check if a project was "stalled" proved expensive and slow for a large fleet. We hybridized the approach: using deterministic timestamp calculations (Firestore Server Timestamps) for base staleness, and reserving Gemini 3.5 for deeper contextual risk analysis.

Accomplishments that we're proud of

  • Successfully breaking out of the "chatbot" paradigm to create a system that executes asynchronous, multi-step workflows entirely in the background.
  • Implementing a robust Memory Bank that securely maintains context across disparate sessions.
  • Deploying a fully containerized architecture on Google Cloud Run with zero-trust principles, ensuring enterprise readiness.

What we learned

  • Agentic Architectures require strict guardrails. We learned that building a fleet of agents is more about data architecture and state management than just clever prompting.
  • Gemini 3.5 Flash's Schema Enforcement is a game-changer. Enforcing structured JSON outputs allowed our backend to cleanly parse agent decisions and update the database predictably without brittle regex parsing.
  • Bridging the gap between the google-genai SDK and Google Cloud infrastructure (like Firestore) revealed the massive potential of cloud-native agent deployment.

What's next for Fortified ClientOps Agent

Our next steps are to implement Model Armor for inline guardrails against prompt injection from malicious client files, and to introduce OpenTelemetry-compliant audit logs for end-to-end reasoning chain traces. We also plan to integrate Google Workspace APIs so the agents can directly schedule meetings and generate Google Docs based on the tracked scope.

How we built it

We architected a robust, failure-tolerant system leveraging Google Cloud and the Gemini Enterprise Agent Platform.

  • The Brain (Gemini 3.5 Flash & Vertex AI): We utilized Gemini 3.5 Flash via the google-genai SDK for its blazing-fast reasoning and massive context window, enforcing structured JSON outputs for predictable data processing.
  • Agent Gateway & Routing (Orchestrator): Built with Python (FastAPI), our Orchestrator routes tasks to specialized sub-agents based on strict separation of concerns.
  • Memory Bank & Agent Registry (Firestore): We implemented Google Cloud Firestore natively to serve as our secure Memory Bank (persisting cross-session context) and as our Agent Registry for discovery.
  • Frontend (React + TypeScript): Hosted on Google Cloud Run alongside our backend, we built a responsive dashboard to visualize the agent registry, project histories, and risk metrics in real-time.

Challenges we ran into

  1. Long-term Memory Management: A major challenge was ensuring that an agent could remember decisions made a week ago without hallucinating or overflowing the context window. We solved this by structuring our Firestore Database as a deterministic state machine, only feeding Gemini 3.5 the sanitized, relevant historical chunks it needs.
  2. Reliable Inter-Agent Routing: Making sure the Orchestrator didn't just loop endlessly or hallucinate target departments was tough. We had to enforce strict JSON schemas and system instructions using the GenAI SDK to guarantee the Gateway always routed to a valid specialized agent.
  3. Staleness Heuristics vs. AI Analysis: Relying purely on AI to check if a project was "stalled" proved expensive and slow for a large fleet. We hybridized the approach: using deterministic timestamp calculations (Firestore Server Timestamps) for base staleness, and reserving Gemini 3.5 for deeper contextual risk analysis.

Accomplishments that we're proud of

  • Successfully breaking out of the "chatbot" paradigm to create a system that executes asynchronous, multi-step workflows entirely in the background.
  • Implementing a robust Memory Bank that securely maintains context across disparate sessions.
  • Deploying a fully containerized architecture on Google Cloud Run with zero-trust principles, ensuring enterprise readiness.

What we learned

  • Agentic Architectures require strict guardrails. We learned that building a fleet of agents is more about data architecture and state management than just clever prompting.
  • Gemini 3.5 Flash's Schema Enforcement is a game-changer. Enforcing structured JSON outputs allowed our backend to cleanly parse agent decisions and update the database predictably without brittle regex parsing.
  • Bridging the gap between the google-genai SDK and Google Cloud infrastructure (like Firestore) revealed the massive potential of cloud-native agent deployment.

What's next for ClientOps Agent

Our next steps are to implement Model Armor for inline guardrails against prompt injection from malicious client files, and to introduce OpenTelemetry-compliant audit logs for end-to-end reasoning chain traces. We also plan to integrate Google Workspace APIs so the agents can directly schedule meetings and generate Google Docs based on the tracked scope.

Built With

Share this project:

Updates

Submission history