|
1 | 1 | --- |
2 | 2 | name: adk-agent-builder |
3 | | -description: Central hub for building, testing, and iterating on ADK agents. Trigger this skill when the user wants to create a new agent, configure modes (task, single-turn), or build graph-based workflows. |
| 3 | +description: >- |
| 4 | + Builds ADK (Agent Development Kit) Python agents: LLM agents with tools, |
| 5 | + graph workflows of function and agent nodes, conditional routing, fan-out and |
| 6 | + join, schema-validated delegation between agents, human-in-the-loop pauses, |
| 7 | + and pytest coverage for all of it. Use when asked to create an agent or a |
| 8 | + workflow, add a tool to one, branch or loop between nodes, run steps in |
| 9 | + parallel, pause for user approval, or test an agent. Don't use for explaining |
| 10 | + how ADK works internally or designing its core components (use |
| 11 | + `adk-architecture`), for an agent that already runs but misbehaves (use |
| 12 | + `adk-debug`), for authoring a sample under `contributing/` (use |
| 13 | + `adk-sample-creator`), or for naming, typing, and formatting conventions (use |
| 14 | + `adk-style`). |
4 | 15 | --- |
5 | 16 |
|
6 | 17 | # ADK Agent Builder |
7 | 18 |
|
8 | | -This file serves as a directory of specialized reference guides for developing |
9 | | -agents with ADK. To avoid context pollution, read only the relevant reference |
10 | | -file based on your current task. |
| 19 | +Read only the reference that matches the task. Loading the whole tree costs |
| 20 | +context and buries the part that matters. |
11 | 21 |
|
12 | | -## Core Concepts Directory |
| 22 | +Every API below was checked against `google-adk` 2.6.2. If a symbol is missing |
| 23 | +at runtime, read the source under `src/google/adk/` rather than guessing a |
| 24 | +neighbouring name. |
13 | 25 |
|
14 | | -Refer to these files for foundational knowledge: |
| 26 | +## Start here |
15 | 27 |
|
16 | | -- **Getting Started & Basic Agents**: [getting-started.md](references/getting-started.md) |
17 | | - - Environment setup, API key configuration, and minimal agent definitions. |
18 | | -- **Tool Catalog**: [tool-catalog.md](references/tool-catalog.md) |
19 | | - - How to bind function tools, MCP tools, OpenAPI specs, and Google API tools. |
20 | | -- **Agent Modes (Task / Single-Turn)**: [task-mode.md](references/task-mode.md) |
21 | | - - Multi-turn structured delegation and autonomous single-turn execution patterns. |
22 | | -- **Import Paths**: [import-paths.md](references/import-paths.md) |
23 | | - - Canonical and verbose import paths for core components, tools, and |
24 | | - events. |
| 28 | +| Task | Reference | |
| 29 | +|---|---| |
| 30 | +| First agent, environment, `adk` CLI | [getting-started.md](references/getting-started.md) | |
| 31 | +| Which import path is the canonical one | [import-paths.md](references/import-paths.md) | |
| 32 | +| The rules that cause most runtime failures | [best-practices.md](references/best-practices.md) | |
25 | 33 |
|
26 | | -## Workflow & Graph Orchestration |
| 34 | +## Building blocks |
27 | 35 |
|
28 | | -Refer to these files when building complex graphs: |
| 36 | +- [tool-catalog.md](references/tool-catalog.md) — function tools, MCP, OpenAPI, |
| 37 | + Google API toolsets, built-in tools, custom `BaseTool` and `BaseToolset`. |
| 38 | +- [function-nodes.md](references/function-nodes.md) — plain functions as nodes: |
| 39 | + parameter resolution, generators, `node_input` typing rules. |
| 40 | +- [llm-agent-nodes.md](references/llm-agent-nodes.md) — an `LlmAgent` used as a |
| 41 | + workflow node: output types, instruction templates, `output_schema`, |
| 42 | + auto-wrapping behavior. |
| 43 | +- [task-mode.md](references/task-mode.md) — `mode='task'` and |
| 44 | + `mode='single_turn'` delegation with schema-validated input and output. |
29 | 45 |
|
30 | | -- **Function Nodes**: [function-nodes.md](references/function-nodes.md) |
31 | | - - How to use functions as nodes, type resolution, and generators. |
32 | | -- **Routing & Conditions**: [routing-and-conditions.md](references/routing-and-conditions.md) |
33 | | - - Edge patterns, dict-based routing, self-loops, and conditional execution. |
34 | | -- **LLM Agent Nodes**: [llm-agent-nodes.md](references/llm-agent-nodes.md) |
35 | | - - How to use LLM agents as workflow nodes, task wrappers, and handling output schemas. |
36 | | -- **Advanced Patterns**: |
37 | | - [advanced-patterns.md](references/advanced-patterns.md) |
38 | | - - Nested workflows, custom node types, and graph validation rules. |
| 46 | +## Graph orchestration |
39 | 47 |
|
40 | | -## Advanced Orchestration Patterns |
| 48 | +- [routing-and-conditions.md](references/routing-and-conditions.md) — routed |
| 49 | + edges, dict routing maps, default routes, self-loops, revision loops. |
| 50 | +- [parallel-and-fanout.md](references/parallel-and-fanout.md) — fan-out edges, |
| 51 | + `JoinNode` fan-in, `parallel_worker=True` list processing. |
| 52 | +- [dynamic-nodes.md](references/dynamic-nodes.md) — scheduling nodes at runtime |
| 53 | + with `ctx.run_node()` and imperative workflow construction. |
| 54 | +- [human-in-the-loop.md](references/human-in-the-loop.md) — `RequestInput`, |
| 55 | + resume behavior, resumable vs replayed sessions. |
| 56 | +- [advanced-patterns.md](references/advanced-patterns.md) — nested workflows, |
| 57 | + retries, custom `BaseNode` subclasses, graph validation rules. |
| 58 | +- [multi-agent.md](references/multi-agent.md) — chat-transfer hierarchies, and |
| 59 | + the deprecated `SequentialAgent` / `LoopAgent` / `ParallelAgent` shells that |
| 60 | + `Workflow` replaces. |
41 | 61 |
|
42 | | -- **Parallel Processing & Fan-Out**: [parallel-and-fanout.md](references/parallel-and-fanout.md) |
43 | | - - `ParallelWorker` for list splitting and concurrent processing, fan-out/join patterns. |
44 | | -- **Human-in-the-Loop**: [human-in-the-loop.md](references/human-in-the-loop.md) |
45 | | - - Pausing execution for user input, resumable workflows, and AuthConfig on nodes. |
46 | | -- **Dynamic Nodes**: [dynamic-nodes.md](references/dynamic-nodes.md) |
47 | | - - Scheduling nodes at runtime dynamically via `ctx.run_node()`. |
| 62 | +## Runtime and verification |
48 | 63 |
|
49 | | -## Infrastructure & Utilities |
50 | | - |
51 | | -- **State & Events**: [state-and-events.md](references/state-and-events.md) |
52 | | - - Using context API, sharing global state, and yield event structures. |
53 | | -- **Session & Memory**: |
54 | | - [session-and-state.md](references/session-and-state.md) |
55 | | - - Session state mutation, scope conventions, and database session |
56 | | - services. |
57 | | -- **Callbacks & Plugins**: |
58 | | - [callbacks-and-plugins.md](references/callbacks-and-plugins.md) |
59 | | - - Implementing callbacks, plugin manager integration, and override |
60 | | - behavior. |
61 | | -- **Multi-Agent Systems**: [multi-agent.md](references/multi-agent.md) |
62 | | - - Hierarchical execution (e.g., `SequentialAgent`, `LoopAgent`, `ParallelAgent`). |
63 | | -- **Testing Strategies**: [testing.md](references/testing.md) |
64 | | - - Automated queries with `adk run`, unit tests, and integration testing with sample agents. |
65 | | - |
66 | | -## Standards & Guidelines |
67 | | - |
68 | | -- **Best Practices**: [best-practices.md](references/best-practices.md) |
69 | | - - Critical rules (Pydantic schemas, content events, state-based data flow). |
| 64 | +- [state-and-events.md](references/state-and-events.md) — the `Context` object, |
| 65 | + `Event` fields, and how state flows between nodes. |
| 66 | +- [session-and-state.md](references/session-and-state.md) — session services, |
| 67 | + artifacts, memory, and state key scoping. |
| 68 | +- [callbacks-and-plugins.md](references/callbacks-and-plugins.md) — the six |
| 69 | + agent callbacks and app-level plugins. |
| 70 | +- [testing.md](references/testing.md) — `pytest` with `InMemoryRunner`, faking a |
| 71 | + model, asserting on node output. |
0 commit comments