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.