Track 8 · What's Next 1 / 39
Track 8 · The Agent Frontier

What's Next — The Agent Frontier

Agent-to-agent protocols, Claude's evolving capabilities, responsible AI principles, framework choices, and your 90-day roadmap to continued growth.

Module 24 of 30
28 min read
7 concepts
39 cards

Course Position: You've built agents. Now see where the field is heading and how to keep growing after this course ends.

Concept Index

Tap to jump to any concept.

Concept 1 of 7

Agent-to-Agent Protocols

Most agents today are isolated islands — they do their one thing but can't discover or collaborate with other agents. The emerging A2A (Agent2Agent) specification is the "API moment" for agent interoperability: a universal wire format that lets any agent discover, negotiate with, and delegate to any other, regardless of which framework or vendor built it.

The key distinction: MCP (Model Context Protocol) governs how one agent connects to its tools — databases, APIs, filesystems. A2A governs how one agent talks to another agent across process or organizational boundaries. Two protocols, two scopes — not competitors.

Google launched A2A in April 2025 (now Linux Foundation governed). Anthropic, Salesforce, SAP, Atlassian, MongoDB already ship A2A endpoints. MCP + A2A is the production stack.

Concept 1 of 7

Analogy

The API Moment for Agents
Before

The early internet was isolated websites. You wanted flight status + hotel rates + car rental pricing for one trip? You opened three browser tabs, copied data between them, and compared manually. You were the integration layer.

Pain

Every cross-site query required a human in the middle. Services couldn't automatically delegate to each other. Integration was manual copy-paste — expensive, error-prone, and unscalable.

Mapping

Then REST APIs arrived. Suddenly your calendar talked to your email, your store to your shipper. That integration layer became automated code. A2A is the same inflection point for agents: the universal plug that lets any agent discover and delegate to any other agent without custom glue code per pair.

Concept 1 of 7

How It Works

  1. 1
    Agent publishes an Agent Card
    A JSON document at /.well-known/agent.json listing the agent's name, capabilities, skills, and auth requirements.
  2. 2
    Orchestrator discovers the card
    Fetch the card, verify the needed skill exists, verify auth scheme is acceptable.
  3. 3
    Orchestrator posts a Task
    POST to /tasks/send with auth token and task payload. Task enters submitted → working → completed lifecycle.
  4. 4
    Poll or stream for result
    GET /tasks/{id} to poll, or use SSE stream if the card advertises streaming: true.
MCP vs A2A — Two Layers
Orchestrator
→ A2A →
Specialist Agent
→ MCP →
Tools / DBs
A2A = agent↔agent  |  MCP = agent↔tool
Concept 1 of 7

Decision Framework

MCP, A2A, or neither?

FUNCTION choose_protocol(scenario):
  # Connect agent to a tool/database
  IF scenario == "agent needs a tool (DB, API, FS)":
    RETURN "MCP"

  # One agent delegates to another agent
  IF scenario == "cross-org or cross-process agent call":
    RETURN "A2A"

  # In-process subagent (M14 style)
  IF scenario == "subagent inside same process":
    RETURN "function call — no protocol needed"

  # Enterprise specialist marketplace
  IF scenario == "team publishes specialist agents":
    RETURN "A2A — Agent Cards are the registry"
Concept 1 of 7

Common Misconceptions

Myth: MCP and A2A compete

They solve different layers. MCP = agent↔tool. A2A = agent↔agent. A production multi-agent system uses BOTH: A2A between orchestrator and specialist, MCP inside the specialist to reach its databases and APIs.

Myth: Same-process subagents need A2A

A function call is enough for in-process subagents (M14 style). Protocols add HTTP overhead and auth complexity. Only reach for A2A when crossing process, org, or trust boundaries.

💡 Key Takeaway

A2A is to agents what REST APIs were to websites — the universal interoperability layer. Build to A2A for cross-boundary agent calls; use MCP for tool connections; use function calls for in-process subagents.

Concept 2 of 7

A2A In Practice — Publish & Consume

The A2A protocol has two halves. Publishing means exposing three HTTP endpoints: a static Agent Card at /.well-known/agent.json, a POST /tasks/send endpoint, and a GET /tasks/{id} endpoint. That's the entire surface area — your existing Claude agent loop lives inside /tasks/send unchanged.

