# Package-level declarations

## Types

AgentState
Link copied to clipboard
interface AgentState

Interface for agent-specific state classes in ADK.

BaseAgent
Link copied to clipboard
abstract class BaseAgent(val name: String, val description: String = "", val subAgents: List<BaseAgent> = emptyList(), val beforeAgentCallbacks: List<BeforeAgentCallback> = emptyList(), val afterAgentCallbacks: List<AfterAgentCallback> = emptyList(), val disallowTransferToParent: Boolean = false, val disallowTransferToPeers: Boolean = false)

Base class for all agents.

CallbackContext
Link copied to clipboard
class CallbackContext(invocationContext: InvocationContext, eventActions: EventActions? = null) : ReadonlyContext

The context provided to agents and tools during a callback, such as when a tool is run.

Instruction
Link copied to clipboard
sealed interface Instruction

A unit of instruction provided to an LlmAgent.

InvocationContext
Link copied to clipboard
data class InvocationContext(val session: Session, val runConfig: RunConfig? = null, val agent: BaseAgent, val branch: String? = null, val invocationId: String = "e-" + Uuid.random(), val artifactService: ArtifactService? = null, val memoryService: MemoryService? = null, val sessionService: SessionService? = null, val resumabilityConfig: ResumabilityConfig? = null, val userContent: Content? = null, val agentStates: MutableMap<String, TypedData> = concurrentMutableMapOf(), val endOfAgents: MutableMap<String, Boolean> = concurrentMutableMapOf(), val extraTools: MutableMap<String, BaseTool> = concurrentMutableMapOf(), var isEndOfInvocation: Boolean = false, var isPaused: Boolean = false, val pluginManager: PluginManager = PluginManager())

An invocation context represents the data of a single invocation of an agent.

LlmAgent
Link copied to clipboard
class LlmAgent(val name: String, val model: Model, val description: String = "", val subAgents: List<BaseAgent> = emptyList(), val beforeAgentCallbacks: List<BeforeAgentCallback> = emptyList(), val afterAgentCallbacks: List<AfterAgentCallback> = emptyList(), val disallowTransferToParent: Boolean = false, val disallowTransferToPeers: Boolean = false, val tools: List<BaseTool> = emptyList(), val toolsets: List<Toolset> = emptyList(), val generateContentConfig: GenerateContentConfig? = null, val instruction: Instruction? = null, val staticInstruction: Content? = null, val beforeModelCallbacks: List<BeforeModelCallback> = emptyList(), val afterModelCallbacks: List<AfterModelCallback> = emptyList(), val beforeToolCallbacks: List<BeforeToolCallback> = emptyList(), val afterToolCallbacks: List<AfterToolCallback> = emptyList(), val inputSchema: Schema? = null, val onModelErrorCallbacks: List<OnModelErrorCallback> = emptyList(), val onToolErrorCallbacks: List<OnToolErrorCallback> = emptyList(), val includeContents: LlmAgent.IncludeContents = IncludeContents.DEFAULT) : BaseAgent

LLM-based Agent.

LoopAgent
Link copied to clipboard
class LoopAgent(val name: String, val maxIterations: Int? = null, val description: String = "", val subAgents: List<BaseAgent> = emptyList(), val beforeAgentCallbacks: List<BeforeAgentCallback> = emptyList(), val afterAgentCallbacks: List<AfterAgentCallback> = emptyList()) : BaseAgent

A shell agent that runs its sub-agents in a loop.

LoopAgentState
Link copied to clipboard
data class LoopAgentState(val currentSubAgent: String, val timesLooped: Int) : AgentState

Persistent state of a LoopAgent.

ParallelAgent
Link copied to clipboard
class ParallelAgent(val name: String, val description: String = "", val subAgents: List<BaseAgent> = emptyList(), val beforeAgentCallbacks: List<BeforeAgentCallback> = emptyList(), val afterAgentCallbacks: List<AfterAgentCallback> = emptyList()) : BaseAgent

A shell agent that runs its sub-agents in parallel in an isolated manner.

ReadonlyContext
Link copied to clipboard
interface ReadonlyContext

A readonly view of the invocation context.

ResumabilityConfig
Link copied to clipboard
data class ResumabilityConfig @ExperimentalResumabilityFeature constructor(val isResumable: Boolean = false)

Configuration for resumability in ADK.

RunConfig
Link copied to clipboard
data class RunConfig(val streamingMode: StreamingMode = StreamingMode.NONE, val customMetadata: Map<String, Any>? = null)

Configs for runtime behavior of agents.

SequentialAgent
Link copied to clipboard
class SequentialAgent(val name: String, val description: String = "", val subAgents: List<BaseAgent> = emptyList(), val beforeAgentCallbacks: List<BeforeAgentCallback> = emptyList(), val afterAgentCallbacks: List<AfterAgentCallback> = emptyList()) : BaseAgent

A shell agent that runs its sub-agents in sequence.

SequentialAgentState
Link copied to clipboard
data class SequentialAgentState(val currentSubAgent: String) : AgentState

Persistent state of a SequentialAgent.

StreamingMode
Link copied to clipboard
enum StreamingMode : Enum<StreamingMode>

Streaming modes for agent execution.

TypedData
Link copied to clipboard
sealed class TypedData

A type-safe hierarchy for agent state variables, ensuring primitives don't collapse.

## Functions

findAgent
Link copied to clipboard
fun BaseAgent.findAgent(targetName: String): BaseAgent?

Finds an agent with the given name in this agent's subtree (including itself).