PTENES
MODULE 1.3 · Track 1 · Fundamentals

🧩 Agent × Subagent × Skill

Three words that are often confused—and that confusion is costly. Here, you'll clearly distinguish the three primitives: who has their own context, who runs in parallel, who chooses a model, and who can call whom. This is the track's core module.

6
Topics
~30
Minutes
Basic
Level
Core
Type

Think of a professional kitchen. The agent is the chef who talks with you the whole time and leads the way. The skill is a recipe the chef pulls from the drawer: instructions that go at their workstation and guide the next action. The subagent is a cook sent to a separate kitchen with a well-defined task—they work alone and return only when the dish is ready. Same building, different roles; mixing them up delays dinner.

Agent (chat) you talk to it all the time • shared context • leads the conversation • uses skills and launches subagents • built-in or custom (.md) Skill instruction / recipe • SAME context • guides the agent's actions enters Subagent separate workspace, closed task • OWN and clean context • runs in parallel • may have its own model • returns only the report briefing → ← report

↑ The three primitives side by side. Notice: the skill runs in the same context; the subagent works in a separate context and returns only the summary.

Detailed content

1

🧩 The three primitives in one sentence

Before any table, write down a pocket definition for each one. If you take only this away from the module, it will already be worth your time: the agent leads, the skill instructs, the subagent runs separately.

🎼

Agent

O chat you talk to. It leads the conversation, uses skills, and launches subagents. It can be built-in or a .md yours.

📜

Skill

One instruction block (a recipe) that goes in in the same context from the agent and guides the next action. It doesn't have its own window.

🛰️

Subagent

One worker triggered by the agent, which runs on a own, separate window and returns only a report.

💡 The mental shortcut that clears up 90% of the confusion

Ask: "does this open a new window or not?" Skill doesn't open — it is text that enters the current context. A subagent opens — is a separate session. The agent is the window you're already in.

What it is:

the pocket definition of the three primitives — agent (leads), skill (instructs in the same context), subagent (executes in a separate context).

Why learn:

almost every beginner mistake is using one where the other would fit: creating a subagent for something that should be a skill, or expecting a skill to run in parallel. The right sentence prevents that.

Key concepts:

agent = chat · skill = instruction in context · subagent = its own window · filter question "opens a new window?".

2

🪟 Context: dedicated and clean × shared

This is the axis that matters most. The skill runs in shared context — everything it does and reads stays in the yours window, adding tokens. The subagent runs in a clean, own context — it uses as many tokens as it needs internally, and your window only receives the report at the end.

📜 Skill — shared context

  • •Everything it reads and writes stays in the yours session
  • •Adds to your context usage (the bar goes up)
  • •Great when you wants the result in the workflow
  • •Bad if the task dumps a lot of things you won't reread

🛰️ Subagent — its own context

  • •Separate window, isolated from your conversation
  • •Can burn 200k tokens and no keep up with your pace
  • •Its session disappears when it ends (disposable)
  • •You’re left with just the conclusion, without the clutter

📊 The same work, two context costs

Imagine “read 40 files and find the bug.” How skill, all 40 files enter your window — it can get heavy. Since subagent, all 40 files stay in its window; you get "it’s at auth.js:88" and your progress bar barely moves. That’s exactly reason #1 for subagents—the topic of module 1.2.

What it is: the context axis — a skill shares your window; a subagent has its own clean window.
Why learn: is the criterion that decides between the two in practice: if the output clutters your context and you won’t read it again, it’s a subagent.
Key concepts: shared × own context · context protection · disposable session · report back.
3

⚡ Parallelism: many at once vs. one at a time

Subagents run in parallel: the agent can launch five at once, each in its own window, all at the same time. Skill isn't parallel — it is an instruction that runs in the thread of your conversation, one step at a time. Wanting "five skills at once" is a sign that the work belonged to subagents.

A

Skill: one step in your thread

Sequential by nature.

The skill injects instructions and the agent acts immediately, in the same session. If you have three recipes, it follows one, then the next—there’s no “three at once.”