Consuming means: fetch the card, verify the skill exists, verify auth, post the task, then poll (or stream) until the task reaches a terminal state. The consuming code is the same for any A2A-compliant agent, regardless of whether it was built with the Claude SDK, LangGraph, or a Go service.

Concept 2 of 7

Analogy

Business Cards & Phone Calls
Before

You want to hire a specialist — a tax accountant. Without a standard format, every firm has a different way to request work: email one, call another, use a proprietary portal for a third. Every engagement starts from scratch.

Pain

Your orchestrating business needs a different integration for each vendor. One uses gRPC, another uses HTTP with a custom auth scheme, a third uses a message bus. The orchestrator grows a different client per vendor — snowflake integrations, maintenance nightmare.

Mapping

Publishing an Agent Card is printing business cards — one standard format tells anyone exactly what you do, how to reach you, and what auth you accept. Consuming is dialing the number on someone else's card using the same phone. One protocol, one client, any specialist.

Concept 2 of 7

How It Works

  1. 1
    Publish: expose Agent Card
    Static JSON at /.well-known/agent.json: name, description, capabilities (streaming, pushNotifications), auth schemes, and skill definitions.
  2. 2
    Publish: wrap your agent loop
    POST /tasks/send runs your existing Claude agent and stores results. The only domain-specific code — everything else is A2A boilerplate.
  3. 3
    Consume: discover and verify
    Fetch the card, confirm the skill ID exists, confirm auth scheme is acceptable before sending any task.
  4. 4
    Consume: send, poll, extract
    POST task with auth header, poll /tasks/{id} (or use SSE), handle failed/canceled states explicitly.
Concept 2 of 7

Pseudocode

# Consumer side: discover → verify → send → poll
FUNCTION call_agent(base_url, question, timeout=30):
  # Step 1: Discover
  card = GET(base_url + "/.well-known/agent.json")

  # Step 2: Verify skill + auth
  skill = find_skill(card, id="deduction-analysis")
  IF skill is NULL: RAISE "Skill not available"
  IF "bearer" not IN card.auth.schemes:
    RAISE "Unacceptable auth scheme"

  # Step 3: Send task
  task = POST(base_url + "/tasks/send", {
    "skillId": skill.id,
    "message": { "role": "user", "text": question }
  }, auth=BEARER_TOKEN)

  # Step 4: Poll until terminal
  deadline = now() + timeout
  WHILE task.state IN ["submitted", "working"]:
    IF now() > deadline:
      POST("/tasks/" + task.id + "/cancel")
      RAISE TimeoutError
    SLEEP(0.5)
    task = GET("/tasks/" + task.id)

  IF task.state != "completed":
    RAISE task.error
  RETURN task.artifacts[0].text
Concept 2 of 7

Common Misconceptions

Myth: Publishing A2A requires rewriting your agent

The only domain-specific code in the publisher is one function: your existing Claude agent loop wrapped in a /tasks/send endpoint. All the boilerplate — task lifecycle, auth checks, state storage — is generic A2A plumbing you write once.

Myth: Polling is the only option

If the Agent Card sets capabilities.streaming: true, you can use SSE on /tasks/{id}/events for real-time updates. For long tasks, the card may also offer pushNotifications webhook callbacks — no polling at all.

💡 Key Takeaway

Publishing A2A = Agent Card + 2 endpoints. Consuming A2A = discover → verify → send → poll. The same four-step consumer works with any compliant agent regardless of its internal stack.

Concept 3 of 7

Beyond A2A — AGNTCY, ANP & the Wider Landscape

A2A is the most widely adopted agent-to-agent spec, but two others appear in vendor docs and research: AGNTCY (Cisco-led "Internet of Agents" — a full stack above A2A) and ANP (Agent Network Protocol — a decentralized, DID-based research spec). Knowing which is which prevents confusion when you read framework announcements.

The good news: all three converge on the same shape — agents have cards, tasks have lifecycles, auth is mandatory. Code targeting A2A is largely portable to the others.

Concept 3 of 7

Analogy

TCP/IP vs. The Internet vs. Specific Networks
Before

TCP/IP is the wire protocol — how bits travel between machines. The internet is the global network built on TCP/IP. Intranets are private networks also built on TCP/IP. All different scope, same underlying protocol.

Pain

When people say "the internet protocol," do they mean TCP/IP? HTTP? The web? Confusion about scope leads to wrong architectural choices — you'd design an intranet differently than the public internet even though both use TCP/IP.

Mapping

