Přeskočit na obsah

Lekce 02.11: Subagenti (Subagents)

⏱️ 3 min čtení • Lekce 02.11

🧠 Mentální model & teoretický rozbor

Subagenti představují nejmocnější architektonický nástroj pro ochranu Smart Zone hlavního sezení.

HLAVNÍ SEZENÍ (Orchestrátor / Architekt) - Udržováno čisté ve SMART ZONE
│
├── Potřeba prozkoumat 50 souborů v legacy modulu
│
└── 🚀 Vyvolání SUBAGENTA (Izolované, čerstvé sezení)
│ • Subagent dostane čisté kontextové okno (0 tokenů)
│ • Otevře 50 souborů, spálí 60 000 tokenů balastu
│ • Provede syntézu a vytvoří stručný 5řádkový report
▼
Návrat pouze čistého extraktu zpět do hlavního sezení (300 tokenů)

Bez subagentů by se oněch 60 000 tokenů ze všech 50 souborů nasypalo do vašeho hlavního kontextu a okamžitě by ho uvrhlo do Dumb Zone. Díky subagentům zůstává hlavní inženýrská smyčka lehká, bystrá a soustředěná.


🏢 Realistický scénář z praxe

Refaktorujete monorepo s 15 balíčky: Chcete zjistit, které balíčky stále importují starou verzi autentizační utility z @acme/legacy-auth.

  • Bez subagenta: Hlavní agent otevře desítky souborů package.json a zdrojáků. Váš hlavní kontext je zaplaven balastem.
  • Se subagentem: Hlavní agent vyvolá subagenta: „Prohledej všechny package.json v balíčcích a vrať seznam těch, které obsahují @acme/legacy-auth.“
  • Subagent vrátí: „Nalezeno ve 3 balíčcích: web, admin, api-gateway.“
  • Hlavní agent okamžitě pokračuje v cílené úpravě pouze těchto 3 míst.

💻 Konkrétní ukázky kódu & promptů

Jak fungují subagenti v Antigravity vs. Claude Code:

  • V Antigravity (agy): Antigravity má nativní orchestraci subagentů. Můžete vyvolat specializovaného research subagenta běžícího na Gemini Flash, který má read-only nástroje (ViewFile, GrepSearch, GlobTool), prozkoumá kód a vrátí strukturovaný extrakt do hlavního orchestrátora bez znečištění kontextu.
  • V Claude Code (claude): Claude Code spouští subagenty přes vestavěný nástroj Task (definované v .claude/agents/<name>.md), typicky směrované na Claude 3.5 Haiku.

Ukázka direktivy v AGENTS.md / GEMINI.md:

## Pravidla pro průzkum rozsáhlého kódu
Kdykoliv je potřeba prozkoumat více než 5 souborů pro zjištění závislostí nebo nalezení příkladů:
1. VŽDY deleguj tuto úlohu na subagenta (research agent na modelu Flash).
2. Zadání pro subagenta musí být striktně ohraničené a vyžadovat POUZE strukturovaný souhrn.
3. Nevtahuj do hlavního kontextu celé zdrojové kódy nalezených souborů.

Ukázka výzvy pro aktivaci subagenta v sezení:

Použij subagenta pro průzkum adresáře src/legacy.
Úkol pro subagenta:
- Najdi všechny soubory, které exportují funkce začínající na `deprecated_`.
- Vrať pouze markdown tabulku: Název souboru | Název funkce | Odhadovaná náročnost refaktoru.

⚠️ Analýza selhání & Anti-patterns

Anti-pattern: Přidělení implementačních pravomocí neřízenému subagentovi

Někteří vývojáři nechají subagenta samostatně upravovat kód na disku bez dohledu:

  • Subagent nemá k dispozici kompletní kontext hlavního sezení ani architektonické souvislosti.
  • Může přepsat soubory způsobem, který rozbije rozpracovanou práci v hlavní větvi.
  • Pravidlo: Subagenti jsou primárně určeni pro čtení, rešerši, audit a syntézu. Zápis a finální integraci provádí hlavní orchestrátor ve Smart Zone pod vaším dohledem!

🛠️ Inženýrský postup krok za krokem (Playbook)

  1. Identifikujte „špinavou práci“: Kdykoliv hrozí čtení mnoha souborů, velkých logů nebo rozsáhlé dokumentace, delegujte ji na subagenta.
  2. Definujte přesný formát výstupu: Požadujte po subagentovi JSON, markdown tabulku nebo číslované odrážky.
  3. Zpracujte výsledek v hlavním sezení: Využijte čistý extrakt a proveďte chirurgický zásah ve Smart Zone.

🧪 Praktické cvičení (Hands-on Lab)

Úkol:

Ověřte si princip izolace kontextu pomocí subagenta.

Kroky:

  1. Zadejte agentovi: „Použij subagenta k prohledání všech testovacích souborů v projektu a zjisti, které z nich používají knihovnu vitest a které jest.“
  2. Sledujte, jak se spustí izolované sezení subagenta.
  3. Všimněte si, že po dokončení se ve vašem hlavním kontextu objeví pouze stručný seznam a celkový počet tokenů hlavního sezení téměř nevzrostl!