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

198 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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*.