A2A = the wire protocol (HTTP + JSON, task lifecycle). AGNTCY = a broader stack built on A2A-compatible wire (adds identity, discovery directory, observability). ANP = an alternative wire with a more decentralized design. Same analogy: wire → platform → network.

Concept 3 of 7

How It Works

  1. A
    A2A (Google → Linux Foundation, 2025)
    Widest production adoption. Agent Cards + task lifecycle + SSE. Your default target. Anthropic, Salesforce, SAP, Atlassian all ship this.
  2. B
    AGNTCY (Cisco / Internet of Agents)
    Full stack: adds W3C DID identity for agents, global agent directory, observability layer. A2A-compatible wire. Broader than A2A but still compatible.
  3. C
    ANP (Agent Network Protocol)
    Research-oriented. Decentralized peer-to-peer discovery, DID identity, no central registry required. Less production adoption — watch but don't build on yet.
Adoption vs. Scope
A2A
✓ widest adoption, prod default
AGNTCY
watch — broader stack, A2A-compatible
ANP
research — decentralized, early adoption
Concept 3 of 7

Decision Framework

Which spec to target?

Spec Reach for when Avoid when
A2A Any cross-org agent integration today
AGNTCY You need enterprise identity (DID) + global directory Your team is just starting with agent interop
ANP Your design requires no central registry Production — still maturing, limited tooling
FUNCTION pick_spec(requirements):
  IF requirements.needs_central_registry == FALSE:
    RETURN "ANP"  # decentralized
  IF requirements.needs_did_identity:
    RETURN "AGNTCY"  # full stack
  RETURN "A2A"  # safe default for most teams
Concept 3 of 7

Common Misconceptions

Myth: AGNTCY replaces A2A

AGNTCY is a stack built on top of an A2A-compatible wire. The bottom layer is interoperable. You can adopt A2A now and later layer AGNTCY's identity/directory features on top without a rewrite.

Myth: You need to pick one spec and commit fully

All three converge on the same shape. If your code follows the A2A surface (Agent Card, tasks/send, tasks/{id}), porting to AGNTCY or ANP later is mostly a redirect — not a rewrite. Pick A2A now, watch the others.

💡 Key Takeaway

Build to A2A today. Watch AGNTCY for the broader stack story. Read ANP if you need decentralized architecture. All three share the same fundamental shape.

Concept 4 of 7

Claude's Evolving Capabilities

Each new Claude capability doesn't just add a feature — it unlocks entire categories of applications that were previously impossible. Four capabilities are reshaping what agents can do: Computer Use (GUI automation without APIs), Extended Thinking (dedicated reasoning compute), Skills (just-in-time instruction loading), and larger context windows (less need for RAG on smaller corpora).

Your foundation — tool use, RAG, multi-agent orchestration — multiplies in value as each new capability lands. Developers who understood the raw loop before Computer Use shipped adopted it in hours. Starting from scratch takes weeks.

Concept 4 of 7

Analogy

The Smartphone Capability Curve
Before

Early smartphones made calls and sent texts. That was the entire use case universe. Developers building for phones could only imagine within those constraints.

Pain

Before cameras, you couldn't imagine snapping a whiteboard and texting it to your team. Before GPS, you couldn't imagine turn-by-turn navigation. The capability ceiling was invisible until it was raised.

Mapping

Each new Claude capability — Computer Use (camera), Extended Thinking (GPS), Skills (app store) — opens application categories nobody built before because the capability didn't exist. You build on each wave. The agents you design today will ride capabilities that don't exist yet.

Concept 4 of 7

How It Works

  1. 1
    Computer Use — GUI without APIs
    Claude receives screenshots and issues click/type/scroll actions. Works with ANY software that has a visual interface — including 15-year-old legacy systems with no API. Always run in a sandboxed Docker container with virtual display (Xvfb).
  2. 2
    Extended Thinking — dedicated reasoning
    One thinking: {type: "enabled", budget_tokens: 10000} parameter. NOT chain-of-thought prompting — model-native reasoning compute. Dramatically improves math, architecture planning, multi-constraint problems.
  3. 3
    Skills — just-in-time playbooks
    A SKILL.md in .claude/skills/. Only the description frontmatter loads into base context. The procedure body loads only when the agent decides it's relevant — zero cost in steady state.
  4. 4
    Larger context — simpler RAG decisions
    When context is large enough, paste the whole document instead of chunking. Still use RAG for very large corpora (cost + latency still matter), but the threshold shifts.
