From adk
Systematic debugging for ADK agents — trace reading, log analysis, common failure diagnosis, and the debug loop.
How this skill is triggered — by the user, by Claude, or both
Slash command
/adk:adk-debuggerThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Every ADK agent records its behavior as traces and logs — every conversation turn, tool call, LLM reasoning step, and error. These are the source of truth for understanding what your agent did and why.
Every ADK agent records its behavior as traces and logs — every conversation turn, tool call, LLM reasoning step, and error. These are the source of truth for understanding what your agent did and why.
The ADK CLI provides all the tools you need to debug. All commands support --format json for structured output, which you should always use when consuming output programmatically.
Use this skill when the developer asks about:
Trigger questions:
adk check found errors"| File | Contents |
|---|---|
references/traces-and-logs.md | CLI debugging tools, log querying, trace structure, span types, onTrace hooks, reproduction with adk chat |
references/common-failures.md | Runtime failure patterns — validation, bot not responding, tool errors, workflow stuck, integration failures, build errors, config confusion |
references/llm-debugging.md | LLM behavior issues — wrong tool, hallucinated params, refusals, token limits, looping, reading model reasoning |
references/debug-workflow.md | The systematic 8-step debug loop: validate → reproduce → logs → traces → classify → fix → verify → prevent |
references/trace-summarization.md | How to fetch, walk, and summarize traces as free-form natural-language narratives — adapting depth to context |
references/conversation-analysis.md | How to summarize and explain full conversations — listing conversations, timeline analysis, correlating with traces, common patterns |
traces-and-logs.md for CLI commands and trace structurecommon-failures.md for the matching failure patternllm-debugging.md for the matching behavior issuedebug-workflow.md and follow the 8-step looptrace-summarization.md for how to fetch, walk, and narrate tracesconversation-analysis.md for multi-turn conversation summaries and explanationsadk-evals skill for writing evalssymptom → validate (adk check) → reproduce (adk chat) → logs (adk logs) → traces (adk traces) → root cause → fix → verify
--format json)adk check --format json # offline validation
adk logs error --format json # recent errors
adk logs --follow --format json # stream live
adk traces --format json # recent traces
adk traces --conversation-id <id> --format json # specific conversation
adk chat --single "msg" --format json # test message
adk dev --non-interactive --format json # structured dev output
adk conversations --format json # list recent conversations
adk conversations show <id> --format json # conversation timeline
adk conversations show <id> --include-llm --format json # timeline with LLM reasoning
| Type | What It Shows |
|---|---|
think | LLM reasoning — why it chose an action |
tool_call | Tool invocation — name, input, output, success/error |
code_execution_exception | Runtime error — message and stack trace |
end | Conversation turn completed |
Before debugging, verify:
adk check --format json — fix any reported issues firstadk dev (or adk dev --non-interactive --format json for structured output)agent.json exists with botId and workspaceId (created by adk link)agent.local.json has devId (set automatically by the first adk dev run)✅ Run adk check before debugging runtime issues
# CORRECT — catch config/schema problems offline first
adk check --format json
# Then debug runtime issues
❌ Skipping offline validation
# WRONG — jumping straight to runtime debugging wastes time on config issues
adk traces --format json # might be chasing a config problem
✅ Use --format json on all CLI commands
# CORRECT — structured output for reliable parsing
adk logs error --format json
adk traces --format json
adk chat --single "test" --format json
❌ Parsing human-readable output
# WRONG — human-readable format is for display, not parsing
adk logs error
adk traces
✅ Use adk logs error to filter errors
# CORRECT — focused error scan
adk logs error --format json
adk logs warning since=1h --format json
❌ Scrolling through all output
# WRONG — too much noise, easy to miss the actual error
adk logs --format json # 50 entries of everything
✅ Use onTrace hooks for programmatic monitoring
// CORRECT — structured, automated trace analysis
hooks: {
onTrace: ({ trace }) => {
if (trace.type === "tool_call" && !trace.success) {
console.error(`[TOOL ERROR] ${trace.tool_name}`, trace.error);
}
}
}
❌ Only checking console output
// WRONG — console.log in handlers misses the structured trace data
handler: async (input) => {
console.log("tool called"); // not useful for debugging
}
✅ Write a regression eval after fixing
// CORRECT — prevents the bug from coming back
export default new Eval({
name: 'fix-order-lookup',
type: 'regression',
conversation: [{ user: 'Look up order 123', assert: { tools: [{ called: 'lookupOrder' }] } }],
})
❌ Fixing and moving on
// WRONG — the same bug will return and you'll debug it again
Basic:
Intermediate:
Advanced:
Match depth to the question.
Answer directly — one sentence + the CLI command or concept. Don't run the full debug loop for informational questions.
Follow the full loop:
adk check --format json — rule out offline issuesadk chat --single "msg" --format json to create a clean reproductionadk logs error --format json for quick scan, adk traces --format json for detailsadk-evals skill and generate the eval file automaticallynpx claudepluginhub botpress/skills --plugin adkProvides the full ADK agent development lifecycle: scaffold, build, evaluate, deploy, publish, and observe. Entrypoint for building agents with google-agents-cli.
Fetches and analyzes LangSmith execution traces to debug LangChain/LangGraph agents. Use when investigating errors, tool calls, memory operations, or agent performance.