You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[java/google-adk] Support replay-safe native ADK tracing #258
Support ADK's native agent, model, and tool spans when an agent runs inside a Temporal Workflow. Temporal Workflow/Activity interceptor spans alone do not meet this requirement.
ADK Java 1.12.0's Tracing obtains its tracer from GlobalOpenTelemetry and creates native invoke_agent, call_llm, and execute_tool spans. With io.temporal:google-adk:0.1.0, agent orchestration and deterministic tools execute in Workflow code. The plugin has no replay suppression for those native spans, so installing an OpenTelemetry SDK can export them again during replay; this is a documented limitation.
Provide a supported way to configure native ADK tracing, suppress replay exports, and preserve trace context across model/tool Activity boundaries. Account for ADK's global tracer and context propagation across Workflow and RxJava threads without filtering unrelated application spans.
Acceptance criteria:
Run a real ADK LlmAgent with a scripted model and both deterministic and Activity tools, exporting to an in-memory/local sink without provider credentials.
Assert native ADK agent/model/tool operation names, useful ADK attributes, and their parent/child relationships. Temporal operation spans are optional and do not substitute for these assertions.
Force replay through cache eviction, Worker restart, and fresh-Worker history replay. Export no duplicate native spans, preserve useful parentage when execution resumes, and avoid telemetry I/O during replay.
Cover failed/retried model and tool calls, agent completion, and cancellation. Verify tracing configuration does not change Workflow commands or break replay of existing histories.
Document exporter setup and add live/offline native-ADK observability samples once the published plugin supports this behavior.
Activity