| name | adk-deployment-specialist |
| description | Deploy and orchestrate Vertex AI ADK agents using A2A protocol. Manages AgentCard discovery, task submission, Code Execution Sandbox, and Memory Bank. Use when asked to "deploy ADK agent" or "orchestrate agents". |
| allowed-tools | Read, Write, Edit, Grep, Glob, Bash |
| license | MIT |
What This Skill Does
Expert in building and deploying production multi-agent systems using Google's Agent Development Kit (ADK). Handles agent orchestration (Sequential, Parallel, Loop), A2A protocol communication, Code Execution Sandbox for GCP operations, Memory Bank for stateful conversations, and deployment to Vertex AI Agent Engine.
Core Capabilities
- ADK Agent Creation: Build agents in Python (stable), Java (0.3.0), or Go (Nov 2025)
- Multi-Agent Orchestration: Sequential/Parallel/Loop agent patterns
- A2A Protocol Management: Agent-to-Agent communication and task delegation
- Code Execution: Secure sandbox for running gcloud commands and Python/Go code
- Memory Bank: Persistent conversation memory across sessions (14-day TTL)
- Production Deployment: One-command deployment with
adk deploy
- Observability: Agent Engine UI dashboards, token tracking, error monitoring
When This Skill Activates
Trigger Phrases
- "Deploy ADK agent to Agent Engine"
- "Create multi-agent system with ADK"
- "Implement A2A protocol"
- "Use Code Execution Sandbox"
- "Set up Memory Bank for agent"
- "Orchestrate multiple agents"
- "Build ADK agent in Python/Java/Go"
- "Deploy to Vertex AI Agent Engine"
Use Case Patterns
- Building GCP deployment automation agents
- Creating RAG agents with LangChain integration
- Orchestrating Genkit flows with ADK supervisors
- Implementing stateful conversational agents
- Deploying secure code execution environments
How It Works
Phase 1: Agent Architecture Design
User Request → Analyze:
- Single agent vs multi-agent system?
- Tools needed (Code Exec, Memory Bank, custom tools)?
- Orchestration pattern (Sequential, Parallel, Loop)?
- Integration with LangChain/Genkit?
- Deployment target (local, Agent Engine, Cloud Run)?
Phase 2: ADK Agent Implementation
Simple Agent (Python):
from google import adk
agent = adk.Agent(
model="gemini-2.5-flash",
tools=[
adk.tools.CodeExecution(),
adk.tools.MemoryBank(),
],
system_instruction="""
You are a GCP deployment specialist.
Help users deploy resources securely using gcloud commands.
"""
)
response = agent.run("Deploy a GKE cluster named prod in us-central1")
print(response)
Multi-Agent Orchestrator (Python):
from google import adk
validator_agent = adk.Agent(
model="gemini-2.5-flash",
system_instruction="Validate GCP configurations"
)
deployer_agent = adk.Agent(
model="gemini-2.5-flash",
tools=[adk.tools.CodeExecution()],
system_instruction="Deploy validated GCP resources"
)
monitor_agent = adk.Agent(
model="gemini-2.5-flash",
system_instruction="Monitor deployment status"
)
orchestrator = adk.SequentialAgent(
agents=[validator_agent, deployer_agent, monitor_agent],
system_instruction="Coordinate validation → deployment → monitoring"
)
result = orchestrator.run("Deploy a production GKE cluster")
Phase 3: Code Execution Integration
The Code Execution Sandbox provides:
- Security: Isolated environment, no access to your system
- State Persistence: 14-day memory, configurable TTL
- Stateful Sessions: Builds on previous executions
agent = adk.Agent(
model="gemini-2.5-flash",
tools=[adk.tools.CodeExecution()],
system_instruction="""
Execute gcloud commands in the secure sandbox.
Remember previous operations in this session.
"""
)
agent.run("Create GKE cluster named dev-cluster with 3 nodes")
agent.run("Deploy my-app:latest to that cluster")
Phase 4: Memory Bank Integration
Persistent conversation memory across sessions:
agent = adk.Agent(
model="gemini-2.5-flash",
tools=[adk.tools.MemoryBank()],
system_instruction="Remember user preferences and project context"
)
agent.run("I prefer deploying to us-central1 region", session_id="user-123")
agent.run("Deploy a Cloud Run service", session_id="user-123")
Phase 5: A2A Protocol Deployment
Deploy agent to Agent Engine with A2A endpoint:
pip install google-adk
adk deploy \
--agent-file agent.py \
--project-id my-project \
--region us-central1 \
--service-name gcp-deployer-agent
Agent Engine creates:
- A2A Endpoint:
https://gcp-deployer-agent-{hash}.run.app
- AgentCard:
/.well-known/agent-card metadata
- Task API:
/v1/tasks:send for task submission
- Status API:
/v1/tasks/{task_id} for polling
Phase 6: Calling from Claude
Once deployed, Claude can invoke via A2A protocol:
import requests
def invoke_adk_agent(message, session_id=None):
"""
Call deployed ADK agent via A2A protocol.
"""
response = requests.post(
"https://gcp-deployer-agent-xyz.run.app/v1/tasks:send",
json={
"message": message,
"session_id": session_id or "claude-session-123",
"config": {
"enable_code_execution": True,
"enable_memory_bank": True,
}
},
headers={"Authorization": f"Bearer {get_token()}"}
)
return response.json()
result = invoke_adk_agent("Deploy GKE cluster named prod-api")
Workflow Examples
Example 1: GCP Deployment Agent
User: "Create an ADK agent that deploys GCP resources"
Implementation:
from google import adk
deployment_agent = adk.Agent(
model="gemini-2.5-flash",
tools=[
adk.tools.CodeExecution(),
adk.tools.MemoryBank(),
],
system_instruction="""
You are a GCP deployment specialist.
CAPABILITIES:
- Deploy GKE clusters
- Deploy Cloud Run services
- Deploy Vertex AI Pipelines
- Manage IAM permissions
- Monitor deployments
SECURITY:
- Validate all configurations before deployment
- Use least-privilege IAM
- Log all operations
- Never expose credentials
"""
)
Example 2: Multi-Agent RAG System
User: "Build a RAG system with ADK orchestrating a LangChain retriever"
Implementation:
from google import adk
from langchain.retrievers import VertexAISearchRetriever
class RAGAgent(adk.Agent):
def __init__(self):
self.retriever = VertexAISearchRetriever(...)
super().__init__(model="gemini-2.5-flash")
def retrieve_docs(self, query):
return self.retriever.get_relevant_documents(query)
answer_agent = adk.Agent(
model="gemini-2.5-pro",
system_instruction="Generate comprehensive answers from retrieved docs"
)
orchestrator = adk.SequentialAgent(
agents=[RAGAgent(), answer_agent],
system_instruction="First retrieve docs, then generate answer"
)
Example 3: Async Deployment with Status Polling
User: "Deploy a GKE cluster and monitor progress"
Implementation:
task_response = invoke_adk_agent(
"Deploy GKE cluster named prod-api with 5 nodes in us-central1"
)
task_id = task_response["task_id"]
print(f"✅ Task submitted: {task_id}")
import time
while True:
status = requests.get(
f"https://gcp-deployer-agent-xyz.run.app/v1/tasks/{task_id}",
headers={"Authorization": f"Bearer {get_token()}"}
).json()
if status["status"] == "SUCCESS":
print(f"✅ Cluster deployed!")
break
elif status["status"] == "FAILURE":
print(f"❌ Deployment failed: {status['error']}")
break
else:
print(f"⏳ Status: {status['status']} ({status.get('progress', 0)*100}%)")
time.sleep(10)
Production Best Practices
- Agent Identities: ADK agents get Native Agent Identities (IAM principals)
- Least Privilege: Grant minimum required permissions
- VPC Service Controls: Enable for enterprise security
- Model Armor: Protects against prompt injection
- Session Management: Use consistent session_ids for Memory Bank
- Error Handling: Implement retries with exponential backoff
- Observability: Monitor via Agent Engine UI dashboard
Tool Permissions
- Read: Analyze existing agent code
- Write: Create new agent files
- Edit: Modify agent configurations
- Grep: Find integration points
- Glob: Locate related files
- Bash: Install ADK, deploy agents, run tests
Integration Patterns
ADK + Genkit
genkit_flow_agent = create_genkit_flow()
orchestrator = adk.SequentialAgent(
agents=[validator, genkit_flow_agent, monitor]
)
ADK + LangChain
langchain_rag = create_langchain_retriever()
orchestrator = adk.ParallelAgent(
agents=[langchain_rag, fact_checker, answer_generator]
)
Deployment Commands
pip install google-adk
go get google.golang.org/adk
adk deploy \
--agent-file my_agent.py \
--project-id my-project \
--region us-central1 \
--service-name my-agent
gcloud run deploy my-agent \
--source . \
--region us-central1
adk run --agent-file my_agent.py
Version History
- 1.0.0 (2025): ADK Preview with Python/Java/Go support, Agent Engine GA, Code Execution Sandbox, Memory Bank
References