Skip to content

Protocols

Protocol definitions for russo extension points.

_protocols

Protocol definitions for russo extension points.

All extension points use typing.Protocol (structural subtyping). Users never need to inherit — if the object has the right methods, it works.

Synthesizer

Bases: Protocol

Converts text into audio.

Implement this to plug in any TTS provider (Google, OpenAI, ElevenLabs, etc.).

Agent

Bases: Protocol

The agent under test.

Takes audio input and returns a response containing tool calls.

Evaluator

Bases: Protocol

Compares expected tool calls against actual tool calls.

Implement this for custom matching logic (exact, semantic, partial, etc.).

ResponseParser

Bases: Protocol

Parses a provider-specific raw response into a normalized AgentResponse.

Implement this for each LLM provider format (Gemini, OpenAI, Anthropic, etc.).