Inspiration

As someone seeking therapy, I was overwhelmed by paperwork, repeated questions, and intake forms that felt impersonal. I often found myself having to explain the same concerns to multiple people. I wondered: could AI reduce that friction — and actually make the first step feel more human? CompassionateConnect AI was born from that question.

What it does

CompassionateConnect AI is a Gemini-powered, multi-agent intake system for mental health clinics. It:

  • Asks patients for their name, mood, and concerns

  • Clarifies unclear answers using Gemini

  • Detects signs of crisis and flags them for staff

  • Summarizes responses in plain language

  • Offers ethical, non-diagnostic insights to therapists

  • Stores data securely in both Firestore and JSON for therapist dashboards

The system runs fully in a command-line interface, designed for clinics without web developers or complex infrastructure.

How I built it

I used Google Vertex AI’s Gemini 1.5 Flash model to build multiple agents in Python:

  • An IntakeAgent for asking questions and handling skipped inputs

  • A CrisisResponseAgent that detects risk language and logs high-priority patients

  • A SummaryGeneratorAgent that creates readable summaries of each intake

  • An InsightAgent that provides possible therapy approaches

  • A DataPersistenceAgent that stores everything in Firestore and JSON

I used Google Cloud SDK, Firestore, and local files to keep it lightweight and deployable from any terminal.

Challenges I ran into

  • Debugging Gemini API errors and authentication scopes

  • Designing a CLI-based multi-agent system with ethical guardrails

  • Making the Firestore sync bidirectional and safe

  • Writing a summary pipeline that was actually helpful without overstepping into diagnosis

Accomplishments that I am proud of

  • Fully functional multi-agent pipeline with Gemini 1.5 Flash

  • Working CLI interface for intake and therapist dashboard

  • Crisis detection and ethical insight generation

  • Clean architecture, clean voiceover demo, and Notion documentation

  • Personalized — and born from real experience

IMPORTANT:

Currently, CompassionateConnect AI runs on a Render platform for the onboarding_process intake form and the therapist_dashboard primarily via a command-line interface (CLI) that guides you through the intake process. T

What I learned

  • How to design AI systems with real human stakes in mind

  • How to use Vertex AI + Firestore + Python to build fast prototypes

  • The importance of data clarity and trust when working in mental health

  • That a CLI can still feel compassionate if designed with care

What's next for CompassionateConnect AI

  • Add a lightweight web-based interface (for clinics without technical staff)

  • Enable follow-up agent automation and scheduling integrations

  • Train Gemini prompts on clinic-specific language

  • Expand insight generation into client preparation tools

  • Partner with therapists or nonprofits for real-world pilots

Built With

  • adkhackathon
  • firestore
  • google
  • google-cloud-sdk
  • google-vertex-ai-(gemini-1.5-flash)
  • googleadk
  • json
  • python
Share this project:

Updates

posted an update

Ran into a snag — but turned it into a contribution!

While refactoring my CompassionateConnect AI project to fully align with Google’s ADK, I ran into a frustrating and persistent TypeError when trying to use FunctionTool the “correct” way in google-adk==1.2.1. I tried multiple patterns — subclassing, direct instantiation, different argument orders — but nothing worked.

After spending hours debugging, I realized this might not be my mistake at all. So I documented everything — tracebacks, code attempts, environment setup — and submitted a detailed bug report to the official google/adk-python repo.

Here’s the report if you’re curious. https://github.com/google/adk-python/issues/1331

Not the outcome I expected, but I’m glad it turned into something useful for the open source community. Maybe it's me missing something obvious-I’ll be working around the issue and continuing development from here.

Log in or sign up for Devpost to join the conversation.