go-adk
go-adk
Expert guidance for developing agents with google.golang.org/adk (Go ADK).
When to trigger
- The user mentions Go ADK,
google.golang.org/adk,adk-go, or asks how to build agents in Go. - The task involves ADK concepts like
llmagent, tools, callbacks, sessions/state/memory, workflow agents, streaming, MCP, A2A, ADK web/API runtime, launchers, deployment, evaluation, or safety controls.
Core rules
- Treat references/llms-index.md as the required ADK coverage map.
- Target the current stable Go ADK v1.x surface; as of May 5, 2026, use
v1.2.0as the default baseline unless the repo pins an older tag. - Prefer official ADK Go APIs, package docs, and examples over ad-hoc wrappers.
- Follow existing repository patterns first (imports, launcher style, layout, env handling).
- For version-sensitive behavior, check package docs and release/docs pages before giving definitive guidance.
- Prioritize Go-specific ADK docs first; if a feature is documented only in another SDK doc, call that out explicitly and avoid presenting it as established Go API.
- Keep agent names unique and never use
useras an agent name. - Use concise
Descriptionfields so delegation and tool selection remain reliable. - Treat ADK Web as development-only unless the user explicitly asks for production runtime choices.
- Do not mix older pre-v1 snippets with current v1 launcher/runtime patterns in the same answer.
Workflow
- Map task to ADK domain:
- Build, run, deploy, evaluate, safety, components, protocols, or reference.
- Load only the relevant sections from references/llms-index.md.
- Confirm execution style:
- Launcher-first app (
cmd/launcher/fullfor local development,cmd/launcher/prodfor production-facing launchers) or embedded runtime (runner.New(...)+Runner.Run(...)). - Local CLI, dev web UI, REST/API server, or custom service loop.
- Launcher-first app (
- Build the first working agent:
llmagent.New(llmagent.Config{...})with a concrete model (commonlygemini.NewModel(ctx, ..., &genai.ClientConfig{...})).- Add minimum viable
Instruction,Description, and eitherToolsorToolsets.
- Add tools safely:
- Use
functiontool.New(...)for typed custom tools. - Use
mcptoolset.New(...), skills, or other ADK-native integrations only when needed. - For sensitive tools, apply confirmations, auth, and policy callbacks; prefer
tool.WithConfirmation(...)for grouped toolsets.
- Use
- Wire stateful execution:
- Sessions via
session.Service(oftensession.InMemoryService()for local dev). - Add
memory.Serviceonly when cross-session retrieval is required. - Add artifact/state/context management only when required by the workflow.
- Sessions via
- Apply control points:
- Use callbacks (
Before/After Agent,Before/After Model,OnModelError,Before/After Tool,OnToolError) for logging, caching, guardrails, and overrides. - Prefer plugins for reusable security policy enforcement.
- Use callbacks (
- Scale composition:
- Use workflow agents for deterministic orchestration (
sequentialagent,parallelagent,loopagent). - Use multi-agent delegation (descriptions + transfer behavior) only when specialization is clear.
- Use remote agents/A2A only when process or host boundaries are intentional.
- Use workflow agents for deterministic orchestration (
- Select runtime/deployment posture:
- Local dev:
full.NewLauncher()withgo run agent.go,go run agent.go web api, orgo run agent.go web api webui. - Production:
prod.NewLauncher()or embedded server/runtime plus deployment target, observability, and safety posture.
- Local dev:
- Verify behavior end-to-end:
- Validate happy-path conversation, tool errors, callbacks, session lifecycle, confirmation behavior, and evaluation criteria.
Output expectations
- Provide exact Go imports, runnable snippets, and command lines that match the chosen runtime mode.
- Call out version-sensitive behavior if the user targets older ADK tags or the repo mixes docs from multiple ADK generations.
- Mention the relevant ADK doc section when guidance comes from
llms-indexcategories beyond core Go quickstart pages. - Prefer small, testable incremental changes over large rewrites.
References
- Quickstart and launcher baseline: references/quickstart.md
- Core APIs and agent config: references/core-primitives.md
- Tools, callbacks, and guardrails: references/tools-and-guardrails.md
- Runtime modes, examples, and A2A: references/runtime-and-examples.md
- Models, versioning, and operations posture: references/models-and-operations.md
- Required ADK source map (
llms.txt-derived curated index): references/llms-index.md
More from metalagman/agent-skills
gitflow
Use this skill when managing git branches, releases, or hotfixes according to the Gitflow workflow. It enforces naming conventions and synchronization policies.
50go-goose
Use this skill to plan, write, or run database migrations with the pressly/goose CLI and Go library (SQL/Go migrations, env vars, provider API, embedded migrations).
27go-uber-style-guide
Use this skill to write, refactor, or review Go code according to the Uber Go Style Guide. It ensures strict adherence to correctness, safety, and idiomatic patterns.
23beads
Use this skill to manage work in Beads (`bd`) 1.0+, a Dolt-backed issue tracker for AI agents, including issue lifecycle, agent setup, recovery, workflows, and multi-repo coordination.
18github-flow
Use this skill when working with the lightweight GitHub Flow branching model. Ideal for projects with continuous deployment where 'main' is always deployable.
17go-senior-developer
Expert senior-level Go guidance for architecture, API-first design/codegen, advanced concurrency, performance tuning, testing/quality, cloud-native 12-factor practices, and Go 1.24+ tooling for large-scale systems.
17