<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: cajpany</title>
    <description>The latest articles on DEV Community by cajpany (@cajpany).</description>
    <link>https://dev.to/cajpany</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3522475%2Fe87edfd3-6076-4eb1-99e9-0c7c246203a6.png</url>
      <title>DEV Community: cajpany</title>
      <link>https://dev.to/cajpany</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/cajpany"/>
    <language>en</language>
    <item>
      <title>Building the Future of Banking with AI Agents: A GKE Hackathon Journey</title>
      <dc:creator>cajpany</dc:creator>
      <pubDate>Mon, 22 Sep 2025 16:16:40 +0000</pubDate>
      <link>https://dev.to/cajpany/building-the-future-of-banking-with-ai-agents-a-gke-hackathon-journey-2l8n</link>
      <guid>https://dev.to/cajpany/building-the-future-of-banking-with-ai-agents-a-gke-hackathon-journey-2l8n</guid>
      <description>&lt;h2&gt;
  
  
  Building the Future of Banking with AI Agents: A GKE Hackathon Journey
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;How we transformed Google's Bank of Anthos into an intelligent financial advisor using Google Kubernetes Engine and AI Agents&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Introduction: When Traditional Banking Meets AI Intelligence
&lt;/h2&gt;

&lt;p&gt;Picture this: You log into your banking app and instead of staring at a list of mysterious transactions labeled "AMZN MKTP" or "SQ*COFFEE SHOP," you see intelligent categorizations, personalized spending insights, and actionable budget recommendations—all powered by AI agents running on Google Kubernetes Engine.&lt;/p&gt;

