Integrate with Google Agent Development Kit (ADK)
Note
Problem-solving guide for Google Agent Development Kit (ADK) integration
This guide helps you solve specific problems when integrating HoneyHive with Google Agent Development Kit (ADK), with support for multiple instrumentor options.
This guide covers Google Agent Development Kit (ADK) integration with HoneyHive’s BYOI architecture, supporting both OpenInference and Traceloop instrumentors.
Compatibility
Problem: I need to know if my Python version and Google Agent Development Kit (ADK) SDK version are compatible with HoneyHive.
Solution: Check the compatibility information below before installation.
Python Version Support
Support Level |
Python Versions |
|---|---|
Fully Supported |
3.11, 3.12, 3.13 |
Not Supported |
3.10 and below |
Provider SDK Requirements
Minimum: google-adk >= 1.0.0
Recommended: google-adk >= 1.2.0
Tested Versions: 1.2.0, 1.3.0
Instrumentor Compatibility
Instrumentor |
Status |
Notes |
|---|---|---|
OpenInference |
Fully Supported |
Multi-agent workflows and tool calling fully traced |
Traceloop |
Not Supported |
Traceloop instrumentor not available for Google ADK - use OpenInference |
Known Limitations
Traceloop: Not available for Google ADK, OpenInference only
Multi-Agent Workflows: Requires nested span management for proper trace hierarchy
Tool Calling: Fully supported with automatic tool execution tracing
Streaming Responses: Partial support, manual span finalization needed
Note
For the complete compatibility matrix across all providers, see Multi-Provider Integration.
Choose Your Instrumentor
Problem: I need to choose between OpenInference and Traceloop for Google Agent Development Kit (ADK) integration.
Solution: Choose the instrumentor that best fits your needs:
OpenInference: Open-source, lightweight, great for getting started
Traceloop: Traceloop does not currently provide a Google ADK instrumentor. Only OpenInference instrumentation is available for this provider.
Best for: Open-source projects, simple tracing needs, getting started quickly
# Recommended: Install with Google Agent Development Kit (ADK) integration
pip install honeyhive[openinference-google-adk]
# Alternative: Manual installation
pip install honeyhive openinference-instrumentation-google-adk google-adk>=1.0.0
from honeyhive import HoneyHiveTracer
from openinference.instrumentation.google_adk import GoogleADKInstrumentor
import google.adk
import os
# Environment variables (recommended for production)
# .env file:
# HH_API_KEY=your-honeyhive-key
# GOOGLE_API_KEY=your-google-adk-key
# Step 1: Initialize HoneyHive tracer first (without instrumentors)
tracer = HoneyHiveTracer.init(
project="your-project" # Or set HH_PROJECT environment variable
) # Uses HH_API_KEY from environment
# Step 2: Initialize instrumentor separately with tracer_provider
instrumentor = GoogleADKInstrumentor()
instrumentor.instrument(tracer_provider=tracer.provider)
# Basic usage with error handling
try:
agent = adk.Agent(
name="document_processor",
model="gemini-pro"
)
result = agent.run(
task="Analyze this document",
input_data={"document": document_content}
)
# Automatically traced! ✨
except google.adk.ADKError as e:
print(f"Google Agent Development Kit (ADK) API error: {e}")
except Exception as e:
print(f"Unexpected error: {e}")
from honeyhive import HoneyHiveTracer, trace, enrich_span
from honeyhive.models import EventType
from openinference.instrumentation.google_adk import GoogleADKInstrumentor
import google.adk
# Initialize with custom configuration
# Step 1: Initialize HoneyHive tracer first (without instrumentors)
tracer = HoneyHiveTracer.init(
api_key="your-honeyhive-key", # Or set HH_API_KEY environment variable
project="your-project", # Or set HH_PROJECT environment variable
source="production" # Or set HH_SOURCE environment variable
)
# Step 2: Initialize instrumentor separately with tracer_provider
instrumentor = GoogleADKInstrumentor()
instrumentor.instrument(tracer_provider=tracer.provider)
@trace(tracer=tracer, event_type=EventType.chain)
def multi_agent_workflow(documents: List[str]) -> dict:
"""Advanced example with business context and multiple Google Agent Development Kit (ADK) calls."""
import google.adk as adk
# Configure Google ADK
adk.configure(api_key=os.getenv("GOOGLE_API_KEY"))
# Add business context to the trace
enrich_span({
"business.input_type": type(documents).__name__,
"business.use_case": "multi_agent_analysis",
"google-adk.strategy": "parallel_processing",
"instrumentor.type": "openinference"
})
try:
# Create specialized agents
analyzer = adk.Agent(
name="document_analyzer",
model="gemini-pro",
tools=["text_analysis", "summarization"]
)
reviewer = adk.Agent(
name="quality_reviewer",
model="gemini-ultra",
tools=["quality_check", "fact_verification"]
)
results = []
for doc in documents:
# Agent 1: Analyze document
analysis = analyzer.run(
task="Analyze document structure and content",
input_data={"document": doc}
)
# Agent 2: Review analysis quality
review = reviewer.run(
task="Review analysis for accuracy and completeness",
input_data={"analysis": analysis.output}
)
results.append({
"document": doc,
"analysis": analysis.output,
"review": review.output
})
# Add result metadata
enrich_span({
"business.successful": True,
"google-adk.models_used": ["gemini-pro", "gemini-ultra"],
"business.result_confidence": "high"
})
return {
"processed_documents": len(results),
"analysis_results": results,
"workflow_completed": True
}
# Add result metadata
enrich_span({
"business.successful": True,
"google-adk.models_used": ["gemini-pro", "gemini-ultra"],
"business.result_confidence": "high"
})
return {"processed_documents": len(results), "analysis_results": results, "workflow_completed": True}
except google.adk.ADKError as e:
enrich_span({
"error.type": "api_error",
"error.message": str(e),
"instrumentor.source": "openinference"
})
raise
Common OpenInference Issues:
Missing Traces
# Use correct initialization pattern # Step 1: Initialize HoneyHive tracer first (without instrumentors) tracer = HoneyHiveTracer.init( project="your-project" # Or set HH_PROJECT environment variable ) # Step 2: Initialize instrumentor separately with tracer_provider instrumentor = GoogleADKInstrumentor() instrumentor.instrument(tracer_provider=tracer.provider)
Performance for High Volume
# OpenInference uses efficient span processors automatically # No additional configuration needed
Multiple Instrumentors
# You can combine OpenInference with other instrumentors from openinference.instrumentation.google_adk import GoogleADKInstrumentor from openinference.instrumentation.openai import OpenAIInstrumentor # Step 1: Initialize HoneyHive tracer first (without instrumentors) tracer = HoneyHiveTracer.init( project="your-project" # Or set HH_PROJECT environment variable ) # Step 2: Initialize instrumentors separately with tracer_provider # REPLACE_WITH_INSTRUMENTOR_SETUP GoogleADKInstrumentor(), OpenAIInstrumentor() ] )
Environment Configuration
# HoneyHive configuration export HH_API_KEY="your-honeyhive-api-key" export HH_SOURCE="production" # Google Agent Development Kit (ADK) configuration export GOOGLE_API_KEY="your-google-adk-api-key"