Google ADK

Google Agent Development Kit (ADK) is a Python framework for building production-grade agents with tool use, planning, and orchestration on Google Cloud. Respan gives you full observability over every agent run, tool call, and LLM generation — and gateway routing through the OpenAI-compatible Respan endpoint.

Create an account at platform.respan.ai and grab an API key. For gateway, also add credits or a provider key.

Run npx @respan/cli setup to set up with your coding agent.

Setup

1

Install packages

$pip install respan-ai openinference-instrumentation-google-adk google-adk
2

Set environment variables

$export GOOGLE_API_KEY="YOUR_GOOGLE_API_KEY"
$export RESPAN_API_KEY="YOUR_RESPAN_API_KEY"

GOOGLE_API_KEY is used for LLM requests. RESPAN_API_KEY is used to export traces to Respan.

3

Initialize and run

1from google.adk.agents import Agent
2from google.adk.runners import Runner
3from google.adk.sessions import InMemorySessionService
4from respan import Respan
5from openinference.instrumentation.google_adk import GoogleADKInstrumentor
6
7respan = Respan(instrumentations=[GoogleADKInstrumentor()])
8
9agent = Agent(
10 name="assistant",
11 model="gemini-2.0-flash",
12 instruction="You are a helpful assistant.",
13)
14
15session_service = InMemorySessionService()
16runner = Runner(agent=agent, app_name="demo", session_service=session_service)
17
18session = session_service.create_session(app_name="demo", user_id="user_1")
19for event in runner.run(user_id="user_1", session_id=session.id, new_message="Hello"):
20 print(event)
21respan.flush()
4

View your trace

Open the Traces page to see your Google ADK workflow with agent runs, tool executions, and LLM calls.

Configuration

ParameterTypeDefaultDescription
api_keystr | NoneNoneFalls back to RESPAN_API_KEY env var.
base_urlstr | NoneNoneFalls back to RESPAN_BASE_URL env var.
instrumentationslist[]Plugin instrumentations to activate (e.g. GoogleADKInstrumentor()).
customer_identifierstr | NoneNoneDefault customer identifier for all spans.
metadatadict | NoneNoneDefault metadata attached to all spans.
environmentstr | NoneNoneEnvironment tag (e.g. "production").

Attributes

In Respan()

Set defaults at initialization — these apply to all spans.

1from respan import Respan
2from openinference.instrumentation.google_adk import GoogleADKInstrumentor
3
4respan = Respan(
5 instrumentations=[GoogleADKInstrumentor()],
6 customer_identifier="user_123",
7 metadata={"service": "adk-api", "version": "1.0.0"},
8)

With propagate_attributes

Override per-request using a context scope.

1from respan import Respan, propagate_attributes
2from openinference.instrumentation.google_adk import GoogleADKInstrumentor
3
4respan = Respan(instrumentations=[GoogleADKInstrumentor()])
5
6def handle_request(user_id: str, message: str):
7 with propagate_attributes(
8 customer_identifier=user_id,
9 thread_identifier="conv_abc_123",
10 metadata={"plan": "pro"},
11 ):
12 for event in runner.run(user_id=user_id, session_id=session.id, new_message=message):
13 print(event)
AttributeTypeDescription
customer_identifierstrIdentifies the end user in Respan analytics.
thread_identifierstrGroups related messages into a conversation.
metadatadictCustom key-value pairs. Merged with default metadata.