Files
DBAdmin/inbox/session_spawn.md
2026-05-18 06:40:19 +00:00

5.8 KiB
Raw Permalink Blame History

Poniżej masz jasne, techniczne, ale praktyczne wyjaśnienie jak działa sessions_spawn w OpenClawbez lania wody, krok po kroku, z mentalnym modelem „co się naprawdę dzieje pod maską”.


Jak działa sessions_spawn w OpenClaw

TL;DR

sessions_spawn to mechanizm delegowania pracy do tymczasowego subagenta, który:

  • działa równolegle do głównego agenta,
  • ma własną sesję i kontekst,
  • nie blokuje głównej rozmowy,
  • po zakończeniu odsyła wynik do agenta nadrzędnego,
  • jest automatycznie sprzątany (chyba że ustawisz inaczej).

To dokładnie model: manager → deleguje task → dostaje raport. [learnopenclaw.com], [deepwiki.com]


1️⃣ Co to jest subagent technicznie

Gdy wywołujesz sessions_spawn, OpenClaw:

  1. Tworzy nową sesję o kluczu: agent::subagent:

  2. Ta sesja:

    • ma oddzielne okno kontekstu (własne tokeny),
    • dziedziczy SOUL / AGENTS / USER agenta nadrzędnego,
    • nie dostaje narzędzi sesyjnych (np. nie może listować innych sesji),
    • nie ładuje MEMORY.md (bezpieczna izolacja).
  3. Subagent wykonuje jedno zadanie i kończy run. [deepwiki.com]


2️⃣ Co dokładnie robi sessions_spawn (flow runtime)

Krok po kroku (runtime):

  1. Agent nadrzędny decyduje:

    „To zadanie jest długie / wolne / równoległe — deleguję”.

  2. Agent wywołuje tool:

    sessions_spawn
    
  3. OpenClaw:

    • natychmiast zwraca runId (nonblocking),
    • główny agent działa dalej.
  4. Subagent:

    • dostaje instrukcję (task),
    • pracuje w tle,
    • używa modeli / narzędzi zgodnie z polityką.
  5. Po zakończeniu:

    • OpenClaw wysyła announce message do sesji rodzica:
      • wynik,
      • status (success / failed / timeout),
      • krótkie statystyki.
  6. Sesja subagenta:


3️⃣ Najważniejsze parametry sessions_spawn

Najczęściej używane (i sensowne w produkcji):

🔹 task (wymagane)

Co subagent ma zrobić.

  • Im bardziej precyzyjne, tym lepiej
  • Traktuj jak „ticket w JIRA”

[learnopenclaw.com]


🔹 label (opcjonalne, ALE BARDZO POLECANE)

Czytelna nazwa zadania, np.:

  • css-fix-header
  • research-competitors
  • db-review-migrations

Pomaga w logach, debugowaniu i /subagents list. [deepwiki.com]


🔹 model / thinking

Możesz nadpisać model tylko dla tego zadania:

  • np. research → tańszy model
  • architektura → droższy, większe „thinking”

[deepwiki.com]


🔹 runTimeoutSeconds

Twardy limit czasu.

  • Po przekroczeniu → subagent jest ubijany
  • Bardzo ważne w automatyzacjach

[deepwiki.com]


🔹 cleanup

  • keep (domyślnie) sesja zostaje w historii
  • delete sprzątana po zakończeniu

[deepwiki.com]


4️⃣ Czego subagent NIE MOŻE

To kluczowe (i często źle rozumiane):

Nie ma własnego workspace
Nie zapisuje do MEMORY.md
Nie ma trwałej tożsamości
Nie zarządza innymi sesjami
Nie powinien podejmować decyzji strategicznych

Subagent:

robi robotę i wraca z wynikiem. [deepwiki.com]


5️⃣ Kiedy OpenClaw SAM wybiera sessions_spawn

Dobrze napisany agent (np. Twój COOorchestrator) używa sessions_spawn, gdy:

  • task jest długi (research, analiza),
  • task jest równoległy (N podobnych rzeczy),
  • task używa wolnych narzędzi (web, pliki),
  • wynik da się jasno opisać (lista, raport, JSON).

Dokładnie ten pattern jest opisany w oficjalnych materiałach o subagentach. [learnopenclaw.com]


6️⃣ Przykład mentalny (bez kodu)

Użytkownik:
„Zbadaj 5 konkurentów i porównaj ich featurey”

Bez sessions_spawn:

  • agent robi wszystko sekwencyjnie,
  • długo,
  • blokuje rozmowę.

Z sessions_spawn:

  • agent tworzy 5 subagentów:
    • research-competitor-1
    • research-competitor-2
  • każdy robi swoje,
  • agent nadrzędny zbiera wyniki i składa raport.

To główna przewaga OpenClaw nad „zwykłym chatbotem”. [learnopenclaw.com], [deepwiki.com]


7️⃣ Złota reguła projektowa (z naszej rozmowy)

Agent = rola + pamięć + odpowiedzialność
Subagent = task + wynik + znikam

Jeśli:

  • potrzebujesz pamięci → Agent
  • potrzebujesz wyniku → sessions_spawn

Jeśli chcesz, w kolejnym kroku mogę:

  • rozpisać konkretny playbook: CTO / CMO / CRO → jakie taski spawnują
  • albo dać Ci gotowy snippet do AGENTS.md, który uczy agenta kiedy ma używać sessions_spawn
  • albo przeanalizować Twoje usecasey (DB / infra / automatyzacja) i powiedzieć gdzie spawn ma sens, a gdzie nie.