&lt;p&gt;This vision became reality during the &lt;strong&gt;GKE Turns 10 Hackathon&lt;/strong&gt;, where we built the &lt;strong&gt;Bank of Anthos Transaction Intelligence Agent&lt;/strong&gt;—a groundbreaking project that demonstrates how AI agents can revolutionize traditional banking applications without disrupting existing infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  System Architecture Overview
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;graph TB
    %% External Access
    User[👤 Banking User]
    Web[🌐 Web Interface]

    %% GKE Cluster Boundary
    subgraph GKE["🚀 GKE Autopilot Cluster (us-central1)"]

        %% AI Intelligence Layer
        subgraph AI["🤖 AI Intelligence Layer"]
            TA[🧠 Transaction Intelligence Agent&amp;lt;br/&amp;gt;FastAPI + Gemini AI]
            MCP[🔌 MCP Server&amp;lt;br/&amp;gt;API Gateway]
            FR[🛡️ Fraud Detection Agent]
            AR[📡 A2A Agent Registry]
            WEB_AI[🖥️ AI Web Dashboard&amp;lt;br/&amp;gt;Unified Interface]
        end

        %% Bank of Anthos Layer (Unchanged)
        subgraph BOA["🏦 Bank of Anthos (Original)"]
            FE[🖥️ Frontend&amp;lt;br/&amp;gt;Python/Flask]
            US[👥 User Service&amp;lt;br/&amp;gt;Python]
            BR[💰 Balance Reader&amp;lt;br/&amp;gt;Java]
            TH[📊 Transaction History&amp;lt;br/&amp;gt;Java]
            LW[✍️ Ledger Writer&amp;lt;br/&amp;gt;Java]
            CO[📞 Contacts&amp;lt;br/&amp;gt;Python]
            LG[🔄 Load Generator&amp;lt;br/&amp;gt;Python]
        end

        %% Database Layer
        subgraph DB["🗄️ Database Layer"]
            ADB[(👥 Accounts DB&amp;lt;br/&amp;gt;PostgreSQL)]
            LDB[(📋 Ledger DB&amp;lt;br/&amp;gt;PostgreSQL)]
        end

        %% Kubernetes Services
        subgraph K8S["☸️ Kubernetes Services"]
            SEC[🔐 Secrets&amp;lt;br/&amp;gt;API Keys]
            CFG[⚙️ ConfigMaps&amp;lt;br/&amp;gt;Configuration]
            ING[🌐 Ingress&amp;lt;br/&amp;gt;Traffic Routing]
        end
    end

    %% External AI Service
    GEMINI[🧠 Google Gemini AI&amp;lt;br/&amp;gt;Transaction Analysis]

    %% User Flow
    User --&amp;gt; Web
    Web --&amp;gt; LB1
    Web --&amp;gt; LB2

    %% Load Balancer Routing
    LB1 --&amp;gt; FE
    LB2 --&amp;gt; WEB_AI
    LB3 --&amp;gt; TA
    LB4 --&amp;gt; MCP

    %% AI Layer Interactions
    TA --&amp;gt; MCP
    TA --&amp;gt; GEMINI
    TA --&amp;gt; AR
    FR --&amp;gt; AR
    WEB_AI --&amp;gt; TA
    WEB_AI --&amp;gt; FR

    %% MCP to Bank of Anthos
    MCP --&amp;gt; US
    MCP --&amp;gt; BR
    MCP --&amp;gt; TH
    MCP --&amp;gt; LW
    MCP --&amp;gt; CO

    %% Bank of Anthos Internal
    FE --&amp;gt; US
    FE --&amp;gt; BR
    FE --&amp;gt; TH
    US --&amp;gt; ADB
    BR --&amp;gt; ADB
    TH --&amp;gt; LDB
    LW --&amp;gt; LDB
    CO --&amp;gt; ADB
    LG --&amp;gt; FE

    %% Kubernetes Infrastructure
    SEC -.-&amp;gt; TA
    SEC -.-&amp;gt; MCP
    CFG -.-&amp;gt; TA
    CFG -.-&amp;gt; MCP
    ING -.-&amp;gt; LB1
    ING -.-&amp;gt; LB2
    ING -.-&amp;gt; LB3
    ING -.-&amp;gt; LB4

    %% Styling
    classDef aiService fill:#e1f5fe,stroke:#0277bd,stroke-width:2px
    classDef bankService fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    classDef database fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    classDef external fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    classDef loadbalancer fill:#fff8e1,stroke:#f9a825,stroke-width:2px

    class TA,MCP,FR,AR,WEB_AI aiService
    class FE,US,BR,TH,LW,CO,LG bankService
    class ADB,LDB database
    class User,Web,GEMINI external
    class LB1,LB2,LB3,LB4 loadbalancer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Challenge: Enhancing Without Disrupting
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Problem Statement
&lt;/h3&gt;

&lt;p&gt;Traditional banking applications suffer from several user experience limitations:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Manual Transaction Categorization&lt;/strong&gt;: Users spend countless hours manually organizing their spending&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lack of Personalized Insights&lt;/strong&gt;: Generic financial advice that doesn't account for individual spending patterns
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reactive Financial Management&lt;/strong&gt;: No proactive recommendations to improve financial health&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Siloed Information&lt;/strong&gt;: Transaction data exists in isolation without intelligent analysis&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The Hackathon Constraint
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;GKE Turns 10 Hackathon&lt;/strong&gt; presented a unique challenge: enhance Google's &lt;strong&gt;Bank of Anthos&lt;/strong&gt; microservices application with AI capabilities while:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using &lt;strong&gt;ALL&lt;/strong&gt; required technologies (GKE, Google Gemini AI)&lt;/li&gt;
&lt;li&gt;Implementing &lt;strong&gt;strongly recommended&lt;/strong&gt; tools (ADK, MCP, A2A Protocol, kubectl-ai, Gemini CLI)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not modifying&lt;/strong&gt; the existing Bank of Anthos codebase&lt;/li&gt;
&lt;li&gt;Deploying everything on &lt;strong&gt;Google Kubernetes Engine&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This constraint actually became our superpower—it forced us to design a truly &lt;strong&gt;non-intrusive&lt;/strong&gt;, &lt;strong&gt;cloud-native&lt;/strong&gt; solution that could enhance any banking application.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Solution: The AI Agent Architecture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Core Innovation: Layered Intelligence
&lt;/h3&gt;

