Skip to main content
The permitech-adk package provides native observability for Google ADK agents. It automatically traces agent runs, LLM calls, and tool executions with minimal setup.
This is the native integration for Google ADK. If you prefer using OpenTelemetry, see the OpenTelemetry-based integration.

Installation

View the package on PyPI for version history and additional details.
Requirements: Python 3.10+, a Permitech API key, and a Google AI API key

Quick start

The simplest way to add Permitech observability to your Google ADK application is using the PermitechADKPlugin. This plugin attaches to the ADK Runner and automatically captures all agent, LLM, and tool events.
Once the plugin is configured, all agent runs are automatically logged to Permitech, including:
  • Agent execution spans
  • LLM calls with input/output and token usage
  • Tool executions with arguments and results
  • Error handling and status codes

Configuration

The plugin can be configured via constructor parameters or environment variables:

Features

Session tracking

All traces with the same ADK session_id are automatically grouped into a Permitech session. This enables conversation-level tracking across multiple interactions:

Custom metadata

Attach custom metadata to traces using ADK’s native RunConfig.custom_metadata. Metadata is propagated to all spans (agent, LLM, tool) within the invocation:

Callback mode

For granular control over which callbacks to use, you can attach them directly to your agent instead of using the plugin. This is useful when you need to customize behavior for specific agents:

Retriever spans

By default, all FunctionTool calls are logged as tool spans. To log a retriever function as a retriever span (enabling RAG quality metrics in Permitech), decorate it with @permitech_retriever:
This enables RAG-specific metrics like chunk attribution and context relevance to be calculated for your retrieval operations.

Custom ingestion hook

For advanced use cases, you can intercept traces for custom processing before forwarding to Permitech. This is useful for:
  • Custom session management
  • Local trace inspection and debugging
  • Filtering or enriching trace data

Plugin vs Callback mode

Recommendation: Use PermitechADKPlugin for most applications. Use PermitechADKCallback only when you need fine-grained control over individual agent callbacks.

Next steps

Permitech logger

Log with full control over sessions, traces, and spans using the Permitech logger.

OpenTelemetry integration

Use OpenTelemetry for Google ADK observability.

RAG metrics

Learn about RAG quality metrics for retriever spans.

Sessions

Learn how sessions group related traces together.