<?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: pramodmisra</title>
    <description>The latest articles on DEV Community by pramodmisra (@pramodmisra).</description>
    <link>https://dev.to/pramodmisra</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1558781%2F7a29528a-3fcf-45bc-8474-0cc424576dcb.jpeg</url>
      <title>DEV Community: pramodmisra</title>
      <link>https://dev.to/pramodmisra</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pramodmisra"/>
    <language>en</language>
    <item>
      <title>How I Built ClaimSight: A 6-Agent AI Claims System with Google ADK and Gemini</title>
      <dc:creator>pramodmisra</dc:creator>
      <pubDate>Fri, 13 Mar 2026 18:18:41 +0000</pubDate>
      <link>https://dev.to/pramodmisra/how-i-built-claimsight-a-6-agent-ai-claims-system-with-google-adk-and-gemini-51g1</link>
      <guid>https://dev.to/pramodmisra/how-i-built-claimsight-a-6-agent-ai-claims-system-with-google-adk-and-gemini-51g1</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbupqkiz4k3rmd6emgqh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbupqkiz4k3rmd6emgqh.jpg" alt=" "&gt;&lt;/a&gt;&lt;br&gt;
Insurance claims are broken. The average property claim takes 25 minutes on the phone, costs insurers $40 to process, and the industry loses $80 billion annually to fraud — now supercharged by AI-generated deepfakes. I built &lt;strong&gt;ClaimSight&lt;/strong&gt; to fix this: a multi-agent AI system that handles claims from first contact to submission in one live conversation using voice, vision, and real-time fraud detection.&lt;/p&gt;

&lt;p&gt;Here's how I built it with Google AI models and Google Cloud.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Architecture: 6 Agents, 24 Tools
&lt;/h2&gt;

&lt;p&gt;ClaimSight uses &lt;strong&gt;Google ADK (Agent Development Kit)&lt;/strong&gt; to orchestrate 6 specialized agents, each powered by &lt;strong&gt;Gemini 2.5 Flash&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Triage Agent&lt;/strong&gt; — Greets the caller, verifies their policy, identifies the claim type, and routes to the right specialist&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maya (Property)&lt;/strong&gt; — Handles homeowner claims with 18 tools including damage assessment, photo capture, AI annotation, and cost estimation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Alex (Auto)&lt;/strong&gt; — Vehicle collision, theft, and comprehensive claims&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jordan (Liability)&lt;/strong&gt; — Bodily injury, premises liability, professional liability&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fraud Sentinel&lt;/strong&gt; — Runs 11 fraud detection tools in parallel behind every claim&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Weather Verifier&lt;/strong&gt; — Cross-references storm claims against historical weather data&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ADK made multi-agent orchestration surprisingly straightforward. Each agent is defined with its own system instructions, tools, and personality. The ADK runner handles agent-to-agent transfers, tool execution routing, and session state — I just had to define the graph.&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;# Agent definition with ADK
&lt;/span&gt;&lt;span class="n"&gt;triage_agent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;claimsight_triage&lt;/span&gt;&lt;span class="sh"&gt;"&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="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gemini-2.5-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;instruction&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;TRIAGE_INSTRUCTIONS&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;tools&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;policy_lookup&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;sub_agents&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;maya_property&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;alex_auto&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;jordan_liability&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fraud_sentinel&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;weather_verifier&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;
  
  
  See, Hear, Speak: True Multimodal UX
&lt;/h2&gt;

&lt;p&gt;ClaimSight isn't a chatbot with extras — it's a fundamentally different interaction paradigm.&lt;/p&gt;

&lt;h3&gt;
  
  
  See — Live Camera Vision
&lt;/h3&gt;

&lt;p&gt;The frontend captures frames from the user's camera at 1 FPS and sends them to the backend via WebSocket. When an agent needs to document damage, it calls &lt;code&gt;photo_capture&lt;/code&gt; which grabs the latest frame — complete with a camera shutter flash effect. The captured photo is then sent to &lt;strong&gt;Gemini's image generation&lt;/strong&gt; for AI damage annotation with severity-coded markers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hear — Natural Voice Input
&lt;/h3&gt;

&lt;p&gt;Browser Speech Recognition API provides continuous speech-to-text with interim results. The user sees their words appear in real-time as they speak, and can seamlessly switch between voice and text input.&lt;/p&gt;

&lt;h3&gt;
  
  
  Speak — Distinct Agent Voices
&lt;/h3&gt;

&lt;p&gt;Each agent has their own natural voice via &lt;strong&gt;Google Cloud Text-to-Speech&lt;/strong&gt; using Journey and Neural2 voice models. Maya sounds different from Alex, which sounds different from Jordan. Text is split into sentences and spoken progressively — the chat text reveals in sync with the speech.&lt;/p&gt;

&lt;p&gt;The hardest part was &lt;strong&gt;echo prevention&lt;/strong&gt;: the agent's TTS voice would get picked up by the user's microphone and fed back as input. I solved this by pausing speech recognition during TTS playback and resuming with a delay after playback ends.&lt;/p&gt;

&lt;h2&gt;
  
  
  3-Layer Fraud Detection
