Class AgentSession<UserData>

Type Parameters

  • UserData = UnknownUserData

Hierarchy

  • TypedEventEmitter<AgentSessionCallbacks, this>
    • AgentSession

Constructors

Properties

options: VoiceOptions
stt?: stt.STT
tts?: tts.TTS
turnDetection?: TurnDetectionMode
vad?: VAD

Accessors

  • get connOptions(): ResolvedSessionConnectOptions
  • Connection options for STT, LLM, and TTS.

    Returns ResolvedSessionConnectOptions

Methods

  • Type Parameters

    • K extends keyof AgentSessionCallbacks

    Parameters

    • event: K
    • Rest ...args: Parameters<AgentSessionCallbacks[K]>

    Returns boolean

  • Parameters

    • Optional options: {
          allowInterruptions?: boolean;
          instructions?: string;
          toolChoice?: llm.ToolChoice;
          userInput?: string;
      }
      • Optional allowInterruptions?: boolean
      • Optional instructions?: string
      • Optional toolChoice?: llm.ToolChoice
      • Optional userInput?: string

    Returns SpeechHandle

  • Run a test with user input and return a result for assertions.

    This method is primarily used for testing agent behavior without requiring a real room connection.

    Parameters

    • options: {
          userInput: string;
      }

      Run options including user input

      • userInput: string

    Returns RunResult<unknown>

    A RunResult that resolves when the agent finishes responding

    TODO: Add outputType parameter for typed outputs (parity with Python)

    Example

    const result = await session.run({ userInput: 'Hello' });
    result.expect.nextEvent().isMessage({ role: 'assistant' });
    result.expect.noMoreEvents();
  • Parameters

    • text: string | ReadableStream<string>
    • Optional options: {
          addToChatCtx?: boolean;
          allowInterruptions?: boolean;
          audio?: ReadableStream<AudioFrame>;
      }
      • Optional addToChatCtx?: boolean
      • Optional allowInterruptions?: boolean
      • Optional audio?: ReadableStream<AudioFrame>

    Returns SpeechHandle

  • Parameters

    • Optional options: {
          drain?: boolean;
          reason?: string;
      }
      • Optional drain?: boolean
      • Optional reason?: string

    Returns void