May 17, 2026, 11:40 PM

This commit is contained in:
Paweł Domański
2026-05-18 06:40:19 +00:00
commit 64944cf004
896 changed files with 310709 additions and 0 deletions
+197
View File
@@ -0,0 +1,197 @@
Poniżej masz **jasne, techniczne, ale praktyczne wyjaśnienie jak działa `sessions_spawn` w OpenClaw****bez 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\]](https://learnopenclaw.com/advanced/sub-agents), [\[deepwiki.com\]](https://deepwiki.com/openclaw/openclaw/3.4.3-subagents-and-acp)
***
## 1️⃣ Co to jest subagent technicznie
Gdy wywołujesz `sessions_spawn`, OpenClaw:
1. Tworzy **nową sesję** o kluczu:
agent:<agentId>:subagent:<uuid>
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\]](https://deepwiki.com/openclaw/openclaw/3.4.3-subagents-and-acp)
***
## 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:
```text
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:
* domyślnie **zostaje zarchiwizowana** lub usunięta. [\[deepwiki.com\]](https://deepwiki.com/openclaw/openclaw/3.4.3-subagents-and-acp), [\[docs.openclaw.kr\]](https://docs.openclaw.kr/tools/subagents)
***
## 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\]](https://learnopenclaw.com/advanced/sub-agents)
***
### 🔹 `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\]](https://deepwiki.com/openclaw/openclaw/3.4.3-subagents-and-acp)
***
### 🔹 `model` / `thinking`
Możesz nadpisać model tylko dla tego zadania:
* np. research → tańszy model
* architektura → droższy, większe „thinking”
[\[deepwiki.com\]](https://deepwiki.com/openclaw/openclaw/3.4.3-subagents-and-acp)
***
### 🔹 `runTimeoutSeconds`
Twardy limit czasu.
* Po przekroczeniu → subagent jest ubijany
* Bardzo ważne w automatyzacjach
[\[deepwiki.com\]](https://deepwiki.com/openclaw/openclaw/3.4.3-subagents-and-acp)
***
### 🔹 `cleanup`
* `keep` (domyślnie) sesja zostaje w historii
* `delete` sprzątana po zakończeniu
[\[deepwiki.com\]](https://deepwiki.com/openclaw/openclaw/3.4.3-subagents-and-acp)
***
## 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\]](https://deepwiki.com/openclaw/openclaw/3.4.3-subagents-and-acp)
***
## 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\]](https://learnopenclaw.com/advanced/sub-agents)
***
## 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\]](https://learnopenclaw.com/advanced/sub-agents), [\[deepwiki.com\]](https://deepwiki.com/openclaw/openclaw/3.4.3-subagents-and-acp)
***
## 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*.