Adk sample creator
Skill danielvogler/ai-skills-library/.agents/skills/adk-sample-creator
Centralized manifest for AI agent skills. Synced via ai-agent-skills.
npx -y skills add danielvogler/ai-skills-library --skill adk-sample-creatorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Author new samples for the ADK Python repository. Use this skill when the user wants to create a new sample demonstrating a feature or agent pattern (e.g., dynamic nodes, standalone agents, fan-out/fan-in) or when adding examples to subdirectories under `contributing/`.
SKILL.md
3.7 KB, as published. Nobody here has run it
ADK Sample Creator
This skill helps you create new samples for the ADK Python repository. You should search for subdirectories under contributing (such as new_workflow_samples, workflow_samples, etc.) and confirm with the user which folder they want to use before creating the sample.
[!TIP]
Before creating samples, you can use the
adk-styleskill to learn about ADK 2.0 architecture knowledge and best practices.
A sample consists of:
- A directory per sample.
- An
agent.pyfile defining the agent or workflow logic. - A
README.mdfile explaining the sample.
Guidelines
1. Folder Name
Use snake_case for the folder name (e.g., dynamic_nodes, fan_out_fan_in).
2. agent.py Content
The agent.py should focus on demonstrating a specific feature or agent pattern. Use absolute imports for testing convenience.
[!IMPORTANT] Model Selection: Do not set the
modelparameter explicitly (e.g.,model="gemini-2.5-flash") onAgentinstances in sample agents. Instead, let them default to the system-configured model, unless a specific model is explicitly requested by the user.
Choose one of the following patterns:
Pattern A: Workflows (for complex graphs)
Use this when you need multiple nodes, routing, or parallel execution.
Imports:
from google.adk import Agent
from google.adk import Context
from google.adk.workflow import node
from google.adk.workflow import JoinNode
from google.adk.workflow._workflow_class import Workflow
Anatomy:
my_agent = Agent(name="my_agent", ...)
@node()
async def my_node(node_input: str):
return "result"
root_agent = Workflow(
name="root_wf",
edges=[("START", my_node)],
)
Pattern B: Standalone Agents (for single-agent or simple tool use)
Use this when you don't need a graph and the agent handles the loop.
Imports:
from google.adk import Agent
from google.adk.tools import google_search # example
Anatomy:
root_agent = Agent(
name="standalone_assistant",
instruction="You are a helpful assistant.",
description="An assistant that can help with queries.",
tools=[google_search],
)
3. README.md Content
Each sample should have a README.md with the following structure:
- Overview: What the sample does.
- Sample Inputs: Examples of inputs to test with. Each prompt must be wrapped in backticks. If a prompt has an explanation, always add a blank line between the prompt and the explanation, and indent the explanation by two spaces.
- Graph: Visualization of the graph flow (Mermaid recommended for workflows).
- How To: Explanation of key techniques used (e.g.,
ctx.run_node).
README Example Template:
# ADK Sample Name
## Overview
Brief description.
## Sample Inputs
- `Prompt example 1`
- `Prompt example 2`
*Explanation or expected behavior*
## Graph
```mermaid
graph TD
START --> MyNode
```
How To
Explain the details.
## Examples
### Dynamic Nodes
Snippet from `dynamic_nodes/agent.py`:
```python
@node(rerun_on_resume=True)
async def orchestrate(ctx: Context, node_input: str) -> str:
while True:
headline = await ctx.run_node(generate_headline)
# ...
Fan Out Fan In
Snippet from fan_out_fan_in/agent.py:
root_agent = Workflow(
name="root_agent",
edges=[("START", (node_a, node_b), join_node, aggregate)],
)