Skip to content
Back to skills

Adk Streaming

ASecurity

Building voice and video agents with Gemini Live API — bidirectional streaming via WebSocket, LiveRequestQueue, run_live(), RunConfig, and audio/video patterns. Load when the user wants a voice agent, live agent, or real-time audio/video capabilities.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 2, 2026
ai-agentsgoapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add Folken2/nuvel --skill adk-streaming --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Adk Streaming?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Adk Streaming
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/folken2-adk-streaming/badge)](https://www.skillsdirectory.com/skills/folken2-adk-streaming)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: adk-streaming
description: >-
  Building voice and video agents with Gemini Live API — bidirectional
  streaming via WebSocket, LiveRequestQueue, run_live(), RunConfig, and
  audio/video patterns. Load when the user wants a voice agent, live
  agent, or real-time audio/video capabilities.
---

# ADK Streaming — Voice & Video Agents

Build real-time voice and video agents using ADK's bidirectional streaming
with the Gemini Live API.

## When to Use

The user explicitly asks for:
- Voice agent / voice assistant
- Live agent / real-time agent
- Audio/video capabilities
- Conversational agent with speech

## Architecture

```
Browser (mic/cam) → WebSocket /ws/{user_id}/{session_id}
    ↓ upstream_task
LiveRequestQueue (text: send_content, audio: send_realtime)
    ↓
Runner.run_live() ←→ Gemini Live API (BIDI mode)
    ↓ downstream_task
WebSocket → Browser (audio playback + transcriptions)
```

## Key Components

| Component | Purpose |
|-----------|---------|
| `LiveRequestQueue` | Async FIFO buffer between WebSocket and agent. One per session. |
| `Runner.run_live()` | Async generator consuming from queue, yielding events |
| `RunConfig(streaming_mode=StreamingMode.BIDI)` | Configures BIDI mode for Live API |
| `StreamingMode.BIDI` | WebSocket to Gemini Live API (audio/video) |
| `StreamingMode.SSE` | HTTP streaming to standard Gemini API (text only) |

## Template Integration

The generated template includes streaming support gated behind `STREAMING_ENABLED=true`:

1. `streaming.py` — WebSocket handler with upstream/downstream tasks
2. `run_adk.py` — conditional branch that builds Runner manually with `LIVE_MODEL`
3. `static/test_client.html` — minimal browser test client
4. `config/llm.py` — `LIVE_MODEL` config (Gemini model string, not LiteLLM)

## Design Decisions for Streaming Agents

When designing a streaming agent:

1. **Model**: Must use Gemini directly (`LIVE_MODEL`), not OpenRouter/LiteLLM
2. **API Key**: Requires `GOOGLE_API_KEY` (not `OPENROUTER_API_KEY`)
3. **Tools work during streams**: Agent can call FunctionTools mid-conversation
4. **VAD**: Automatic by default — no manual activity signals needed
5. **Transcription**: Enable both input and output transcription for logging
6. **Session resumption**: Enable for connection recovery

## Customization Points

When generating a streaming agent, customize these in `streaming.py`:

- **Voice**: Add `speech_config` to `RunConfig` for voice selection
- **Language**: Set `language_code` in speech config
- **VAD mode**: Disable auto VAD for push-to-talk UIs
- **Video**: Add video modality to `response_modalities`
- **Audio format**: Default is PCM 16kHz input, 24kHz output

Load references for details on each customization.

## References

- Load `streaming-patterns` for RunConfig options, VAD modes, voice selection, and audio format details.
- Load `live-api-reference` for LiveRequestQueue API, event types, and error handling.

Files in this skill

  • SKILL.md2.9 KB
  • references/live-api-reference.md2.7 KB
  • references/streaming-patterns.md3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.