Inspiration
As a CS student, I spend hours searching across tabs to research any topic. I wanted a hands-free research companion — just speak a topic and get a full research briefing back through voice. The Gemini Live API made real-time voice interaction possible.
What it does
ResearchAI is a voice-powered AI research agent. You speak a topic, and the agent plans subtopics, searches the live web, synthesizes findings, and responds back with voice — all in real time. You can interrupt, ask follow-ups, and go deeper naturally.
How we built it
- Backend: Python + FastAPI + Google ADK 1.26.0 with 4 custom tools
- Frontend: React 18 + TypeScript + Vite with a custom Voice Orb UI
- Model: gemini-2.0-flash-live-001 via Gemini Live API
- Tools: plan_research_subtopics, google_search, format_research_summary, suggest_followup_questions
- WebSocket streams raw PCM audio bidirectionally between browser and backend
Challenges we ran into
- Gemini Live API sends raw Int16 PCM audio — not mp3/wav — requiring manual Float32 conversion in the browser
- RunConfig serialization issues caused 1008 policy violations until we explicitly set transcription fields to None
- Tool execution required pausing mic audio to prevent policy violations during function calls
- Session management with ADK required unique internal session IDs to prevent AlreadyExistsError
Accomplishments that we're proud of
- Full real-time voice-in / voice-out research agent working end to end
- 4-step agent workflow (Plan → Search → Synthesize → Follow-up) with live UI tracking
- Multi-turn conversation supporting 10+ follow-up questions in a single session
- Clean React UI with animated orb, starfield background, and workflow step tracker
What we learned
- How to work with Gemini Live API's raw audio format and WebSocket protocol
- How Google ADK manages agent sessions, tool calling, and streaming events
- How to build production-grade WebSocket infrastructure for real-time audio
What's next for ResearchAI — Voice Research Agent
- Cloud deployment on Google Cloud Run
- PDF export of research sessions
- Multi-language support
- Session memory across conversations
Built With
- fastapi
- gemini-live-api
- google-adk
- python
- react
- typescript
Log in or sign up for Devpost to join the conversation.