Class SessionServiceGrpc.SessionServiceStub (0.1.0)
public static final class SessionServiceGrpc.SessionServiceStub extends AbstractAsyncStub<SessionServiceGrpc.SessionServiceStub>
A stub to allow clients to do asynchronous 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.AbstractAsyncStub >
SessionServiceGrpc.SessionServiceStub
Inherited Members
io.grpc.stub.AbstractAsyncStub.<T>newStub(io.grpc.stub.AbstractStub.StubFactory<T>,io.grpc.Channel)
io.grpc.stub.AbstractAsyncStub.<T>newStub(io.grpc.stub.AbstractStub.StubFactory<T>,io.grpc.Channel,io.grpc.CallOptions)
io.grpc.stub.AbstractStub.<T>withOption(io.grpc.CallOptions.Key<T>,T)
io.grpc.stub.AbstractStub.build(io.grpc.Channel,io.grpc.CallOptions)
io.grpc.stub.AbstractStub.getCallOptions()
io.grpc.stub.AbstractStub.getChannel()
io.grpc.stub.AbstractStub.withCallCredentials(io.grpc.CallCredentials)
io.grpc.stub.AbstractStub.withChannel(io.grpc.Channel)
io.grpc.stub.AbstractStub.withCompression(java.lang.String)
io.grpc.stub.AbstractStub.withDeadline(io.grpc.Deadline)
io.grpc.stub.AbstractStub.withDeadlineAfter(java.time.Duration)
io.grpc.stub.AbstractStub.withDeadlineAfter(long,java.util.concurrent.TimeUnit)
io.grpc.stub.AbstractStub.withExecutor(java.util.concurrent.Executor)
io.grpc.stub.AbstractStub.withInterceptors(io.grpc.ClientInterceptor...)
io.grpc.stub.AbstractStub.withMaxInboundMessageSize(int)
io.grpc.stub.AbstractStub.withMaxOutboundMessageSize(int)
io.grpc.stub.AbstractStub.withOnReadyThreshold(int)
io.grpc.stub.AbstractStub.withWaitForReady()
Methods
bidiRunSession(StreamObserver<BidiSessionServerMessage> responseObserver)
public StreamObserver<BidiSessionClientMessage> bidiRunSession(StreamObserver<BidiSessionServerMessage> responseObserver)
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:
- Initialization:
The first message must contain
SessionConfig.
For audio sessions, this should also include
InputAudioConfig
and
OutputAudioConfig
to define audio processing and synthesis parameters.
- Interaction:
Subsequent messages stream
SessionInput
containing real-time user input data.
- 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:
- Speech Recognition (First N messages):
Contains
RecognitionResult
representing the concatenated user speech segments captured so far.
This is only populated for audio sessions.
- Response (Next M messages):
Contains
SessionOutput
delivering the agent's response in various modalities (e.g., text,
audio).
- 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 ---
- Streaming:
Stream audio data
CONTINUOUSLY, even during silence. Recommended chunk size: 40-120ms
(balances latency vs. efficiency).
- Playback & Interruption:
Play audio responses upon
receipt. Stop playback immediately if an
InterruptionSignal
is received (e.g., user barge-in or new agent response).
build(Channel channel, CallOptions callOptions)
protected SessionServiceGrpc.SessionServiceStub build(Channel channel, CallOptions callOptions)
| Parameters |
| Name |
Description |
channel |
io.grpc.Channel
|
callOptions |
io.grpc.CallOptions
|
Overrides
io.grpc.stub.AbstractStub.build(io.grpc.Channel,io.grpc.CallOptions)
runSession(RunSessionRequest request, StreamObserver<RunSessionResponse> responseObserver)
public void runSession(RunSessionRequest request, StreamObserver<RunSessionResponse> responseObserver)
Initiates a single turn interaction with the CES agent within a
session.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-02-27 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2026-02-27 UTC."],[],[]]