adk-python

adk-python

Facts

Openness
Open source
Licence
Apache-2.0
Language
Python
Pinned version
9f7965e (2026-10-02)
Topics checked
30 of 33
Kind of agent
General framework

What it does notably well

  • Compaction

    adk-python's compaction keeps tool calls and results together with two named helpers in apps/compaction.py: _longest_self_contained_prefix trims the window to a point where no…

  • Concurrency

    adk-python starts each parallel tool call as an asyncio task inside a copy of its prepare phase's contextvars snapshot (so callback-set values reach the tool but not sibling…

  • Config and routing

    adk-python's models package is provider-portable behind BaseLlm: LLMRegistry maps regexes to lazily imported classes (Gemini, Gemma, ApigeeLlm, Claude, OpenAILlm, OCIGenAILlm…

  • Message model

    adk-python pairs function calls and results by ids it mints itself as the prefix adk- plus a uuid4 string (not deterministic unless a test replaces the id provider), filled in by…

    adk-python mints function-call ids on the client as adk-<uuid4>, strips them from the request contents by default, and keeps them when the agent's model is Anthropic, LiteLLM or…

  • Errors and failover

    adk-python provides on_model_error and on_tool_error callbacks that can return a replacement response, a ReflectAndRetryToolPlugin (max_retries 3 by default, opt-in as a plugin)…

See how adk-python does on each topic

The topic-by-topic verdicts, the code lines and a side-by-side comparison are in the app. Sign in with Google; new accounts are approved by hand.

Independent analysis, not affiliated with adk-python.