Inspiration
Modern fintech needs AI that can be added safely and incrementally—without risky rewrites. Our goal was to evolve Bank of Anthos into a proactive system by adding an agentic AI layer strictly via APIs, keeping the core microservices untouched. GKE provides the platform; Vertex AI Gemini provides reasoning and explanation.
Why Pivot?
The transactionhistory controller exposes GET /transactions/{accountId} and requires a valid JWT authorising that specific account. There is no endpoint to fetch all users’ transactions. A global fraud bot isn’t possible without modifying BoA (against hackathon rules).
Solution: a scoped Personal Financial Advisor that acts on behalf of one user (the demo user) with a valid JWT.
What it does
- Spending Analyst — categorises and summarises transaction patterns and trends
- Fraud Scout(scoped) — flags anomalies for the demo user with transparent rationales and confidence
- Budget Coach — generates personalised budgets and savings nudges for the demo user
- Multi-agent orchestration — agents cross-review and reach consensus before user-visible actions
How we built it
- Base: Bank of Anthos deployed unchanged on GKE (Autopilot)
- PFA agents: containerised Python/FastAPI services calling BoA public APIs only
- MCP Server: the only bridge to BoA; it manages JWT + calls per-account endpoints (/transactions/{accountId}, balances, etc.)
- AI: Vertex AI Gemini for reasoning, summarisation, and explanations
- Orchestration: ADK/MCP/A2A for agent tasking, debate, and consensus
- Data path: async event consumers for transaction streams; idempotent jobs; backpressure controls
- Infra/IaC: Terraform for cluster add-ons; Cloud Build → Artifact Registry → GKE
- Security: Workload Identity, least-privilege service accounts, Secrets/ConfigMaps
- Reliability: HPA, readiness/liveness probes, target SLO p95 insight latency ≤ 300 ms @ 10 rps; error-budget alerts
- Observability: OpenTelemetry/Prometheus metrics, structured logs, trace IDs, dashboards & alerts
Challenges we ran into
- BoA APIs are per-account + JWT-protected; no global “read everything” feed
- Designing narrow agent roles that remain explainable and safe within a single user’s scope
- Delivering meaningful features while remaining API-only (no core code changes)
- Balancing latency when combining BoA calls and LLM reasoning
Accomplishments that we're proud of
- A drop-in agentic layer that cleanly extends BoA via APIs (no risky rewrites)
- Consensus workflows that reduce false positives and improve trust
- Reproducible GKE manifests + CI path, service-mesh-friendly if needed later
What we learned
- Guardrails and role clarity keep agents safe, predictable, and explainable
- API-first integration is the lowest-risk path for modernising microservices with AI
- Practical cost/latency trade-offs for Gemini in near-real-time workflows
What's next for Agentic Anthos: AI Advisor for Bank of Anthos
- Add Investment Advisor and Credit Optimiser agents
- Real-time anomaly detection over streams; goal tracking
- Publish a deep-dive blog and open-source a Helm chart
Architecture diagram
flowchart LR
subgraph GKE[Google Kubernetes Engine (Autopilot)]
subgraph BoA[Bank of Anthos (unchanged)]
UI[Web UI]
ACC[Accounts Service]
TXN[Transaction History Service]
LED[Ledger Service]
NOTIF[Notifier Service]
USR[User Service (JWT login)]
end
subgraph Agentic[Agentic Layer (new, per-demo-user scope)]
MCP[MCP Server (JWT manager + BoA proxy)]
PFA[Personal Financial Advisor (FastAPI)]
SA[Spending Analyst]
FS[Fraud Scout]
BC[Budget Coach]
end
end
VTX[Vertex AI Gemini]
%% Flows
PFA -->|internal HTTP| SA
PFA -->|internal HTTP| FS
PFA -->|internal HTTP| BC
SA --> VTX
FS --> VTX
BC --> VTX
%% MCP ↔ BoA
PFA -->|GET /mcp/transactions?accountId=...| MCP
MCP -->|GET /transactions/{accountId} + JWT| TXN
PFA -->|GET /mcp/balance?accountId=...| MCP
MCP --> ACC
MCP --> LED
MCP --> USR
%% Optional notify path (no core changes)
PFA -->|POST /notify (existing endpoint)| NOTIF
%% UI remains unchanged
UI <-->|existing routes| BoA
Log in or sign up for Devpost to join the conversation.