Concept 4 of 7

Decision Framework

Tool vs MCP vs Skill vs Subagent vs A2A?

FUNCTION pick_capability(need):
  # Single function call, structured I/O
  IF need == "one function (verb)":
    RETURN "Tool (M05)"

  # Connect to a system (DB, GitHub, Jira)
  IF need == "connect to a system":
    RETURN "MCP server (M07)"

  # Procedure with branches, used occasionally
  IF need == "domain procedure, rarely triggered":
    RETURN "Skill (.claude/skills/)"

  # Parallel specialist, own context window
  IF need == "parallel specialist":
    RETURN "Subagent (M14)"

  # Cross-org / cross-process
  IF need == "capability from another team/org":
    RETURN "A2A agent"

  # No API — legacy system GUI
  IF need == "no API exists":
    RETURN "Computer Use (sandbox required)"
Concept 4 of 7

Common Misconceptions

Myth: Computer Use replaces regular tool use

Computer Use is slower (each step round-trips a full screenshot), more expensive (~1,500-2,500 vision tokens per screenshot vs. cents for an API call), and less reliable. Only reach for it when the target system has no API, no MCP server, and no scriptable interface.

Myth: Extended thinking = chain-of-thought prompting

Chain-of-thought is a prompt trick — you ask Claude to "think step by step" using the same compute. Extended thinking is model-native: dedicated reasoning compute is allocated before the response generation begins. Different mechanism, dramatically better results on complex tasks.

💡 Key Takeaway

Each new capability unlocks new application categories. Your foundation multiplies in value with every wave. Use Computer Use for no-API software, Extended Thinking for complex planning, Skills for just-in-time procedures.

Concept 5 of 7

Building Responsibly: Ethics & Human Oversight

Capable agents without safety are not fast — they're dangerous. Five principles separate trustworthy agents from impressive-but-fragile demos: Human-in-the-Loop by design, Transparency, Bias Awareness, Scope Limitation, and Fail-Safe Defaults.

The mark of a senior agent developer is knowing when NOT to automate. Responsible design is not a constraint on capability — it is what makes deployment possible. Teams that build guardrails from the start deploy faster because they spend less time firefighting production failures.

Concept 5 of 7

Analogy

The Fast Car with Brakes
Before

A powerful car: 600 horsepower, 0-60 in 3 seconds. Pure speed. Nobody installs brakes because they plan to crash. They install brakes because safety features are what make speed useful.

Pain

A fast car without brakes is not impressive — it is a liability. Every major AI incident (chatbots endorsing harmful advice, agents making unauthorized transactions, automated systems amplifying bias) happened because the builder assumed the happy path was the only path.

Mapping

Guardrails (M16), evaluation (M18), monitoring (M19-M20), and HITL (M17) are the brakes, seatbelts, and airbags. They are not separate from capability — they ARE capability. An agent you can safely trust to run is infinitely more capable than one you can only demo in a sandbox.

Concept 5 of 7

How It Works — 5 Principles

  1. 1
    Human-in-the-Loop by design
    Critical decisions (medical, financial, legal) require human approval gates — not just kill switches. An approval gate assumes the human is needed. A kill switch assumes the human is watching.
  2. 2
    Transparency
    Users should know they're interacting with AI and what it can and cannot do. Transparent agents build trust; trusted agents get adopted.
  3. 3
    Bias awareness
    A biased human loan officer affects dozens of decisions per day. A biased agent affects thousands. Audit continuously with diverse test cases — not just at launch.
  4. 4
    Scope limitation
    Agents should refuse out-of-domain requests rather than confidently hallucinating. "I can't help with that, but here's who can" is infinitely more useful than confident wrong advice.
  5. 5
    Fail-safe defaults (fail open)
    When uncertain, share what you know and defer the decision to a human. "Fail open" beats "fail closed" — a dead end with no information is the worst UX and the least safe outcome.
Concept 5 of 7

Decision Framework

Responsible agent decision triage

FUNCTION responsible_decision(request, context):
  # Safety critical → always human
  IF context.is_safety_critical:
    RETURN escalate_to_human(request, reason="safety")

  # Out of scope → refuse gracefully
  IF request.domain NOT IN agent.allowed_domains:
    RETURN refuse("Outside my scope. Try: " + suggest_resource())

  # High-stakes → require approval
  IF context.stakes == "HIGH":
    plan = build_plan(request)
    RETURN request_approval(plan)

  # Uncertain → fail open
  IF confidence < 0.7:
    RETURN {
      "partial": what_i_know,
      "escalate": TRUE,
      "reason": "low confidence"
    }

  # Normal path — proceed
  RETURN execute(request)
