Skills in ADK and A2A v1.0

April 05, 2026
Skills in ADK and A2A v1.0

Starting with the ADK Python SDK v1.25.0, ADK agents support extending their capabilities with the Agent Skills specification. ADK makes it quite easy to define and use skills in your agents.

Here is an example snippet of how to add skills to your ADK agent. Simply pass an instance of SkillToolset as a tool to your ADK agent.

import pathlib from google.adk.skills import load_skill_from_dir from google.adk.tools import skill_toolset weather_skill = load_skill_from_dir( pathlib.Path(__file__).parent / "skills" / "weather_skill" ) my_skill_toolset = skill_toolset.SkillToolset( skills=[weather_skill] )

When invoked, the agent will simply load the appropriate skill and use it to perform the task. More details about using skills in ADK can be found here.

Agent2Agent (A2A) v1.0

Agent2Agent (A2A) is an open protocol, part of the Linux Foundation, for building multi-agent systems and enabling communication from agents or applications to agents. Recently, A2A v1.0 was announced with several enhancements, supporting progressive migration from the v0.3 version. The A2A Python SDK has also released v1.0.0a0 that supports the new specification.

I was able to create a quick example of an ADK Agent leveraging skills and exposing an A2A v1.0 interface.

Example ADK Agent with Skills

Below is the agent definition:

root_agent = LlmAgent( name='skills_agent', model='gemini-3-flash-preview', description='Currency Conversion agent', instruction=( "You are an agent that helps with user's currency conversions. Use available tools to help with the conversion." 'For currency conversions, do not assume target currencies. If user did not specify the target currency, ask for it.' ), tools=[my_skill_toolset, execute_http_request], # skill toolset, http request tool output_schema=AgentResponse, # output schema )

In this example, I added a skill to allow currency conversions using the Frankfurter API and a tool to allow the agent to send HTTP requests. Given an input prompt, the agent loads the skill, learns the API to use, and then uses the execute_http_request tool to send the outbound request. You can find a few example requests documented here to consume the agent.

Notably, the A2A Python SDK also offers A2A v0.3 compatibility via a simple flag, ensuring the agent can support both v0.3 and v1.0 clients.

a2a_app = A2AStarletteApplication( agent_card=agent_card, http_handler=request_handler, enable_v0_3_compat=True, # enable 0.3 compatibility )