LevelUpWith

Explore / Production Agents on Claude: Design, Build, Run / Lesson 1

Lesson 1: Orientation: An Independent Course on a Moving Target

Sets the ground rules: this course is independent of Anthropic and reproduces none of its course or documentation text, and because Claude's agent surfaces change monthly you learn a repeatable way to verify any feature, name, limit or beta flag before relying on it.

Free to read, no account needed. Part of Production Agents on Claude: Design, Build, Run.

By the end of this level you'll be able to

  • State that the course is independent of Anthropic, and tell apart the four ways to build on Claude: the Client SDK with your own tool loop, the Claude Code CLI, the Claude Agent SDK and Managed Agents
  • Verify a claim about a feature, option name or version requirement against Anthropic's current documentation and the SDK changelogs, instead of trusting memory or a blog post
  • Label each capability you plan to depend on as stable, beta or unconfirmed, and record the date you checked it

Ground rules first

This course is independent of Anthropic. Anthropic did not write, sponsor or review it, and it reproduces none of Anthropic's course or documentation text. You get a practitioner's explanation in our own words, plus pointers to the primary pages so you can read the source yourself.

That second half matters more than it sounds. Claude's agent surfaces change monthly. Anything you read about them, this course included, is a snapshot. So the first skill is not an API call. It is a habit: verify before you depend.

The four ways to build on Claude

You already know the first one. The question that separates all four is: who runs the loop, and where?

Surface Who runs the agent loop What you get
Client SDK (Messages API) You, in your code Direct model access. You write the tool loop yourself; a tool-runner helper exists but is beta.
Claude Code CLI The CLI, in a terminal An interactive tool for a person at a keyboard.
Claude Agent SDK The library, in a process you operate Claude Code's loop, built-in tools, permissions, sessions and hooks, callable from Python or TypeScript.
Managed Agents Anthropic, behind the API A hosted harness. You configure an agent, start sessions and exchange events.

An analogy: the Client SDK is buying an engine and building the car. The Agent SDK is buying the car and driving it yourself. Managed Agents is hiring a car with a driver. The CLI is the same car, already set up for one person's daily use.

Two things that are easy to get wrong:

  • The Agent SDK is not a thin API wrapper. It runs the Claude Code binary, normally bundled with the package. It was called the Claude Code SDK before a rename, so older posts use the old package names.
  • With Managed Agents, the tools can execute in Anthropic's cloud sandbox or in a self-hosted sandbox on your own infrastructure. Anthropic runs the loop either way.

Why memory and blog posts fail you

Here is a real trap. When the Agent SDK was renamed at v0.1.0, it briefly stopped loading filesystem settings (your .claude/ config and CLAUDE.md files) by default. Plenty of posts recorded that behaviour. The change was later reverted: omit the option today and user, project and local settings load, as they do in the CLI.

If you trust the old post, you ship an agent to CI believing it is isolated, and it quietly picks up whatever config sits on the build machine. Nothing errors. This is the kind of bug that verification prevents.

A repeatable verification routine

Run these four steps for any feature, option name, limit or version requirement.

1. Find the primary page. Agent SDK and CLI docs live on code.claude.com/docs. API and Managed Agents docs live on platform.claude.com/docs. A blog post only tells you what to look for.

2. Read the status on that page. Is the feature marked beta? Does it name a beta header? Is part of it a research preview that needs an access request?

3. Check the changelog for the version you actually run. The Python and TypeScript Agent SDKs each have a CHANGELOG.md on GitHub, and they are versioned separately.

# What do I really have installed? Never guess.
pip show claude-agent-sdk               # Python: prints Version: ...
npm ls @anthropic-ai/claude-agent-sdk   # TypeScript: prints the resolved version

# Now open that package's CHANGELOG.md and search for the option name.
# Look for: when it was added, renamed, or had its default changed.

4. Write down what you found, with the date.

Applying this to the trap above: the migration guide states the current default, and it adds that Python SDK 0.1.59 and earlier treated an empty list the same as leaving the option out. So "pass an empty list to isolate" is only true above a certain version. That version detail is what makes a production agent behave as you expect.

Gotcha: Python and TypeScript version numbers do not match. On 2026-10-10 the Python changelog topped out at 0.2.165 and the TypeScript one at 0.3.296. "I'm on the latest" means nothing without the language.

