Skip to content
0.6. Resources

0.6. Resources

In one glance

  • You will: Know which source to trust when this course, an upstream project, and a blog post disagree.
  • You need: Nothing installed.
  • Time: no reading time — this is a lookup page. Skim it, then come back.

When two sources disagree, the repository wins

A tutorial written six months ago can describe a schema that no longer exists. Most of these projects are pre-1.0 and move faster than the articles about them, so “which source do I believe” is an engineering question rather than a matter of taste. For what does this course do, the answer is never prose — not even this prose. The version authority is one line:

awk '/google.golang.org\/adk\/v2 v/ {print $1, $2}' agents/go/go.mod
google.golang.org/adk/v2 v2.2.0

Four other direct dependencies carry a // compatibility hold: comment in the same file — the OpenAI client, two OpenTelemetry modules, and the Google GenAI SDK — each naming the ADK release that constrains it, so an upgrade cannot be argued for without saying which hold it breaks.

Four in-repo artifacts outrank everything else, in this order. The package-local tests under agents/go/ are the behavioral contract: to learn what an invariant guarantees, read the test that asserts it. agents/go/ is the implementation, and every critical excerpt in these pages is included from it through checked snippet regions, so a page cannot drift from the code without failing the build. agents/data/ is the immutable seed that makes exercises repeatable. infra/ is the deployment contract: gateway profiles, Kubernetes manifests, kagent resources, and the observability stack. Component READMEs and CHANGELOG.md come next, and still beat a screenshot.

When the question is about the tool, not the course

Reach upstream when you extend the reference past what these pages show — a tool option, a policy field, a custom-resource attribute nobody here needed:

Primary sourceReach for it when you need
Google ADK documentationThe agent, tool, session, callback, and A2A-serving API
agentgateway documentationListener and policy configuration: routes, limits, guardrails, backends
kagent documentationFields for Agent, ModelConfig, and RemoteMCPServer
evals/README.mdEvalsets, scorers, sanitized artifacts, and judge calibration
OpenTelemetry documentationCollector receiver, processor, exporter, and connector configuration
Grafana Tempo documentationThe trace store and the query API Grafana reads
MCP specificationThe wire format for discovering and invoking a tool
A2A specificationThe wire format for the agent card and task exchange

Blog posts and talks are good for orientation and design intent, and never the version authority. The same rule covers your coding assistant: review its patches and hold them to mise run check and mise run test as you would a colleague’s, and note that AGENTS.md hands every compatible tool the same rules you follow.

How to spot a stale example

Check the publication date, then compare the example against what this repository pins. Those are mise.toml for the toolchain, each module’s go.mod and go.sum for its dependency graph, and the Pinned contracts section of AGENTS.md for the cross-component authorities — agentgateway, the kagent charts and API version, the OTel Collector, evaluation artifacts, and the stable ports. If an example uses a field, flag, or endpoint none of those recognize, it is ahead of or behind this course rather than ground truth.

When you upgrade, follow the one-component-at-a-time procedure in 0.4. Ecosystem and re-run the three commands there.

Where a report goes, and how to reuse this

Route a report to where the fix has to land. A reproducible defect in this repository is a course issue; a defect in ADK, agentgateway, kagent, OpenTelemetry, MCP, or A2A belongs to that project’s tracker; and a vulnerability, leaked credential, or real injection bypass goes through the private process in SECURITY.md rather than a public issue.

The repository is dual licensed. Course prose under content/ is CC BY 4.0 — copy, adapt, and republish it, including in your own teaching, as long as you credit the author, keep a licence notice and link, and say what you changed. The software and automation are MIT. Cite the version you used through CITATION.cff, because the reference is a moving target; 8.1. License carries the exact attribution text. For gaps that turn out to be general MLOps engineering rather than agents, the MLOps Coding Course is the companion.

Where to learn the Go this course assumes

The landing page names basic Go as a prerequisite and then never says where to get it. That is a gap worth closing rather than a standard everyone already met. These five are the canonical sources, each paired with the page in this course where it pays off:

ResourceWhat it teachesWhere it pays off
A Tour of GoSyntax, types, methods, interfaces1.1. Go, reading the module
Effective GoIdiom: what Go code is supposed to look like2.1. First Agent, reading composition
Go by ExampleShort runnable recipes, one per construct2.5. Dev Loop, while iterating
testingTable-driven tests and subtests4.2. Testing, writing your own
contextCancellation, deadlines, and value propagation3.1. Tools, every tool signature

You do not need all five before starting. The Tour is enough to read the agent; context is the one that repays a careful read the moment you write a tool of your own.

How to use this page later

  • Come back when two sources disagree: the repository answers “what does this course do”, the upstream docs answer “how does this tool work”.
  • Come back before trusting an old example, and check it against the pins.
  • Come back when you have something to report, and pick the tracker the fix has to land in.

Continue to 0.7. Troubleshooting when you know which of those two authorities to open first.