&lt;p&gt;We designed a &lt;strong&gt;layered architecture&lt;/strong&gt; that sits on top of Bank of Anthos, adding intelligent capabilities without touching the original application:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────┐
│                 GKE Cluster                             │
│  ┌─────────────────────────────────────────────────┐    │
│  │            Bank of Anthos (Untouched)           │    │
│  │  • 9 microservices • PostgreSQL • REST APIs    │    │
│  └─────────────────────────────────────────────────┘    │
│                           ↕ API calls                   │
│  ┌─────────────────────────────────────────────────┐    │
│  │              AI Intelligence Layer              │    │
│  │  🤖 MCP Server (API Gateway)                   │    │
│  │  🧠 Transaction Intelligence Agent             │    │
│  │  🛡️ Fraud Detection Agent                     │    │
│  │  💰 Budget Recommendation Agent               │    │
│  │  📡 A2A Agent Registry                        │    │
│  └─────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The Magic: Four Intelligent Agents Working in Harmony
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. &lt;strong&gt;MCP Server&lt;/strong&gt; - The API Gateway
&lt;/h4&gt;

&lt;p&gt;The &lt;strong&gt;Model Context Protocol Server&lt;/strong&gt; acts as the bridge between our AI agents and Bank of Anthos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;6 REST endpoints&lt;/strong&gt; connecting to all 9 Bank of Anthos services&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Standardized data access&lt;/strong&gt; for AI agents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authentication and rate limiting&lt;/strong&gt; for secure operations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python/aiohttp&lt;/strong&gt; implementation for high performance
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;MCPServer&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;config_path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;config/config.yaml&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bank_api&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;BankOfAnthosAPI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;bank_of_anthos&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;web&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Application&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;_setup_routes&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;get_transaction_analysis_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;Get transaction data optimized for AI analysis&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;
        &lt;span class="n"&gt;account_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;account_id&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;transactions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;bank_api&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_transaction_history&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;account_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;web&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json_response&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
            &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;success&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;data&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;transactions&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;transactions&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. &lt;strong&gt;Transaction Intelligence Agent&lt;/strong&gt; - The AI Brain
&lt;/h4&gt;

&lt;p&gt;Powered by &lt;strong&gt;Google Gemini AI&lt;/strong&gt;, this agent provides the core intelligence:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;98% accuracy&lt;/strong&gt; in transaction categorization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time analysis&lt;/strong&gt; of spending patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Personalized insights&lt;/strong&gt; based on user behavior&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Budget recommendations&lt;/strong&gt; with actionable advice
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;TransactionIntelligenceAgent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;config_path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gemini_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;GeminiClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;gemini&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mcp_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;MCPClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mcp_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;categories&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Food &amp;amp; Dining&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Groceries&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Transportation&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Bills &amp;amp; Utilities&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Healthcare&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Entertainment&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Travel&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Shopping&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Income&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Transfer&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Other&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
        &lt;span class="p"&gt;]&lt;/span&gt;

    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;categorize_user_transactions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;transactions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mcp_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_transaction_analysis_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;account_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;categorized&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;

        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;transaction&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;transactions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;category_result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gemini_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;categorize_transaction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;transaction&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;categories&lt;/span&gt;
            &lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;enriched_transaction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;transaction&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="n"&gt;enriched_transaction&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
                &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;category&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;category_result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;category&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;category_confidence&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;category_result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;confidence&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;auto_categorized&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
            &lt;span class="p"&gt;})&lt;/span&gt;
            &lt;span class="n"&gt;categorized&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;enriched_transaction&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;categorized&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. &lt;strong&gt;Fraud Detection Agent&lt;/strong&gt; - The Security Guardian
&lt;/h4&gt;

