About adk-debug
adk-debug is a debugging skill for developers working with ADK agents. It guides reproduction, log and trace inspection, event-flow analysis, and choosing between headless `adk run` and the `adk web` interface.
Key features
- 01Reproduce agents with `adk run --jsonl`
- 02Locate logs and inspect traces
- 03Diagnose common failure patterns
- 04Analyze event routing fields
- 05Choose unit tests or integrated samples
Use cases
- 01Reproduce an agent issue from a query
- 02Check the LLM request behind unexpected behavior
- 03Investigate incorrect event routing
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ google/ adk-python --skill adk-debugAfter installing, type/adk-debugin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/cli-run.mdevent-flow.mdfailure-modes.mdlogs-and-traces.mdweb-api.mdDetails
From the project READMEDebugging ADK agents
Two entry points. Default to adk run: one process, no server, and --jsonl
output that pipes straight into grep or python3. Switch to adk web when
you need the browser UI, a persisted session you can click through, or the
trace endpoints that expose the exact LLM request.
First moves
- Reproduce headlessly:
adk run --jsonl {agent_dir} "{query}". Without--jsonl,adk runprints only text parts — tool calls and tool errors are invisible. - Read the log file.
adk runwrites to/tmp/agents_log/agent.latest.logand nothing to the terminal;adk webdoes the opposite. See logs-and-traces.md. - Match the symptom in failure-modes.md before reading source — most reports are one of a handful of known shapes.
- If the text is fine but the routing is not, dump the events and read
author,branch,nodeInfo.path, andactions— event-flow.md. - If the model itself misbehaved, read what it actually received from the
call_llmspan rather than guessing from the agent definition — logs-and-traces.md.
References
- cli-run.md —
adk runflags, the JSONL event shape, multi-turn and human-in-the-loop resume, exit codes, driving aRunnerfrom Python. - web-api.md — starting
adk web, listing and reading sessions over HTTP, posting test messages to/run_sse. - logs-and-traces.md — log levels and where each command writes them, the trace endpoints, span attributes, and the env vars that control whether prompts appear in spans.
- failure-modes.md — ADK-specific symptoms with the cause and a concrete check for each.
- event-flow.md — how an invocation becomes events, callback order, the event fields that matter, and where each stage lives in the source.
Ground rules
- Leave sessions in place when you finish. The user may still want to open them
in the web UI, and
adk webhas no undelete. - Delete any throwaway agent you created for a repro, unless the user asked to keep it.
- Reach for a unit test in
tests/unittests/when the bug is inside one component, and for a sample undercontributing/samples/(seeadk-sample-creator) when it only reproduces with runner, agent, and workflow wired together.
Comments
Markdown supported