# adk_ex v1.1.0 - Table of Contents

Elixir port of Google's Agent Development Kit (ADK) — agent orchestration, sessions, tools, LLM abstraction, plugins, and telemetry. Transport-agnostic.

## Pages

- [ADK Ex](readme.md)
- [Changelog](changelog.md)
- [Architecture](architecture.md)
- [Onboarding Guide](onboarding.md)
- [LLM Usage Rules](usage-rules.md)

## Modules

- [ADK](ADK.md): Elixir port of Google's Agent Development Kit (ADK).
- [ADK.Types.Blob](ADK.Types.Blob.md): Binary data with MIME type.
- [ADK.Types.Content](ADK.Types.Content.md): A message containing one or more parts with a role.
- [ADK.Types.FunctionCall](ADK.Types.FunctionCall.md): Represents a function call request from an LLM.
- [ADK.Types.FunctionResponse](ADK.Types.FunctionResponse.md): Represents a function call response.
- [ADK.Types.Part](ADK.Types.Part.md): A single part of a Content message.

- Core
  - [ADK.Event](ADK.Event.md): Represents an interaction event in an agent session.
  - [ADK.Event.Actions](ADK.Event.Actions.md): Side-effect actions produced by an event.
  - [ADK.RunConfig](ADK.RunConfig.md): Runtime configuration for agent execution.

  - [ADK.Runner](ADK.Runner.md): Orchestrates agent execution within a session.
  - [ADK.Session](ADK.Session.md): Represents a series of interactions between a user and agents.
  - [ADK.Session.InMemory](ADK.Session.InMemory.md): In-memory session service backed by ETS tables.
  - [ADK.Session.Service](ADK.Session.Service.md): Behaviour for session storage backends.
  - [ADK.Session.State](ADK.Session.State.md): Utilities for working with prefixed session state keys.
  - [ADK.Types](ADK.Types.md): Core content types equivalent to Google's genai SDK types.

- Agents
  - [ADK.Agent](ADK.Agent.md): Behaviour for ADK agents.
  - [ADK.Agent.CallbackContext](ADK.Agent.CallbackContext.md): Context available to before/after agent callbacks.
  - [ADK.Agent.Config](ADK.Agent.Config.md): Configuration struct for creating a custom agent via `ADK.Agent.CustomAgent`.

  - [ADK.Agent.CustomAgent](ADK.Agent.CustomAgent.md): A custom agent built from an `ADK.Agent.Config`.
  - [ADK.Agent.InvocationContext](ADK.Agent.InvocationContext.md): Immutable context threaded through agent invocations.
  - [ADK.Agent.LlmAgent](ADK.Agent.LlmAgent.md): An agent backed by a large language model.
  - [ADK.Agent.LoopAgent](ADK.Agent.LoopAgent.md): An agent that runs its sub-agents iteratively in sequence.
  - [ADK.Agent.ParallelAgent](ADK.Agent.ParallelAgent.md): An agent that runs all its sub-agents concurrently.
  - [ADK.Agent.SequentialAgent](ADK.Agent.SequentialAgent.md): An agent that runs its sub-agents once in sequence.
  - [ADK.Agent.Tree](ADK.Agent.Tree.md): Utilities for working with agent trees (hierarchies of agents and sub-agents).

- Tools
  - [ADK.Tool](ADK.Tool.md): Behaviour for ADK tools.
  - [ADK.Tool.Context](ADK.Tool.Context.md): Context passed to tool execution.
  - [ADK.Tool.FunctionTool](ADK.Tool.FunctionTool.md): A tool backed by an anonymous function.
  - [ADK.Tool.LoadArtifacts](ADK.Tool.LoadArtifacts.md): A tool that loads artifacts by name from the artifact service.
  - [ADK.Tool.LoadMemory](ADK.Tool.LoadMemory.md): A tool that searches memory for relevant past interactions.
  - [ADK.Tool.Toolset](ADK.Tool.Toolset.md): Behaviour for dynamic tool providers.
  - [ADK.Tool.TransferToAgent](ADK.Tool.TransferToAgent.md): A tool that signals a transfer to another agent.

- Model
  - [ADK.Model](ADK.Model.md): Behaviour for LLM model providers.
  - [ADK.Model.Claude](ADK.Model.Claude.md): Anthropic Claude model provider.
  - [ADK.Model.Gemini](ADK.Model.Gemini.md): Google Gemini model provider.
  - [ADK.Model.LiteLlm](ADK.Model.LiteLlm.md): Generic OpenAI-compatible model provider.
  - [ADK.Model.LlmRequest](ADK.Model.LlmRequest.md): Request to a model's generate_content call.
  - [ADK.Model.LlmResponse](ADK.Model.LlmResponse.md): Response from a model's generate_content call.
  - [ADK.Model.Mock](ADK.Model.Mock.md): Mock model for testing without real API calls.
  - [ADK.Model.Registry](ADK.Model.Registry.md): Resolves model name strings to provider structs.

- Flow
  - [ADK.Flow](ADK.Flow.md): Core execution engine for LLM agents.
  - [ADK.Flow.Processors.AgentTransfer](ADK.Flow.Processors.AgentTransfer.md): Request processor that injects the `transfer_to_agent` tool and transfer
instructions into the LLM request when the current agent has transfer targets.
  - [ADK.Flow.Processors.Basic](ADK.Flow.Processors.Basic.md): Copies the agent's generate_content_config into the LLM request config.

  - [ADK.Flow.Processors.Contents](ADK.Flow.Processors.Contents.md): Builds conversation history from session events and appends to the request.
  - [ADK.Flow.Processors.Instructions](ADK.Flow.Processors.Instructions.md): Injects system instructions into the LLM request.
  - [ADK.Flow.Processors.ToolProcessor](ADK.Flow.Processors.ToolProcessor.md): Populates the request's tools map and adds function declarations to config.

- Services
  - [ADK.Artifact.InMemory](ADK.Artifact.InMemory.md): In-memory artifact service backed by an ETS table.
  - [ADK.Artifact.Service](ADK.Artifact.Service.md): Behaviour for artifact storage backends.
  - [ADK.Memory.Entry](ADK.Memory.Entry.md): A single memory entry extracted from a session event.
  - [ADK.Memory.InMemory](ADK.Memory.InMemory.md): In-memory memory service backed by an ETS table.
  - [ADK.Memory.Service](ADK.Memory.Service.md): Behaviour for memory storage backends.
  - [ADK.Telemetry](ADK.Telemetry.md): Dual telemetry instrumentation for the ADK.

- Plugins
  - [ADK.Plugin](ADK.Plugin.md): Plugin struct for hooking into the agent lifecycle.
  - [ADK.Plugin.Manager](ADK.Plugin.Manager.md): Chains plugin callbacks. First non-nil return wins (short-circuit).