Label what you depend on

Give every capability one of three labels:

  • stable: documented with no beta marker.
  • beta: documented, but marked beta or gated by a beta header. Anthropic warns that betas can change in breaking ways, be removed, or carry different rate limits and pricing.
  • unconfirmed: you cannot find it on a primary page. Treat it as not existing until you can.

Keep the labels in a small file beside your code:

# capabilities.yaml: what this agent depends on, and when we last looked
- capability: Managed Agents (agents, environments, sessions, events)
  status: beta                       # every endpoint needs a beta header
  detail: "anthropic-beta: managed-agents-2026-04-01 (client SDKs add it for you)"
  source: platform.claude.com/docs/en/managed-agents/overview
  checked: 2026-10-10

- capability: MCP tunnels (private MCP servers for Managed Agents)
  status: beta                       # narrower: research preview, access on request
  source: platform.claude.com/docs/en/managed-agents/overview
  checked: 2026-10-10

- capability: setting_sources=[] isolates the agent from filesystem settings
  status: stable
  detail: "needs Python SDK newer than 0.1.59"
  source: code.claude.com/docs/en/agent-sdk/migration-guide
  checked: 2026-10-10

- capability: "a colleague says there is a per-tool retry option"
  status: unconfirmed                # not found in docs or changelog
  checked: 2026-10-10

The checked date is the important field. A label without a date goes stale and nobody can tell. A dated label shows a reviewer how old the knowledge is.

Best practice: re-check the register whenever you bump an SDK version, and before any launch. It takes ten minutes and it catches renamed options and changed defaults before your users do.

Trade-off: depending on a beta is often the right call, because much of the useful agent tooling is beta. The label is there so you make that choice knowingly, pin versions and plan for change.

This course follows the same rule. When a later lesson names a feature, it says whether it is beta or unconfirmed.

Key takeaways

  • This course is independent of Anthropic and reproduces none of its course or documentation text.
  • There are four surfaces: the Client SDK (you write the loop), the Claude Code CLI (interactive terminal), the Claude Agent SDK (Claude Code's loop as a library in your process) and Managed Agents (Anthropic hosts the loop).
  • Verify in order: primary docs page, status on that page, changelog for your installed version, then record it.
  • Label each dependency stable, beta or unconfirmed, and date the check.
  • Blog posts and memory tell you what to look up. They do not settle it.

A 6-question knowledge check follows this lesson in the app, free and without an account.

More like this

  • Building on the Claude Platform: API to Production

    Go from your first Messages API call to a production-grade Claude application in Python, with TypeScript where it differs. You will learn to pick models, contr…

    Course · Claude · AI & Agents · Expert · 64 levels · 4 free · Professionally curated by levelupwith.com

  • Claude Science: A Researcher's Working Guide

    Run reproducible analyses in Anthropic's beta desktop research workbench, from a first sandboxed Python or R run to remote compute beside your data. You will l…

    Course · Claude · Science · Capable · 18 levels · 4 free · Professionally curated by levelupwith.com

  • Claude at Work: No-Code Skills for Knowledge Workers

    Learn to brief Claude clearly, check what it gives you, and set up Projects, Artifacts, Skills, memory, connectors and Research for real work in sales, marketi…

    Course · Claude · AI & Agents · Capable · 18 levels · 4 free · Professionally curated by levelupwith.com

  • Delegating Real Work to Claude: Tasks, Files and Apps

    Learn to hand Claude multi-step work on your real files, browser and Office apps, with clear briefs, firm limits and approval gates, then review the results so…

    Course · Claude · AI & Agents · Capable · 18 levels · 4 free · Professionally curated by levelupwith.com

  • Prompting Claude: Instructions, Context and Testing

    Write prompts that Claude follows reliably, manage what goes into its context window, and test and improve your prompts with evidence instead of guesswork. Eac…

    Course · Claude · AI & Agents · Capable · 20 levels · 4 free · Professionally curated by levelupwith.com

  • Finished Work with Claude Artifacts, No Code

    Brief, refine, brand, check, share and export finished designs, decks, documents, dashboards and motion pieces in Claude without writing code. Every level ends…

    Course · Claude · AI & Agents · Capable · 18 levels · 4 free · Professionally curated by levelupwith.com