## ADK Features

!!! note:
This content is autogenerated by Gemini, based on our documentation.  It is a best effort to generate a feature matrix, but may not be 100% accurate as features can outpace documentation, or Gemini might inaccurately generate content.

## Feature Support Matrix

The following matrix shows which ADK features are currently supported in each language runtime. Support is determined by the availability of code samples in the official documentation.

| Feature Category | Feature | Python (`adk-python`) | Java (`adk-java`) |
| :--- | :--- | :--- | :--- |
| **Core Agent Architecture** | **LLM Agents** | [Supported](https://adk.dev/agents/llm-agents/#defining-the-agents-identity-and-purpose) | [Supported](https://adk.dev/agents/llm-agents/#defining-the-agents-identity-and-purpose) |
| | **Multi-Agent Systems** | [Supported](https://adk.dev/agents/multi-agents/#agent-hierarchy-parent-agent-sub-agents) | [Supported](https://adk.dev/agents/multi-agents/#agent-hierarchy-parent-agent-sub-agents) |
| | **Workflow: Sequential Agents** | [Supported](https://adk.dev/agents/workflow-agents/sequential-agents/#full-example-code-development-pipeline) | [Supported](https://adk.dev/agents/workflow-agents/sequential-agents/#full-example-code-development-pipeline) |
| | **Workflow: Loop Agents** | [Supported](https://adk.dev/agents/workflow-agents/loop-agents/#full-example-iterative-document-improvement) | [Supported](https://adk.dev/agents/workflow-agents/loop-agents/#full-example-iterative-document-improvement) |
| | **Workflow: Parallel Agents** | [Supported](https://adk.dev/agents/workflow-agents/parallel-agents/#full-example-parallel-web-research) | [Supported](https://adk.dev/agents/workflow-agents/parallel-agents/#full-example-parallel-web-research) |
| | **Custom Agents** | [Supported](https://adk.dev/agents/custom-agents/#part-1-simplified-custom-agent-initialization) | [Supported](https://adk.dev/agents/custom-agents/#part-1-simplified-custom-agent-initialization) |
| | **Agent Config (YAML)** | [Supported](https://adk.dev/agents/config/#build-an-agent) | [No](https://adk.dev/agents/config/#known-limitations) |
| **Tooling & Integrations** | **Function Tools** | [Supported](https://adk.dev/tools/function-tools/#example) | [Supported](https://adk.dev/tools/function-tools/#example) |
| | **Long-Running Function Tools** | [Supported](https://adk.dev/tools/function-tools/#creating-the-tool) | [Supported](https://adk.dev/tools/function-tools/#creating-the-tool) |
| | **Agents-as-a-Tool** | [Supported](https://adk.dev/tools/function-tools/#example) | [Supported](https://adk.dev/tools/function-tools/#example) |
| | **Built-in: Google Search** | [Supported](https://adk.dev/tools/built-in-tools/#google-search) | [Supported](https://adk.dev/tools/built-in-tools/#google-search) |
| | **Built-in: Code Execution** | [Supported](https://adk.dev/tools/built-in-tools/#code-execution) | [Supported](https://adk.dev/tools/built-in-tools/#code-execution) |
| | **Built-in: GKE Code Executor** | [Supported](https://adk.dev/tools/built-in-tools/#gke-code-executor) | Not Supported |
| | **Built-in: Knowledge Engine** | [Supported](https://adk.dev/integrations/knowledge-engine/) | Not Supported |
| | **Built-in: Agent Search** | [Supported](https://adk.dev/tools/built-in-tools/#agent-search) | Not Supported |
| | **Built-in: BigQuery, Spanner, Bigtable** | [Supported](https://adk.dev/tools/built-in-tools/#bigquery) | Not Supported |
| | **Google Cloud Tools (API Hub, etc.)** | [Supported](https://adk.dev/tools/google-cloud-tools/#apigee-api-hub-tools) | Not Supported |
| | **MCP Tools** | [Supported](https://adk.dev/tools/mcp-tools/#example-1-file-system-mcp-server) | [Supported](https://adk.dev/tools/mcp-tools/#example-1-file-system-mcp-server) |
| | **Tool Confirmation** | [Supported](https://adk.dev/tools/confirmation/#boolean-confirmation) | Not Supported |
| | **Tool Authentication** | [Supported](https://adk.dev/tools/authentication/#1-configuring-tools-with-authentication) | Not Supported |
| **Runtime & Context** | **Session & State Management** | [Supported](https://adk.dev/sessions/session/#example-examining-session-properties) | [Supported](https://adk.dev/sessions/session/#example-examining-session-properties) |
| | **Memory** | [Supported](https://adk.dev/sessions/memory/#example-adding-and-searching-memory) | Not Supported |
| | **Artifacts** | [Supported](https://adk.dev/artifacts/#what-are-artifacts) | [Supported](https://adk.dev/artifacts/#what-are-artifacts) |
| | **Callbacks** | [Supported](https://adk.dev/callbacks/types-of-callbacks/#before-agent-callback) | [Supported](https://adk.dev/callbacks/types-of-callbacks/#before-agent-callback) |
| | **Plugins** | [Supported](https://adk.dev/plugins/#define-and-register-plugins) | Not Supported |
| **Advanced Capabilities** | **Streaming (Gemini Live API Toolkit)** | [Supported](https://adk.dev/get-started/streaming/quickstart-streaming/#2-project-structure) | [Supported](https://adk.dev/get-started/streaming/quickstart-streaming-java/#creating-an-agent) |
| | **Streaming Tools** | [Supported](https://adk.dev/streaming/streaming-tools/) | Not Supported |
| | **Multi-Model: LiteLLM** | [Supported](https://adk.dev/agents/models/#using-cloud-proprietary-models-via-litellm) | Not Supported |
| | **Multi-Model: Direct Anthropic** | Not Supported | [Supported](https://adk.dev/agents/models/#using-anthropic-models) |
| **Development Lifecycle** | **Evaluation** | [Supported](https://adk.dev/evaluate/#how-evaluation-works-with-the-adk) | Not Supported |
| | **Observability (AgentOps, Arize, etc.)** | [Supported](https://adk.dev/observability/agentops/) | Not Supported |
| | **Deployment: Agent Runtime** | [Supported](https://adk.dev/deploy/agent-runtime/#standard-deployment) | [No](https://adk.dev/deploy/agent-runtime/) |
| | **Deployment: Cloud Run** | [Supported](https://adk.dev/deploy/cloud-run/#deployment-commands) | [Supported](https://adk.dev/deploy/cloud-run/#deployment-commands) |
| | **Deployment: GKE** | [Supported](https://adk.dev/deploy/gke/#option-1-manual-deployment-using-gcloud-and-kubectl) | Not Supported |
| | **Agent2Agent (A2A) Protocol** | [Supported](https://adk.dev/a2a/quickstart-consuming/#getting-the-sample-code) | Not Supported |

## Details

Based on the documentation, ADK delivers a comprehensive set of features for building, evaluating, and deploying sophisticated AI agents. Here is a summary of the key capabilities:

### Core Agent Architecture
*   **LLM Agents**: The primary "thinking" unit of ADK, powered by a Large Language Model for reasoning, decision-making, and tool use.
*   **Multi-Agent Systems**: Build complex applications by composing multiple, specialized agents in a hierarchy, enabling delegation and collaboration.
*   **Workflow Agents**: Orchestrate the execution flow of other agents using deterministic patterns:
    *   **Sequential Agents**: Run sub-agents one after another.
    *   **Parallel Agents**: Run sub-agents concurrently.
    *   **Loop Agents**: Run sub-agents in an iterative loop.
*   **Custom Agents**: Implement unique, non-LLM based orchestration logic by extending the `BaseAgent` class for ultimate flexibility.
*   **Agent Config (YAML)**: Build agents declaratively using YAML configuration files, minimizing the need for boilerplate code.

### Tooling and Integrations
*   **Function Tools**: Extend agent capabilities by creating custom tools from standard functions.
*   **Long-Running Function Tools**: Handle asynchronous tasks that take significant time to complete without blocking the agent.
*   **Agents-as-a-Tool**: Use an entire agent as a callable tool within another agent.
*   **Built-in Tools**: Leverage pre-built capabilities like Google Search, Agent Search, and secure code execution.
*   **Google Cloud Tools**: Seamlessly connect to Google Cloud services like API Hub, Application Integration, and databases via MCP Toolbox.
*   **MCP (Model Context Protocol) Tools**: Use and expose tools via the open MCP standard.
*   **Tool Confirmation**: Implement human-in-the-loop workflows by requiring user confirmation before a tool executes.
*   **Tool Authentication**: Securely manage credentials for tools that access protected APIs.

### Runtime and Context Management
*   **Session & State**: Manage conversational context with a robust session service that tracks history (`Events`) and maintains a working memory (`State`) for each interaction.
*   **Memory**: Enable agents to recall information across multiple sessions using a long-term, searchable knowledge store.
*   **Artifacts**: Allow agents to save, load, and manage versioned files and binary data (e.g., images, PDFs) associated with a session or user.
*   **Callbacks & Plugins**: Hook into the agent's execution lifecycle to implement logging, guardrails, caching, and other cross-cutting concerns.

### Advanced Capabilities
*   **Streaming (Gemini Live API Toolkit)**: Build real-time, interactive experiences with native support for bidirectional streaming of text, audio, and video.
*   **Streaming Tools**: Create tools that can stream intermediate results back to the agent for real-time monitoring and reaction.
*   **Multi-Model Support**: Flexibly use different LLMs (Gemini, GPT, Claude, etc.) within your agents, powered by integrations like LiteLLM.

### Development Lifecycle
*   **Evaluation**: Systematically assess agent performance by evaluating both the final response quality and the step-by-step execution trajectory.
*   **Observability & Logging**: Gain deep insights into agent behavior with detailed logging and integrations with observability platforms like MLflow, AgentOps, Arize AX, Cloud Trace, and Weave.
*   **Deployment**: Deploy your agents to a variety of environments, including serverless (Cloud Run), Kubernetes (GKE), and the fully managed Agent Runtime.
*   **Agent2Agent (A2A) Protocol**: Build distributed, multi-agent systems where agents running as separate services can communicate and collaborate using the open A2A standard.