B

Subagents: many, side by side

True parallelism.

The agent launches five subagents at once — for example, reviewing a text from five perspectives. All five work simultaneously; the agent launches them, collects and combines their five reports at the end (they don’t talk to each other — a 1-to-1 relationship from module 1.1).

What it is: the parallelism axis — subagents can run several at a time; skills run in the conversation thread.
Why learn: when you need "N things at the same time," the answer is a subagent; insisting on a skill here just serializes the work.
Key concepts: parallel × sequential · subagent fan-out · the agent orchestrates · no side conversations.
4

🎚️ Model: own × inherited from the agent

A subagent can choose its own model — run Haiku for a cheap scan, or Opus for heavy reasoning — regardless of the agent's model. A skill doesn't choose a model: it’s an instruction, so it runs on the model that already is driving the conversation. A skill always inherits it; the subagent can switch.

🛰️ Subagent — its own model

  • •Define model: in its frontmatter
  • •Haiku for scanning · Sonnet for building · Opus for deciding
  • •Or inherit — inherits the purpose-built agent's model
  • •It’s the foundation of savings (the topic of Track 3)

📜 Skill — always inherits

  • •No model field — it doesn't have its own window
  • •Runs on the model in the conversation at that moment
  • •Want another model? Change the agent’s model, not the skill’s
  • •Simplicity: it's just text guiding the action

💡 Why this is a superpower

An own model is what lets a expensive agent (Opus) coordinate a low-cost fleet (Haiku): the manager thinks, the workers execute at a fraction of the cost. A skill doesn't give you that control — and that's fine, because it does a different job.

What it is: the model axis — a subagent chooses its own (or deliberately inherits one); a skill always runs on the agent’s model.
Why learn: controlling the model through a subagent is what enables tailored savings and performance; knowing that a skill doesn't do this prevents false expectations.
Key concepts: custom vs. inherited model · scope model: · expensive lead + cheap fleet · inherit.
5

🔀 Who calls whom (the rule that catches everyone)

Here's the most overlooked rule — and the one that most often breaks orchestration designs. Skill and agent call each other both ways: the agent uses a skill, and a skill can launch a subagent. But a agent doesn't call another agent straightforward: subagents don't invoke subagents. If you need a sequence A→B→C, the main agent handles the chaining.

Agent the main chat Skill instruction Subagent Aown window Subagent Bown window uses ⇄ guide can trigger subagent does NOT call subagents

✓ Calls that happen

  • ✓Agent → uses a skill
  • ✓Agent → triggers a subagent
  • ✓Skill → can trigger a subagent
  • ✓Subagent → uses skills within from their window

✗ What doesn’t work

  • ✗Subagent A → subagent B (without going through the agent)
  • ✗Two subagents “combining” with each other
  • ✗A skill running “on its own” without an agent
  • ✗You typing directly to a subagent

⚠️ The most common orchestration mistake

Designing “the research subagent calls the writing subagent, which calls the review subagent.” It doesn’t work: who chains is the agent. It receives A's report, decides, and only then launches B. A subagent isn't a node that commands another node — it's a leaf that responds to the agent.

What it is: the call graph — skill↔agent in both directions; an agent launches a subagent; a subagent does not launch another subagent.
Why learn: is the rule that defines how to orchestrate: every sequence goes through the agent. Ignoring this leads to designs that don’t run.
Key concepts: skill ⇄ agent · agent → subagent · agent ⇏ agent · chaining through an agent.
6

📊 The canonical table: where it lives and when to prefer it

Everything we’ve seen fits in a single table — the backbone of this module. Keep this image in mind: it answers at a glance which primitive to use. Notice the last line (when to prefer): it’s what you’ll refer to whenever you’re unsure.