&lt;/h2&gt;

&lt;p&gt;This is the innovation I'm most proud of. The Fraud Sentinel runs 11 tools in parallel behind every claim:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Layer 1 — Visual Analysis:&lt;/strong&gt; Detect AI-generated and manipulated damage photos. Checks for GAN artifacts, inconsistent lighting, and synthetic patterns using &lt;code&gt;detect_ai_generated_image&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Layer 2 — Content Provenance:&lt;/strong&gt; Verify image origin through &lt;strong&gt;C2PA content credentials&lt;/strong&gt;. Check for stripped or forged metadata, analyze narrative consistency across the claimant's statement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Layer 3 — Financial Verification:&lt;/strong&gt; Cross-reference claim details with financial records through &lt;strong&gt;Plaid API&lt;/strong&gt; integration. Detect inflated claims, staged losses, and suspicious patterns.&lt;/p&gt;

&lt;p&gt;All three layers feed into a unified &lt;code&gt;calculate_fraud_risk_score&lt;/code&gt; that the system uses for triage decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-Time Architecture
&lt;/h2&gt;

&lt;p&gt;The backend is a &lt;strong&gt;Python FastAPI&lt;/strong&gt; server with a persistent WebSocket connection per session. Every message flows through a typed protocol:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;transcript&lt;/code&gt; — Chat messages (user and agent)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tool_call&lt;/code&gt; / &lt;code&gt;tool_result&lt;/code&gt; — Real-time tool execution visibility&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;image&lt;/code&gt; — AI-generated images (annotations, visualizations, infographics)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;agent_transfer&lt;/code&gt; — Agent handoff animations&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;thinking&lt;/code&gt; — Processing indicators&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The frontend &lt;strong&gt;Agent Brain&lt;/strong&gt; panel shows every tool call as it happens, with a 9-step progress tracker that fills in as the claim advances. Users can watch the AI think in real-time — it's both a demo feature and a trust mechanism.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deployment on Google Cloud
&lt;/h2&gt;

&lt;p&gt;The entire system runs on &lt;strong&gt;Google Cloud Run&lt;/strong&gt; with a multi-stage Docker build:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Stage 1:&lt;/strong&gt; Node.js builds the React frontend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stage 2:&lt;/strong&gt; Python serves the FastAPI backend + static frontend files&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Infrastructure is managed with &lt;strong&gt;Terraform&lt;/strong&gt; — Cloud Run, Firestore, Artifact Registry, and Cloud Storage are all defined as code and reproducible from the repo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;gcloud run deploy claimsight &lt;span class="nt"&gt;--source&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--region&lt;/span&gt; us-central1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Google Cloud services used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cloud Run&lt;/strong&gt; — Serverless container hosting&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud Text-to-Speech&lt;/strong&gt; — Natural agent voices (Journey + Neural2)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Artifact Registry&lt;/strong&gt; — Docker image storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud Storage&lt;/strong&gt; — Media and document storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Firestore&lt;/strong&gt; — Claims database&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  13 Battle-Tested Scenarios
&lt;/h2&gt;

&lt;p&gt;I didn't just build a demo — I built 13 comprehensive test scenarios covering the most complex claim disputes in US insurance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hurricane + tornado combo with mixed damage causes&lt;/li&gt;
&lt;li&gt;Kitchen fire with smoke damage spreading to multiple rooms&lt;/li&gt;
&lt;li&gt;Multi-vehicle pile-up with disputed fault&lt;/li&gt;
&lt;li&gt;Hit-and-run with only partial plate number&lt;/li&gt;
&lt;li&gt;Suspected deepfake damage photos&lt;/li&gt;
&lt;li&gt;Contractor injury on residential property&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each scenario tests different agent capabilities, tool combinations, and edge cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Google ADK abstracts away orchestration complexity.&lt;/strong&gt; I spent my time on agent behavior and tools, not on routing logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemini 2.5 Flash is fast enough for real-time conversation.&lt;/strong&gt; Tool calls return in seconds, making the experience feel live.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cloud TTS Journey voices are transformative.&lt;/strong&gt; The difference between browser SpeechSynthesis and Cloud TTS is the difference between a toy and a product.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Voice-first UX requires different thinking.&lt;/strong&gt; Prompts that read well as text sound terrible when spoken. I rewrote agent instructions multiple times for natural speech patterns.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fraud detection needs depth, not breadth.&lt;/strong&gt; One detection method is trivially bypassed. Three independent layers make it genuinely hard to game.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live app:&lt;/strong&gt; &lt;a href="https://claimsight-94568440131.us-central1.run.app" rel="noopener noreferrer"&gt;https://claimsight-94568440131.us-central1.run.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/pramodmisra/claimsight" rel="noopener noreferrer"&gt;https://github.com/pramodmisra/claimsight&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Demo video:&lt;/strong&gt; &lt;a href="https://youtu.be/YRtJNRrI7II" rel="noopener noreferrer"&gt;https://youtu.be/YRtJNRrI7II&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Built for the Gemini Live Agent Challenge. #GeminiLiveAgentChallenge&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>geminiliveagentchallenge</category>
    </item>
  </channel>
</rss>
