agent-sdk-workshop: Anthropic’s Agent SDK Workshop Turns Agent Design Into a Set of Switches

A hands-on repo that teaches Claude Agent SDK by revealing tools, subagents, and memory one layer at a time, so readers learn orchestration before syntax.

6 to 8 min read • View on GitHub • More from anthropics

A wide black-ink editorial illustration of a control panel on a white tabletop with three switches labeled tools, subagents, and memory. Behind the glass, separate mechanisms wake up as each switch rises, suggesting that agent capabilities are revealed through configuration rather than assembled from scratch.
The workshop’s thesis is visual: agent behavior changes when you flip capability on, not when you rebuild the whole system.
Key Takeaways

Most agent tutorials make you start with nothing. This repo starts with something working, then lets you turn on tools, subagents, and memory one layer at a time. That changes the lesson from “how do I wire this up?” to “what actually changes when capability enters the system?”

No code writing required. You flip switches, pick from component lists, and write prompts. The SDK does the rest.

Anthropic, Project Maintainer · Agent SDK Workshop GitHub Readme

Why This Workshop Feels Different

The clever part is pedagogical, not decorative. Instead of hiding complexity behind a polished demo or scattering it across a dozen files, the workshop turns the agent into a controlled experiment. One flag changes behavior. Another adds delegation. Another makes the agent remember what happened before.

That makes the repo unusually legible for busy engineers. You can see the shape of the harness before you worry about prompt polish. And that matters, because most agent failures are not model failures. They are orchestration failures.

A close editorial illustration of a switchboard where three toggles feed a central relay box and the output branches into direct response, tool execution, and delegated subagent work. One loop returns to the relay as memory, making the runtime visible as a set of connected paths.
The workshop’s runtime is easier to understand as a switchboard than as a library surface.

The Switchboard: Tools, Subagents, and Memory

The workshop’s switchboard is a pedagogical control panel for agent capability.

ModeWhat the reader seesWhat the agent can do
Blank tutorialA file full of imports and setupEverything depends on getting the wiring right first
This workshopA working agent with togglesCapability appears one layer at a time
Tool toggle onThe agent can query mock servicesIt stops guessing and starts grounding answers
Subagent toggle onThe main agent delegates tasksWork gets split into specialized roles
Memory toggle onPast context persists across turnsThe agent can reuse state instead of re-deriving it

What agent.py Is Really Doing

The technical core sits in build_options(). That function assembles a ClaudeAgentOptions object from feature flags in config.py, then hands those options to the client runtime. The important idea is not the syntax. It is that the workshop makes the agent’s behavior a function of configuration, not a pile of one-off prompt tricks.

def build_options():
    options = ClaudeAgentOptions()

    if ENABLE_TOOLS:
        options.allowed_tools = research_server.tools

    if ENABLE_SUBAGENTS:
        options.agents = [researcher, fact_checker]

    if ENABLE_MEMORY:
        options.hooks = [memory_hook]

    return options

client = ClaudeSDKClient(options=build_options())

That structure is why the workshop lands. The main agent does not become magical. It becomes inspectable. You can trace the path from prompt to options to runtime behavior, then watch the same request change shape when a tool or subagent is present.

the 'harness' (the AI layer of rules, hooks, skills, LSP, MCP, and subagents) matters as much as the model

Why Subagents Matter More Than They First Look

Subagents are the repo’s strongest delegation lesson. They are not a novelty layer pasted on top of chat. They are a way to give the main agent specialized workers with narrower jobs, separate prompts, and their own tool access.

That separation changes reliability. A monolithic agent has to do everything in one context. A subagent can be asked to research, verify, or summarize without dragging the whole conversation into every step. In practice, that is closer to how teams work.

PatternStrengthTrade-off
Single prompt chainSimple to startGets brittle as the task grows
Single-agent plus toolsGood groundingStill centralizes every decision
Main agent plus subagentsCleaner delegation and better role separationMore moving parts to understand
Workshop’s staged revealEasiest way to learn the aboveLess like a production template, more like a teaching harness

Why Local Mock Data Is a Feature, Not a Shortcut

The workshop uses static JSON in mock_data/ and data/ to keep the learning loop stable. That is not a compromise. It is the point. A live API can be useful later, but it obscures the lesson when you are trying to understand how tools, delegation, and memory change the agent’s behavior.

Deterministic data makes the demo repeatable. The same input produces the same output, so the reader can isolate the effect of each switch. For a workshop, that is more valuable than realism.

Data sourceBenefitCost
Live external APIReal-world freshnessNetwork noise and unpredictable results
Local mock JSONStable workshop behaviorLess realism in the moment
Workshop’s choiceFast feedback for learnersRequires a later step into production integrations

How the Guided Demo Becomes a Real Workflow

The repo does not stop at a single guided demo. It moves from a monolithic teaching path into breakouts for roles like SRE, customer support, and chief of staff, then into extend templates for custom integrations. That progression matters because it shifts the user from observing primitives to composing systems.

In other words, the workshop is not just teaching features. It is teaching a workflow for assembling agents from reusable parts. Once that clicks, the SDK stops feeling like a prompt wrapper and starts feeling like an operating harness.

Where This Fits in the Agent Framework Landscape

Compared with broader orchestration frameworks, the workshop is unusually strong at teaching the harness layer. LangGraph is often the answer when you need explicit graphs and stateful routing. OpenAI’s Agents SDK emphasizes handoffs in its own ecosystem. This repo is different: it teaches how Claude’s agent runtime becomes legible when you expose configuration, hooks, and delegation directly.

ApproachBest atWhat this workshop adds
LangGraphExplicit workflow graphsA clearer mental model for Claude-native orchestration
OpenAI Agents SDKVendor-specific multi-agent patternsA hands-on path into Claude Agent SDK primitives
General tutorialsGetting started quicklyA stronger explanation of the harness layer
This workshopTeaching composition through revealA repeatable way to understand tools, subagents, and memory

That is the main value here. The repo is not trying to win a framework bake-off. It is trying to make the model’s surrounding machinery visible, which is the part most teams underestimate.