Axis 🎼 Agent (built-in) 📜 Skill 🛰️ Subagent
Context Shared — it’s the window you’re in Shared — enters the agent’s context Proprietary and clean — separate, disposable window
Parallelism It’s what orchestrates the parallel work No — it runs in the conversation thread Yes — several at the same time
Model The model for your session Inherits — runs on the agent’s model Proprietary — choose (or inherit)
Who calls whom Uses skills · launches subagents · doesn't call another agent Called by the agent · can launch a subagent Triggered by the agent · doesn't launch another subagent
Where it lives Built-in (already included) or .claude/agents/*.md .claude/skills/<nome>/SKILL.md .claude/agents/*.md (project or global)
What it returns The ongoing conversation with you Actions/effects in the current flow One report — not the entire session
When to prefer Always present—it’s the conductor of the work Standardize a procedure in the workflow (steps, rules, format) you want to see happen Isolate heavy or parallel work whose output pollutes the context and you only want the conclusion

↑ The "When to prefer" line is your decision map: procedure in the workflow → skill; heavy, isolated, or parallel work → subagent.

💡 Final rule of thumb

Want to guide how the agent does something in your workflow? Skill. Want to outsource a heavy/parallel task and receive only the result? Subagent. Want to discuss and coordinate? You’re already in the agent. The three complement each other—they don’t compete.

What it is: the canonical table comparing the three primitives across context, parallelism, model, calls, where they live, and when to prefer each.
Why learn: is the quick reference for the entire course—whenever you wonder “which one should I use?”, the answer is here.
Key concepts: decision table · where it lives (SKILL.md × agents/*.md) · procedure in the workflow × isolated work · complementary primitives.
📄

Real example: the SAME job, as a skill × as a subagent

Nothing makes the difference clearer than taking a single task — "run the release checklist"—and writing it both ways. Notice: the instruction content is almost the same; what changes is where they run e what you get back.

.claude/skills/release-check/SKILL.md as a SKILL
--- # frontmatter de SKILL
name: release-check
description: Roda a checklist de release no
  fluxo atual. Use quando o usuário disser
  "checar release" ou "pronto pra publicar".
# sem campo model: herda o do agente
---

# corpo: guia a ação do AGENTE, aqui mesmo
Ao ser acionada, no contexto atual:
1. Conferir CHANGELOG e versão.
2. Rodar os testes e mostrar o resultado.
3. Listar pendências aqui na conversa.

Tudo acontece na janela do usuário.

→ The steps run in your context. You see everything in the flow. Good when you want to follow along and act together.

.claude/agents/release-checker.md as a SUBAGENT
--- # frontmatter de SUBAGENTE
name: release-checker
description: Roda a checklist de release numa
  janela própria e devolve só um resumo. Use
  pra checar release sem poluir o contexto.
tools: Read, Grep, Bash    # só o necessário
model: haiku             # barato: é varredura
---

# corpo: roda na janela DELE, isolado
You are a release checker.
1. Conferir CHANGELOG e versão.
2. Rodar os testes.
3. Devolver só: pronto? sim/não + pendências.

Reporte um resumo. Não cole logs brutos.

→ The steps run in their window. You get only "done: no — 2 tests missing". Good when the output is long and you don't want to reread it.

🔍 What changes between the two files

Same logic, three differences that reveal the primitive: a folder (skills/<nome>/SKILL.md × agents/<nome>.md); the fields (the skill doesn't have model or tools; the subagent has both, because its own window needs to declare tools and model); and the output (a skill shows everything in the flow; a subagent returns a summary and disappears).

⌨️

Ready-made prompts (copy and paste)

Three prompts to help you feel the difference firsthand: one triggers a skill (in the workflow), one delegates to a subagent (isolated), and one asks the agent to choose between the two — that way you can hear the reasoning.

Prompt 1 — trigger a skill (in the workflow) shared context
Rode a checklist de release aqui mesmo, passo a passo,
me mostrando cada item conforme for conferindo. Quero
acompanhar no fluxo, não em separado.
Prompt 2 — delegate to a subagent (isolated) own context
Abra um subagente pra rodar a checklist de release numa
janela própria e me devolva só: pronto pra publicar
(sim/não) + a lista de pendências. Não despeje os logs
no meu contexto.
Prompt 3 — let the agent decide skill × subagent
Preciso revisar 25 arquivos atrás de senhas hardcoded.
Isso é melhor como skill (no meu fluxo) ou como subagente
(janela própria)? Decida e me explique em 2 linhas por que.
🖥️

Simulated screen: skill in the workflow × parallel subagent

Side by side, the same work in both modes. At left, the skill runs within from your session — you see every step and the context bar rising. At right, the subagent runs in a separate session—you only see its panel, and the your context barely changes.

your session · skill: release-check in the workflow
you > run the release checklist here
↳ release-check skill activated (same context)
1. CHANGELOG checked — v2.4.0 ✓
2. tests: 142 passing, 2 failing ✗
3. outstanding items listed below…
— all of this entered YOUR window —
agent · Sonnet
your context
58%
subagent: release-checker separate session
you > open a subagent to check the release
↳ subagent launched (separate window · Haiku)
checking…
88k tok
(the logs appear in ITS window)
↳ report: ready? no — 2 failing tests
— you received only the summary —
agent · Sonnet
your context
9%

↑ Illustrative recreation (not a real screenshot). Same job: the skill fills your context (58%); the subagent preserves it (9%) because the clutter stayed in its window.

🎯

Exercise: classify 6 scenarios

For each scenario below, decide: is it skill, subagent or simply the agent in a conversation? Write your answer before opening the answer key.

The 6 scenarios

  1. Standardize how the assistant formats every commit (message, co-author, tone) — you want to see it happen in the workflow.
  2. Search through 50 PDFs of contract behind a clause and get only "found it on page X of each".
  3. Review a text about 5 different perspectives at the same time (beginner, technical, editor…).
  4. Help you think aloud about which architecture to choose, exchanging ideas.
  5. Whenever you ask for “deploy,” run a fixed sequence of checks in the workflow before proceeding.
  6. Run a inexpensive security checker (Haiku) across 30 files without filling up your context.

✅ Verification criteria — how to know you got it right

Use these three questions, in this order, for each scenario:

  • 1.Does it open a new window? If the output is large/parallel and you only want the conclusion → subagent.
  • 2.Is this a procedure you want to see in the workflow? Standardize steps/rules/format in the current context → skill.
  • 3.Is it conversation/coordination? Think together, decide, exchange ideas → the agent same.

You got it right if your justification mentions context (shared × custom) and/or parallelism — not just a "feeling".

Annotated answer key

  • 1 → Skill. Format procedure in the workflow; you want to review and adjust it. Same context.
  • 2 → Subagent. 50 files is a heavy read that shouldn't clutter your context; you only want the conclusion.
  • 3 → Subagent (×5, in parallel). "5 at the same time" only works with subagents; each in its own window.
  • 4 → Agent. It’s dialogue and reasoning with you — it needs the full conversation; you can’t delegate it.
  • 5 → Skill. Fixed sequence of steps in the workflow, triggered by an event ("deploy"). Shared context.
  • 6 → Subagent (Haiku). Parallel, low-cost work across 30 files, isolated, with its own model — protects the context.

Scorecard: 5–6 correct = you've internalized the key dimensions. 3–4 = review context and parallelism. 0–2 = reread the table in topic 6.

✅ Module summary

✓
Three primitives — the agent leads, the skill provides context-specific instructions, the subagent executes in a separate window.
✓
Context — a skill shares your window; a subagent has its own clean one (the axis that matters most).
✓
Parallelism — subagents run several at once; a skill runs in the conversation thread.
✓
Model — a subagent chooses its own (or inherits one); a skill always runs on the agent’s model.
✓
Who calls whom — skill ⇄ agent; agent → subagent; an agent doesn’t call another agent.
✓
Canonical table — procedure in the workflow → skill; heavy or isolated parallel work → subagent.

Next module:

1.5 — Built-in × Custom. The subagents that come ready-made × the ones you create, and why Claude only reads the name+description until it decides (progressive disclosure).