Class SessionServiceGrpc.SessionServiceBlockingV2Stub (0.7.0)

public static final class SessionServiceGrpc.SessionServiceBlockingV2Stub extends AbstractBlockingStub<SessionServiceGrpc.SessionServiceBlockingV2Stub>

A stub to allow clients to do synchronous rpc calls to service SessionService.

Session service provides APIs for interacting with CES agents.

Inheritance

java.lang.Object > io.grpc.stub.AbstractStub > io.grpc.stub.AbstractBlockingStub > SessionServiceGrpc.SessionServiceBlockingV2Stub

Methods

bidiRunSession()

public BlockingClientCall<BidiSessionClientMessage,BidiSessionServerMessage> bidiRunSession()

Establishes a bidirectional streaming connection with the CES agent. The agent processes continuous multimodal inputs (e.g., text, audio) and generates real-time multimodal output streams. --- Client Request Stream --- The client streams requests in the following order:

  1. Initialization: The first message must contain SessionConfig. For audio sessions, this should also include InputAudioConfig and OutputAudioConfig to define audio processing and synthesis parameters.
  2. Interaction: Subsequent messages stream SessionInput containing real-time user input data.
  3. Termination: The client should half-close the stream when there is no more user input. It should also half-close upon receiving EndSession or GoAway from the agent. --- Server Response Stream --- For each interaction turn, the agent streams messages in the following sequence:
  4. Speech Recognition (First N messages): Contains RecognitionResult representing the concatenated user speech segments captured so far. This is only populated for audio sessions.
  5. Response (Next M messages): Contains SessionOutput delivering the agent's response in various modalities (e.g., text, audio).
  6. Turn Completion (Final message of the turn): Contains SessionOutput with turn_completed set to true. This signals the end of the current turn and includes DiagnosticInfo with execution details. --- Audio Best Practices ---
  7. Streaming: Stream audio data CONTINUOUSLY, even during silence. Recommended chunk size: 40-120ms (balances latency vs. efficiency).
  8. Playback & Interruption: Play audio responses upon receipt. Stop playback immediately if an InterruptionSignal is received (e.g., user barge-in or new agent response).
Returns
Type Description
io.grpc.stub.BlockingClientCall<BidiSessionClientMessage,BidiSessionServerMessage>

build(Channel channel, CallOptions callOptions)

protected SessionServiceGrpc.SessionServiceBlockingV2Stub build(Channel channel, CallOptions callOptions)
Parameters
Name Description
channel io.grpc.Channel
callOptions io.grpc.CallOptions
Returns
Type Description
SessionServiceGrpc.SessionServiceBlockingV2Stub
Overrides
io.grpc.stub.AbstractStub.build(io.grpc.Channel,io.grpc.CallOptions)

runSession(RunSessionRequest request)

public RunSessionResponse runSession(RunSessionRequest request)

Initiates a single-turn interaction with the CES agent within a session.

Parameter
Name Description
request RunSessionRequest
Returns
Type Description
RunSessionResponse
Exceptions
Type Description
io.grpc.StatusException

streamRunSession(RunSessionRequest request)

public BlockingClientCall<?,RunSessionResponse> streamRunSession(RunSessionRequest request)

Initiates a single-turn interaction with the CES agent. Uses server-side streaming to deliver incremental results and partial responses as they are generated. By default, complete responses (e.g., messages from callbacks or full LLM responses) are sent to the client as soon as they are available. To enable streaming individual text chunks directly from the model, set enable_text_streaming to true.

Parameter
Name Description
request RunSessionRequest
Returns
Type Description
io.grpc.stub.BlockingClientCall<?,RunSessionResponse>