Skip to content

Tutorial

This tutorial covers every major component of russo in detail. Work through it sequentially, or jump to the section you need.

Overview

russo's architecture is a simple pipeline with pluggable components:

graph LR
    A["Text Prompt"] --> B["Synthesizer"]
    B -->|Audio| C["Agent"]
    C -->|AgentResponse| D["Evaluator"]
    D -->|EvalResult| E["Pass / Fail"]

Each component is defined by a protocol (structural typing). You don't need to inherit from anything — just implement the right method signature.

Sections

Section What You'll Learn
Pipeline How russo.run() orchestrates the full flow
Adapters Connecting to Gemini, OpenAI, HTTP, WebSocket, or custom agents
Synthesizers Converting text prompts to audio
Evaluators Comparing expected vs actual tool calls
Caching Skipping TTS calls on repeated test runs
pytest Plugin Markers, fixtures, CLI options, and reporting