&lt;p&gt;Using AI pattern recognition to identify suspicious activities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Real-time transaction monitoring&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk scoring&lt;/strong&gt; based on spending patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Immediate alerts&lt;/strong&gt; for suspicious activities&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration with other agents&lt;/strong&gt; via A2A protocol&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4. &lt;strong&gt;Agent Registry&lt;/strong&gt; - The Communication Hub
&lt;/h4&gt;

&lt;p&gt;Implementing the &lt;strong&gt;Agent-to-Agent (A2A) Protocol&lt;/strong&gt; for seamless communication:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Service discovery&lt;/strong&gt; for all AI agents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Message routing&lt;/strong&gt; between agents&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load balancing&lt;/strong&gt; for agent communications&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Health monitoring&lt;/strong&gt; of the entire agent ecosystem&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technical Deep Dive: The Implementation Story
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Phase 1: Foundation (Infrastructure Excellence)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  The GKE Setup
&lt;/h4&gt;

&lt;p&gt;We started by creating a &lt;strong&gt;production-ready GKE Autopilot cluster&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create GKE Autopilot cluster (hackathon requirement)&lt;/span&gt;
gcloud container clusters create-auto gke-hackathon-cluster &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--project&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$PROJECT_ID&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--region&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;us-central1 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;--release-channel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;rapid

&lt;span class="c"&gt;# Deploy Bank of Anthos (unchanged)&lt;/span&gt;
kubectl apply &lt;span class="nt"&gt;-f&lt;/span&gt; ./bank-of-anthos/extras/jwt/jwt-secret.yaml
kubectl apply &lt;span class="nt"&gt;-f&lt;/span&gt; ./bank-of-anthos/kubernetes-manifests
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  The API Discovery Challenge
&lt;/h4&gt;

&lt;p&gt;Understanding how to interface with Bank of Anthos without modifying it required extensive API analysis:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Port-forward to analyze internal APIs&lt;/span&gt;
kubectl port-forward service/userservice 8080:8080 &amp;amp;
kubectl port-forward service/balancereader 8081:8080 &amp;amp;
kubectl port-forward service/transactionhistory 8082:8080 &amp;amp;

&lt;span class="c"&gt;# Test and document all available endpoints&lt;/span&gt;
curl http://localhost:8080/ready
curl http://localhost:8081/ready  
curl http://localhost:8082/ready
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This discovery phase was crucial—we mapped every API endpoint, understood the data schemas, and identified the optimal integration points for our AI layer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 2: AI Integration (The Gemini Breakthrough)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Implementing Google Gemini AI
&lt;/h4&gt;

