Class BaseAgent
java.lang.Object
com.google.adk.agents.BaseAgent
- Direct Known Subclasses:
LlmAgent, LoopAgent, ParallelAgent, RemoteA2AAgent, SequentialAgent
Base class for all agents.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classBaseAgent.Builder<B extends BaseAgent.Builder<B>>Base Builder for all agents. -
Constructor Summary
ConstructorsConstructorDescriptionBaseAgent(String name, String description, @Nullable List<? extends BaseAgent> subAgents, @Nullable List<? extends Callbacks.BeforeAgentCallback> beforeAgentCallback, @Nullable List<? extends Callbacks.AfterAgentCallback> afterAgentCallback) Creates a new BaseAgent. -
Method Summary
Modifier and TypeMethodDescriptioncom.google.common.collect.ImmutableList<? extends Callbacks.AfterAgentCallback> com.google.common.collect.ImmutableList<? extends Callbacks.BeforeAgentCallback> com.google.common.collect.ImmutableList<? extends Callbacks.AfterAgentCallback> The resolved afterAgentCallback field as a list.com.google.common.collect.ImmutableList<? extends Callbacks.BeforeAgentCallback> The resolved beforeAgentCallback field as a list.io.reactivex.rxjava3.core.Completableclose()Closes all sub-agents.final StringGets the one-line description of the agent's capability.Finds an agent (this or descendant) by name.findSubAgent(String name) Recursively search sub agent by name.static BaseAgentfromConfig(BaseAgentConfig config, String configAbsPath) Creates a new agent instance from a configuration object.final Stringname()Gets the agent's unique name.Retrieves the parent agent in the agent tree.protected voidparentAgent(BaseAgent parentAgent) Sets the parent agent.Returns the root agent for this agent by traversing up the parent chain.io.reactivex.rxjava3.core.Flowable<Event> runAsync(InvocationContext parentContext) Runs the agent asynchronously.protected abstract io.reactivex.rxjava3.core.Flowable<Event> runAsyncImpl(InvocationContext invocationContext) Agent-specific asynchronous logic.io.reactivex.rxjava3.core.Flowable<Event> runLive(InvocationContext parentContext) Runs the agent synchronously.protected abstract io.reactivex.rxjava3.core.Flowable<Event> runLiveImpl(InvocationContext invocationContext) Agent-specific synchronous logic.
-
Constructor Details
-
BaseAgent
public BaseAgent(String name, String description, @Nullable List<? extends BaseAgent> subAgents, @Nullable List<? extends Callbacks.BeforeAgentCallback> beforeAgentCallback, @Nullable List<? extends Callbacks.AfterAgentCallback> afterAgentCallback) Creates a new BaseAgent.- Parameters:
name- Unique agent name. Cannot be "user" (reserved).description- Agent purpose.subAgents- Agents managed by this agent.beforeAgentCallback- Callbacks before agent execution. Invoked in order until one doesn't return null.afterAgentCallback- Callbacks after agent execution. Invoked in order until one doesn't return null.
-
-
Method Details
-
close
public io.reactivex.rxjava3.core.Completable close()Closes all sub-agents.- Returns:
- a
Completablethat completes when all sub-agents are closed.
-
name
-
description
Gets the one-line description of the agent's capability.- Returns:
- the description of the agent.
-
parentAgent
Retrieves the parent agent in the agent tree.- Returns:
- the parent agent, or
nullif this agent does not have a parent.
-
parentAgent
Sets the parent agent.- Parameters:
parentAgent- The parent agent to set.
-
rootAgent
Returns the root agent for this agent by traversing up the parent chain.- Returns:
- the root agent.
-
findAgent
Finds an agent (this or descendant) by name.- Returns:
- an
Optionalcontaining the agent or descendant with the given name, orOptional.empty()if not found.
-
findSubAgent
Recursively search sub agent by name.- Returns:
- an
Optionalcontaining the sub agent with the given name, orOptional.empty()if not found.
-
subAgents
-
beforeAgentCallback
public com.google.common.collect.ImmutableList<? extends Callbacks.BeforeAgentCallback> beforeAgentCallback() -
afterAgentCallback
public com.google.common.collect.ImmutableList<? extends Callbacks.AfterAgentCallback> afterAgentCallback() -
canonicalBeforeAgentCallbacks
public com.google.common.collect.ImmutableList<? extends Callbacks.BeforeAgentCallback> canonicalBeforeAgentCallbacks()The resolved beforeAgentCallback field as a list.This method is only for use by Agent Development Kit.
-
canonicalAfterAgentCallbacks
public com.google.common.collect.ImmutableList<? extends Callbacks.AfterAgentCallback> canonicalAfterAgentCallbacks()The resolved afterAgentCallback field as a list.This method is only for use by Agent Development Kit.
-
runAsync
Runs the agent asynchronously.- Parameters:
parentContext- Parent context to inherit.- Returns:
- stream of agent-generated events.
-
runLive
Runs the agent synchronously.- Parameters:
parentContext- Parent context to inherit.- Returns:
- stream of agent-generated events.
-
runAsyncImpl
protected abstract io.reactivex.rxjava3.core.Flowable<Event> runAsyncImpl(InvocationContext invocationContext) Agent-specific asynchronous logic.- Parameters:
invocationContext- Current invocation context.- Returns:
- stream of agent-generated events.
-
runLiveImpl
protected abstract io.reactivex.rxjava3.core.Flowable<Event> runLiveImpl(InvocationContext invocationContext) Agent-specific synchronous logic.- Parameters:
invocationContext- Current invocation context.- Returns:
- stream of agent-generated events.
-
fromConfig
Creates a new agent instance from a configuration object.- Parameters:
config- Agent configuration.configAbsPath- Absolute path to the configuration file.- Returns:
- new agent instance.
-