Concept 5 of 7

Common Misconceptions

Myth: Responsible AI slows development

Teams with guardrails and evaluation from the start deploy faster because they spend less time firefighting production failures. Retrofitting safety costs 4× more than building it in initially. "Move fast and break things" doesn't work when the thing you break is a medical or financial decision.

Myth: Claude's built-in safety is enough

Claude has excellent built-in safety, but it cannot know your business rules, compliance requirements, or users' specific vulnerabilities. Your guardrails and Claude's safety complement each other — one does not replace the other.

💡 Key Takeaway

The 5 principles (HITL, transparency, bias awareness, scope limitation, fail-safe defaults) are not constraints on capability — they make deployment possible. An agent you can trust is more capable than one you can only demo.

Concept 6 of 7

Agent Frameworks — Do You Need One?

This course taught raw API first — client.messages.create() inside a while loop. Then the Claude Agent SDK. Then spec-driven generation. That order matters: the developer who understands the raw loop can learn any framework in a day. The developer who learned a framework first often can't debug without it.

By 2026, each major model vendor ships their own first-party agent SDK. If you've committed to a primary model, the vendor SDK usually beats a cross-provider framework on developer ergonomics, latency, and feature coverage.

Concept 6 of 7

Analogy

The Three Kitchens
Before

Three kitchens: a bare pro kitchen with stove, knives, and pans (full control, slow). A meal-kit service with pre-portioned ingredients and a recipe card (faster, limited menu). A microwave dinner (one button, one dish).

Pain

Skip straight to the meal-kit and when something tastes off, you can't tell whether the problem is the recipe, the ingredients, or your technique. You never understood the underlying steps. You're dependent on the kit.

Mapping

This course put you in the bare kitchen first — raw API, your own loop, your own dispatcher. Now you can choose any kitchen with eyes open. The framework is a tool; you are the cook. You understand what the framework is doing because you've done it by hand.

Concept 6 of 7

Framework Landscape

Framework Best for Trade-off
Anthropic Agent SDK Claude-native; hooks, sessions, subagents Claude-only
LangChain / LangGraph Multi-provider; large integration ecosystem Heavy abstractions, frequent breaking changes
CrewAI Team-of-specialists pattern, fast prototyping Less flexibility for custom flows
Raw SDK Learning, simple agents, debugging prod issues More boilerplate to write
Claude Code (long-horizon) Repository-scoped coding tasks Buy not build — not a framework to extend
Concept 6 of 7

Decision Framework

FUNCTION pick_framework(team, use_case):
  # Standardized on Claude? Use native SDK
  IF team.primary_model == "claude":
    RETURN "Anthropic Agent SDK"

  # Need to swap models routinely?
  IF team.needs_model_agnostic:
    RETURN "LangChain / LangGraph"

  # Team-of-specialists pattern?
  IF use_case == "role-based multi-agent":
    RETURN "CrewAI for prototyping"

  # Repository coding work?
  IF use_case == "codebase tasks":
    RETURN "Claude Code (buy not build)"

  # Learning / debugging / custom domain?
  RETURN "Raw SDK — maximum control"
Concept 6 of 7

Common Misconceptions

Myth: LangChain is always the right answer

LangChain's abstraction layer adds dependencies, hides what's happening under the hood, and introduces frequent breaking changes. If your team is standardized on one model, the vendor SDK beats a cross-provider framework on ergonomics, latency, and feature coverage.

Myth: Long-horizon coding agents are frameworks you build on

Claude Code, Aider, Devin — you use these, you don't extend them. They're pre-built agents for repository-scoped work. Buy them for code tasks; build your own for non-code domains (medical, legal, data engineering) where no pre-built tool covers your domain.

💡 Key Takeaway

Understand the raw loop first. Then choose your kitchen. The vendor SDK wins for Claude-committed teams. LangChain only when you genuinely need multi-provider. Raw SDK for learning and debugging. Long-horizon tools: buy, don't build, for code.

Concept 7 of 7

Your Personal Agent Development Roadmap