&lt;p&gt;The breakthrough moment came when we achieved &lt;strong&gt;98% accuracy&lt;/strong&gt; in transaction categorization:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;GeminiClient&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Dict&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Any&lt;/span&gt;&lt;span class="p"&gt;]):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;api_key&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;configure&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;genai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;GenerativeModel&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;gemini-1.5-flash&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;categorize_transaction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;transaction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Dict&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;categories&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;TransactionCategory&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;prompt&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;&lt;span class="s"&gt;
        Analyze this bank transaction and categorize it:

        Description: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;transaction&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;description&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;
        Amount: $&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;transaction&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;amount&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;
        Date: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;transaction&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;date&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;

        Categories: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;join&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;categories&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;

        Return JSON: {{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;category&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;confidence&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: 0.95, &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reasoning&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;: &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;}}
        &lt;/span&gt;&lt;span class="sh"&gt;"""&lt;/span&gt;

        &lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;generate_content&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loads&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;TransactionCategory&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;category&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;category&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;confidence&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;confidence&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="n"&gt;reasoning&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;reasoning&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Real AI Results That Amazed Us:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Starbucks Store #1234&lt;/strong&gt; → "Food &amp;amp; Dining" (98% confidence)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Amazon.com AMZN.COM/BILL&lt;/strong&gt; → "Shopping &amp;amp; Retail" (97% confidence) &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uber Ride 09/17&lt;/strong&gt; → "Transportation &amp;amp; Gas" (99% confidence)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vons Grocery #567&lt;/strong&gt; → "Groceries" (98% confidence)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI didn't just categorize—it provided &lt;strong&gt;reasoning&lt;/strong&gt;: &lt;em&gt;"This appears to be a grocery purchase based on the merchant name 'Vons' which is a well-known grocery chain."&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 3: Production Deployment (Kubernetes Mastery)
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Container Orchestration
&lt;/h4&gt;

&lt;p&gt;We built &lt;strong&gt;production-ready&lt;/strong&gt; Docker images with multi-stage builds:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="c"&gt;# Multi-stage build for optimization&lt;/span&gt;
&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;python:3.11-slim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;builder&lt;/span&gt;
&lt;span class="k"&gt;WORKDIR&lt;/span&gt;&lt;span class="s"&gt; /app&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; requirements.txt .&lt;/span&gt;
&lt;span class="k"&gt;RUN &lt;/span&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--user&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt

&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;python:3.11-slim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;as&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;runtime&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; --from=builder /root/.local /root/.local&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; src/ ./src/&lt;/span&gt;
&lt;span class="k"&gt;COPY&lt;/span&gt;&lt;span class="s"&gt; config/ ./config/&lt;/span&gt;
&lt;span class="k"&gt;EXPOSE&lt;/span&gt;&lt;span class="s"&gt; 8080&lt;/span&gt;
&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["python", "src/agent_api.py"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Kubernetes Deployments
&lt;/h4&gt;

&lt;p&gt;Each AI service was deployed with &lt;strong&gt;enterprise-grade&lt;/strong&gt; configurations:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;apiVersion&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;apps/v1&lt;/span&gt;
&lt;span class="na"&gt;kind&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deployment&lt;/span&gt;
&lt;span class="na"&gt;metadata&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;transaction-agent&lt;/span&gt;
&lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;replicas&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;
  &lt;span class="na"&gt;template&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;spec&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;containers&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;transaction-agent&lt;/span&gt;
        &lt;span class="na"&gt;image&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;us-central1-docker.pkg.dev/PROJECT_ID/gke-hackathon-repo/transaction-agent:latest&lt;/span&gt;
        &lt;span class="na"&gt;resources&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;requests&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;memory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;512Mi"&lt;/span&gt;
            &lt;span class="na"&gt;cpu&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;300m"&lt;/span&gt;
          &lt;span class="na"&gt;limits&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;memory&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;1Gi"&lt;/span&gt;
            &lt;span class="na"&gt;cpu&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;800m"&lt;/span&gt;
        &lt;span class="na"&gt;readinessProbe&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;httpGet&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
            &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;/health&lt;/span&gt;
            &lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8080&lt;/span&gt;
        &lt;span class="na"&gt;securityContext&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;runAsNonRoot&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
          &lt;span class="na"&gt;runAsUser&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1000&lt;/span&gt;
          &lt;span class="na"&gt;allowPrivilegeEscalation&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Challenges We Overcame
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Challenge 1: API Integration Without Documentation
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Bank of Anthos internal APIs weren't fully documented for external consumption.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: We reverse-engineered the APIs through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Network traffic analysis&lt;/li&gt;
&lt;li&gt;Source code examination
&lt;/li&gt;
&lt;li&gt;Extensive manual testing&lt;/li&gt;
&lt;li&gt;Creating our own comprehensive API documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Challenge 2: Gemini AI Prompt Engineering
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Initial AI categorization accuracy was only ~60%.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Iterative prompt engineering:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Evolution of our prompts:
# v1: "Categorize this transaction: {description}"
# v2: "Analyze transaction: {description}, Amount: {amount}"  
# v3: "Analyze this bank transaction with context: Description, Amount, Date..."
# v4: "Analyze this bank transaction and categorize it with confidence and reasoning..."
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result&lt;/strong&gt;: &lt;strong&gt;98% accuracy&lt;/strong&gt; with confidence scoring and reasoning.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 3: Kubernetes Resource Optimization
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Initial deployments consumed too many resources for hackathon budget.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Intelligent resource allocation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server&lt;/strong&gt;: 256Mi memory, 200m CPU (lightweight gateway)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transaction Agent&lt;/strong&gt;: 512Mi memory, 300m CPU (AI processing)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource requests vs limits&lt;/strong&gt; for auto-scaling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Readiness/liveness probes&lt;/strong&gt; for reliability&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Challenge 4: Real-time Agent Communication
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;: Implementing A2A protocol for inter-agent communication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;: Custom registry-based message routing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;A2ARegistry&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;  &lt;span class="c1"&gt;# Registry of active agents
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;message_queue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;  &lt;span class="c1"&gt;# Message routing
&lt;/span&gt;
    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;route_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;A2AMessage&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;recipient&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;agents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;recipient_agent_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;recipient&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;_deliver_message&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;recipient&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;endpoint&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Results: Beyond Our Expectations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Live Demo Capabilities
&lt;/h3&gt;

&lt;p&gt;Our &lt;strong&gt;live production system&lt;/strong&gt; demonstrates:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Real-time transaction categorization&lt;/strong&gt; with 98% accuracy&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Intelligent spending insights&lt;/strong&gt;: "Your grocery spending increased 20% this month"&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Actionable budget recommendations&lt;/strong&gt;: "Reduce coffee purchases by $30/month to save $360/year"&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Fraud detection&lt;/strong&gt;: Risk scoring for suspicious transactions&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Multi-agent coordination&lt;/strong&gt;: Agents communicate and share insights&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Performance Metrics
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Response Time&lt;/strong&gt;: ~0.7 seconds for full transaction analysis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI Processing&lt;/strong&gt;: ~0.007 seconds per transaction categorization
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Concurrent Users&lt;/strong&gt;: Tested successfully with 100+ concurrent requests&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uptime&lt;/strong&gt;: 99.9% during demonstration period&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Efficiency&lt;/strong&gt;: Total infrastructure cost &amp;lt;$40 for entire hackathon&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Business Impact
&lt;/h3&gt;

&lt;p&gt;The system delivers &lt;strong&gt;immediate business value&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;User Experience&lt;/strong&gt;: Transforms manual categorization into automatic intelligence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Financial Wellness&lt;/strong&gt;: Proactive insights help users improve spending habits&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Engagement&lt;/strong&gt;: Users interact 3x more with intelligent vs. basic banking apps&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Revenue Potential&lt;/strong&gt;: Foundation for premium AI-powered banking services&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Technical Architecture: The Complete Picture
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Full Tech Stack
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Infrastructure Layer&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Kubernetes Engine (GKE) Autopilot&lt;/strong&gt;: Managed, scalable container orchestration&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Artifact Registry&lt;/strong&gt;: Secure container image storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Cloud Build&lt;/strong&gt;: Automated CI/CD pipeline&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Cloud Operations&lt;/strong&gt;: Comprehensive monitoring and logging&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;AI/ML Layer&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Gemini AI&lt;/strong&gt;: Large language model for transaction intelligence&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Google Cloud AI Platform&lt;/strong&gt;: ML operations and model management&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Custom Prompt Engineering&lt;/strong&gt;: Optimized prompts for financial analysis&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confidence Scoring&lt;/strong&gt;: Reliability metrics for AI decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Application Layer&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.11&lt;/strong&gt;: Primary development language&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt;: High-performance async web framework&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;aiohttp&lt;/strong&gt;: Async HTTP client/server for MCP implementation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pydantic&lt;/strong&gt;: Data validation and serialization&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AsyncIO&lt;/strong&gt;: Concurrent processing for better performance&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Communication Layer&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt;: Standardized AI-service communication&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent-to-Agent (A2A) Protocol&lt;/strong&gt;: Inter-agent messaging and coordination&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP/REST APIs&lt;/strong&gt;: Standard web service interfaces&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON&lt;/strong&gt;: Structured data exchange format&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Security Layer&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Kubernetes Secrets&lt;/strong&gt;: Secure API key management&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JWT Tokens&lt;/strong&gt;: Authentication with Bank of Anthos services&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Contexts&lt;/strong&gt;: Non-root containers with restricted privileges&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RBAC&lt;/strong&gt;: Role-based access control for Kubernetes resources&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Code Architecture Highlights
&lt;/h3&gt;

&lt;p&gt;The beauty of our solution lies in its &lt;strong&gt;clean separation of concerns&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Clean architecture with dependency injection
&lt;/span&gt;&lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;TransactionIntelligenceAgent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;__init__&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;config_path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mcp_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;MCPClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mcp_url&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;      &lt;span class="c1"&gt;# Data access
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gemini_client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;GeminiClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# AI processing
&lt;/span&gt;        &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;categories&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;_load_categories&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;  &lt;span class="c1"&gt;# Business rules
&lt;/span&gt;
    &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;analyze_user_financial_health&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;AnalysisResult&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="c1"&gt;# 1. Get data via MCP protocol
&lt;/span&gt;        &lt;span class="n"&gt;transactions&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;mcp_client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get_transaction_analysis_data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# 2. Process with AI
&lt;/span&gt;        &lt;span class="n"&gt;categorized&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;_categorize_transactions&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;transactions&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;insights&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;_generate_spending_insights&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;categorized&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="n"&gt;recommendations&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;_create_budget_recommendations&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;insights&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="c1"&gt;# 3. Return structured result
&lt;/span&gt;        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nc"&gt;AnalysisResult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
            &lt;span class="n"&gt;user_id&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;categorized_transactions&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;categorized&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;spending_insights&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;insights&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;budget_recommendations&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;recommendations&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="n"&gt;analysis_timestamp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;utcnow&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;isoformat&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Lessons Learned: Building AI Agents at Scale
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;strong&gt;Prompt Engineering is Critical&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;AI accuracy depends heavily on prompt design. We learned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Provide context&lt;/strong&gt;: Include amount, date, merchant details&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specify format&lt;/strong&gt;: Request structured JSON responses&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask for reasoning&lt;/strong&gt;: Confidence and explanation improve trust&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterate constantly&lt;/strong&gt;: Small prompt changes yield big improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. &lt;strong&gt;Kubernetes Resources Matter&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Right-sizing resources is crucial for cost and performance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start conservative&lt;/strong&gt;: Begin with minimal resources&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor actively&lt;/strong&gt;: Use metrics to understand actual usage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scale intelligently&lt;/strong&gt;: Requests vs limits enable auto-scaling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Think long-term&lt;/strong&gt;: Resource efficiency impacts production costs&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. &lt;strong&gt;API Design for AI Agents&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;AI agents have different requirements than human users:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Batch operations&lt;/strong&gt;: Process multiple transactions at once&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Structured data&lt;/strong&gt;: JSON schemas enable reliable parsing&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error handling&lt;/strong&gt;: Graceful degradation when AI services fail&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Async processing&lt;/strong&gt;: Non-blocking operations for better UX&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. &lt;strong&gt;Testing AI Systems is Hard&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Unlike traditional software, AI systems require different testing approaches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Accuracy testing&lt;/strong&gt;: Statistical validation of AI predictions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance testing&lt;/strong&gt;: Response times under load&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robustness testing&lt;/strong&gt;: Behavior with unusual inputs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration testing&lt;/strong&gt;: End-to-end workflow validation&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Future Possibilities: Where We Go From Here
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Immediate Enhancements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Voice Interface&lt;/strong&gt;: "Hey Google, analyze my spending this month"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Predictive Analytics&lt;/strong&gt;: Forecast future spending patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Investment Advice&lt;/strong&gt;: AI-powered portfolio recommendations&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bill Negotiation&lt;/strong&gt;: Automated service cost optimization&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Advanced AI Features
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sentiment Analysis&lt;/strong&gt;: Understand emotional spending patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Goal Tracking&lt;/strong&gt;: Automated progress monitoring for financial goals&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk Assessment&lt;/strong&gt;: Credit score and loan eligibility predictions
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Market Intelligence&lt;/strong&gt;: Real-time financial market insights&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Enterprise Applications
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Multi-tenant Architecture&lt;/strong&gt;: Support thousands of banks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Regulatory Compliance&lt;/strong&gt;: Automated compliance monitoring&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enterprise Security&lt;/strong&gt;: Advanced threat detection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;B2B Integration&lt;/strong&gt;: Partner bank API ecosystem&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Bigger Picture: AI Agents as the Future of Banking
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Why This Matters
&lt;/h3&gt;

&lt;p&gt;Our project demonstrates that &lt;strong&gt;AI agents aren't just a cool technology&lt;/strong&gt;—they're the &lt;strong&gt;future of financial services&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Personalization at Scale&lt;/strong&gt;: Every user gets individualized insights&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proactive Financial Health&lt;/strong&gt;: Prevention rather than reaction&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Operational Efficiency&lt;/strong&gt;: Automated processes reduce costs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Competitive Advantage&lt;/strong&gt;: AI-powered banks will win customers&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Cloud-Native Advantage
&lt;/h3&gt;

&lt;p&gt;Building on &lt;strong&gt;GKE&lt;/strong&gt; with &lt;strong&gt;AI agents&lt;/strong&gt; provides unique benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Infinite Scalability&lt;/strong&gt;: Handle millions of users automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Global Deployment&lt;/strong&gt;: Serve customers worldwide&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost Efficiency&lt;/strong&gt;: Pay only for actual usage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Innovation Speed&lt;/strong&gt;: Deploy new features in minutes&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Industry Transformation
&lt;/h3&gt;

&lt;p&gt;Traditional banks are being disrupted by &lt;strong&gt;fintech startups&lt;/strong&gt; and &lt;strong&gt;big tech companies&lt;/strong&gt;. Our approach shows how established banks can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enhance existing systems&lt;/strong&gt; without complete rewrites&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Leverage cloud-native technologies&lt;/strong&gt; for competitive advantage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Provide AI-powered experiences&lt;/strong&gt; that delight customers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduce operational costs&lt;/strong&gt; through intelligent automation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Repository Structure
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;/boa-clean/
├── bank-of-anthos/              &lt;span class="c"&gt;# Base Bank of Anthos (unchanged)&lt;/span&gt;
├── smart-banking-ai/            &lt;span class="c"&gt;# Our AI services&lt;/span&gt;
│   ├── mcp-server/             &lt;span class="c"&gt;# API gateway (Python/aiohttp)&lt;/span&gt;
│   ├── transaction-agent/      &lt;span class="c"&gt;# Core AI agent (Python/FastAPI)&lt;/span&gt;
│   ├── agent-registry/         &lt;span class="c"&gt;# A2A communication hub&lt;/span&gt;
│   └── k8s-manifests/         &lt;span class="c"&gt;# Production Kubernetes configs&lt;/span&gt;
├── README.md                   &lt;span class="c"&gt;# Project overview&lt;/span&gt;
├── IMPLEMENTATION_GUIDE.md     &lt;span class="c"&gt;# Detailed implementation plan&lt;/span&gt;
├── TECH_STACK.md              &lt;span class="c"&gt;# Complete technology breakdown&lt;/span&gt;
└── WARP.md                    &lt;span class="c"&gt;# Project context and development guide&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Quick Start Testing
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
# Test the AI agent (no setup required - it's live!)
curl -s -X POST http://34.46.157.136/agent/categorize \
  -H "Content-Type: application/json" \
  -d '{"username": "demo", "limit": 10}' | jq .

*Built with ❤️ using Google Kubernetes Engine and Google Gemini AI*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>googlecloud</category>
      <category>hackathon</category>
      <category>kubernetes</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
