Package com.google.adk.agents
Class Context
java.lang.Object
com.google.adk.agents.ReadonlyContext
com.google.adk.agents.Context
- Direct Known Subclasses:
CallbackContext
The context passed to callbacks, tools, and workflow nodes during an invocation.
Agent and model callbacks receive a CallbackContext, and tools and tool callbacks a
ToolContext; both extend this class, so a helper that serves both,
or a function tool's toolContext parameter, can take a Context. requestConfirmation() requires a function call ID, which only a tool call has, while requireNodeState() and the other workflow node methods require the context of a workflow node.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected EventActionsThe event actions that record this context's changes.Fields inherited from class com.google.adk.agents.ReadonlyContext
invocationContext -
Constructor Summary
ConstructorsConstructorDescriptionContext(InvocationContext invocationContext, NodeExecutionState nodeState) Creates the context of the workflow node run whose state isnodeState. -
Method Summary
Modifier and TypeMethodDescriptionactions()Returns the sameEventActionsaseventActions().final intReturns the number of the attempt this workflow node is on, counting from 1; each retry adds one.Returns theEventActionsassociated with this context.final StringReturns the author of the events this workflow node emits, or empty to use the node's name.final voideventAuthor(String eventAuthor) Sets the author of the events this workflow node emits.eventId()Returns the ID of the event associated with this context, or null if there is none.Returns the ID of the function call that invoked the current tool, if any.voidfunctionCallId(@Nullable String functionCallId) Sets the ID of the function call that invoked the current tool, or clears it if null.Lists the filenames of the artifacts attached to the current session.io.reactivex.rxjava3.core.Maybe<com.google.genai.types.Part>loadArtifact(String filename) Loads the latest version of an artifact from the service.io.reactivex.rxjava3.core.Maybe<com.google.genai.types.Part>loadArtifact(String filename, int version) Loads a specific version of an artifact from the service.output()Returns this workflow node's output, which is the output of itsuseAsOutputchild once that child emits one, or empty if it has none.voidRequests confirmation for the current function call.voidrequestConfirmation(@Nullable String hint) Requests confirmation for the current function call.voidrequestConfirmation(@Nullable String hint, @Nullable Object payload) Requests confirmation for the current function call.final NodeExecutionStateReturns the state of the workflow node run this context belongs to.Returns the user's answers to the requests for input and long-running calls that this workflow node or its descendants made in an earlier turn, keyed by interrupt ID.routes()Returns the routes this workflow node selected, or empty if it made no routing decision.final voidSelects this workflow node's routes, which decide the outgoing edges to follow, replacing any earlier selection.final io.reactivex.rxjava3.core.Maybe<Object>Runsnodeas a child of this workflow node without an input, asrunNode(Node, Object, RunNodeConfig)does with the defaultRunNodeConfig.final io.reactivex.rxjava3.core.Maybe<Object>Runsnodeas a child of this workflow node, asrunNode(Node, Object, RunNodeConfig)does with the defaultRunNodeConfig.final io.reactivex.rxjava3.core.Maybe<Object>runNode(Node node, @Nullable Object nodeInput, RunNodeConfig config) Returns aMaybethat, when subscribed, runsnodeas a child of this workflow node and emits the child's output, or completes empty if it has none.io.reactivex.rxjava3.core.CompletablesaveArtifact(String filename, com.google.genai.types.Part artifact) Saves an artifact and records it as a delta for the current session.io.reactivex.rxjava3.core.Single<SearchMemoryResponse>searchMemory(String query) Searches the memory of the current user.state()Returns the delta-aware state of the current context.Returns the confirmation of the current tool call, if any.voidtoolConfirmation(@Nullable ToolConfirmation toolConfirmation) Sets the confirmation of the current tool call, or clears it if null.Methods inherited from class com.google.adk.agents.ReadonlyContext
agentName, branch, events, invocationContext, invocationId, sessionId, userContent, userId
-
Field Details
-
eventActions
The event actions that record this context's changes.
-
-
Constructor Details
-
Context
Creates the context of the workflow node run whose state isnodeState. Only the workflow runtime creates a node state.
-
-
Method Details
-
state
Returns the delta-aware state of the current context.- Overrides:
statein classReadonlyContext
-
eventActions
Returns theEventActionsassociated with this context. -
actions
Returns the sameEventActionsaseventActions(). -
eventId
Returns the ID of the event associated with this context, or null if there is none. -
functionCallId
Returns the ID of the function call that invoked the current tool, if any. -
functionCallId
Sets the ID of the function call that invoked the current tool, or clears it if null. -
toolConfirmation
Returns the confirmation of the current tool call, if any. -
toolConfirmation
Sets the confirmation of the current tool call, or clears it if null. -
listArtifacts
Lists the filenames of the artifacts attached to the current session.- Returns:
- the list of artifact filenames
-
loadArtifact
Loads the latest version of an artifact from the service. -
loadArtifact
public io.reactivex.rxjava3.core.Maybe<com.google.genai.types.Part> loadArtifact(String filename, int version) Loads a specific version of an artifact from the service. -
saveArtifact
public io.reactivex.rxjava3.core.Completable saveArtifact(String filename, com.google.genai.types.Part artifact) Saves an artifact and records it as a delta for the current session.- Parameters:
filename- Artifact file name.artifact- Artifact content to save.- Returns:
- a
Completablethat completes when the artifact is saved. - Throws:
IllegalStateException- if the artifact service is not initialized.
-
requestConfirmation
Requests confirmation for the current function call.- Parameters:
hint- A hint to the user on how to confirm the tool call.payload- The payload used to confirm the tool call.- Throws:
IllegalStateException- if this context has no function call ID.
-
requestConfirmation
Requests confirmation for the current function call.- Parameters:
hint- A hint to the user on how to confirm the tool call.- Throws:
IllegalStateException- if this context has no function call ID.
-
requestConfirmation
public void requestConfirmation()Requests confirmation for the current function call.- Throws:
IllegalStateException- if this context has no function call ID.
-
searchMemory
Searches the memory of the current user. -
requireNodeState
Returns the state of the workflow node run this context belongs to.- Throws:
IllegalStateException- if this is not the context of a workflow node.
-
eventAuthor
Returns the author of the events this workflow node emits, or empty to use the node's name.- Throws:
IllegalStateException- if this is not the context of a workflow node.
-
eventAuthor
Sets the author of the events this workflow node emits.- Throws:
IllegalStateException- if this is not the context of a workflow node.
-
output
Returns this workflow node's output, which is the output of itsuseAsOutputchild once that child emits one, or empty if it has none.- Throws:
IllegalStateException- if this is not the context of a workflow node.
-
routes
Returns the routes this workflow node selected, or empty if it made no routing decision. An empty list is a decision that selects no route.- Throws:
IllegalStateException- if this is not the context of a workflow node.
-
routes
Selects this workflow node's routes, which decide the outgoing edges to follow, replacing any earlier selection.- Throws:
IllegalStateException- if this is not the context of a workflow node.
-
resumeInputs
Returns the user's answers to the requests for input and long-running calls that this workflow node or its descendants made in an earlier turn, keyed by interrupt ID. A node that reruns on resume reads these answers. A null answer has a null value in the map.- Throws:
IllegalStateException- if this is not the context of a workflow node.
-
attemptCount
Returns the number of the attempt this workflow node is on, counting from 1; each retry adds one.- Throws:
IllegalStateException- if this is not the context of a workflow node.
-
runNode
Runsnodeas a child of this workflow node without an input, asrunNode(Node, Object, RunNodeConfig)does with the defaultRunNodeConfig. -
runNode
@Experimental public final io.reactivex.rxjava3.core.Maybe<Object> runNode(Node node, @Nullable Object nodeInput) Runsnodeas a child of this workflow node, asrunNode(Node, Object, RunNodeConfig)does with the defaultRunNodeConfig.- Throws:
IllegalArgumentException- ifnodeInputis aRunNodeConfig, which belongs in the three-argument overload.
-
runNode
@Experimental public final io.reactivex.rxjava3.core.Maybe<Object> runNode(Node node, @Nullable Object nodeInput, RunNodeConfig config) Returns aMaybethat, when subscribed, runsnodeas a child of this workflow node and emits the child's output, or completes empty if it has none. Include it in this node's run and catch only failures you handle, such asDynamicNodeFailedException: when the child waits, it fails with an internalRuntimeExceptionthat must propagate to end this node's run, so that it waits too.It fails with
DynamicNodeFailedExceptionif the child fails; withIllegalStateExceptionif this is not a workflow node's context, if this node'sNode.rerunOnResume()is false, or ifconfigdelegates an output that this node already has or has delegated; and withIllegalArgumentExceptionif the child's name cannot form a node path.
-