Developers who finish a course with enthusiasm but no plan build nothing in the following month. "I'll start this weekend" becomes "I'll start next month" becomes "I should retake the course." A structured 90-day plan breaks this cycle.

Five milestones, each building on the previous. The milestones are checkpoints, not deadlines. The goal is a compass bearing: build more capable, more reliable agents. Developers who set a concrete 90-day goal are 3× more likely to ship a project than those with vague intentions.

Concept 7 of 7

Analogy

A Compass Bearing, Not a Rigid Schedule
Before

A hiker heading north checks their compass every hour. They detour around a swamp, climb over a ridge, follow a stream for half a mile. The specific path changes constantly. The direction stays constant.

Pain

Without a bearing, hikers wander. Without a concrete plan, developers drift. Enthusiasm fades in two weeks. Vague goals ("build something cool with agents") evaporate under the pressure of actual work and competing priorities.

Mapping

Your compass bearing: build more capable, more reliable agents. The milestones below are the checkpoints, not the path. If terrain intervenes, reroute — but keep pointing north. Small, specific, and shipped beats large, vague, and unfinished every time.

Concept 7 of 7

The 5 Milestones

Concept 7 of 7

Pseudocode

# 90-day agent developer roadmap
FUNCTION run_roadmap():
  # Weeks 1-2: finish capstone
  capstone = complete_and_evaluate(m23_project)
  IF capstone.score < passing_threshold:
    iterate(capstone)

  # Month 1: first real deploy
  deploy = ship_to_production(capstone)
  observe(deploy, metrics=["latency", "cost", "errors"])

  # Months 2-3: novel project
  problem = pick_problem_you_care_about()
  novel_agent = build(problem)  # no brief given

  # Months 3-6: give back
  contribute_one_of([
    "open_source_tool",
    "blog_post_about_hard_problem",
    "help_someone_in_community"
  ])

  # Ongoing: go deep on one thread
  thread = pick_one(["multi-agent", "eval",
                        "safety", "domain-specific"])
  LOOP every_90_days:
    review_progress(thread)
    set_next_goal(thread)
Concept 7 of 7

Common Misconceptions

Myth: The goal must be ambitious to matter

"Deploy a document analysis agent that handles 10 queries/day for my team" is better than "build a revolutionary AI product." Small, specific, and shipped beats large, vague, and unfinished every single time. The ambition compounds once you're shipping regularly.

Myth: Staying current requires hours per week

Following even one community (Anthropic Developer Forum, AI Engineer Discord) for 30 minutes per week keeps you 6-12 months ahead of developers who only learn from courses and docs. MCP went from proposal to widespread adoption in under 6 months in 2024. You don't miss those waves reading one thread on Friday morning.

💡 Key Takeaway

Finish the capstone. Deploy something real. Build for a problem you care about. Contribute to the community. Go deep on one thread. Small and shipped beats large and planned. Your compass bearing: build more capable, more reliable agents.

Quick Quiz

Tap each answer to reveal.

1. What is the key difference between MCP and A2A?
MCP = agent↔tool (one agent connecting to databases, APIs, filesystems). A2A = agent↔agent (one agent delegating to another agent across process or org boundaries). Real systems use both — A2A on the outside, MCP on the inside.
2. When should you use Computer Use instead of regular tool use?
Only when the target system has no API, no MCP server, and no scriptable interface — legacy apps, vendor portals, GUI-only desktop software. Computer Use is slower, more expensive (~1,500-2,500 vision tokens per screenshot), and less reliable than a REST API call.
3. What is the "fail-safe defaults" principle in practice?
Fail open rather than fail closed. When uncertain: share what you know and defer the final decision to a human. The wrong response to uncertainty is "Error: unable to process request." The right response is "Here's what I found so far — escalating to a human reviewer for the rest."
4. What is a Skill in the Claude SDK and how does it differ from a tool?
A Skill is a SKILL.md file in .claude/skills/ with a description frontmatter and a procedure body. Only the description loads into base context — the body loads only when the agent decides it's relevant. A tool is a single function call (schema in, schema out). A Skill is a multi-step procedure with branches and gotchas, loaded just-in-time.
5. Why did this course teach raw API before any framework?
The developer who understands the raw loop can learn any framework in a day. The developer who learned a framework first often can't debug without it. Understanding the underlying while-loop + tool dispatch + stop_reason pattern means you're empowered, not dependent — you choose frameworks; they don't choose you.