# Sub-agenty i hierarchia #sympozium #agenty #sub-agents ## Koncepcja Sympozium wspiera **hierarchiczne spawning sub-agentów** - agent może tworzyć kolejne AgentRun CRs, które stają się jego "dziećmi". ## Konfiguracja ```yaml # W SympoziumInstance spec: agents: default: subagents: maxDepth: 2 # Max zagnieżdżenie (parent → child → grandchild) maxConcurrent: 5 # Max równoległych agent runów w drzewie maxChildrenPerAgent: 3 # Max dzieci per agent ``` ## Mechanizm ``` Parent AgentRun ├── spec.parent: null ├── Tworzy child AgentRun: │ spec: │ parent: │ runName: parent-run │ sessionKey: parent-session │ spawnDepth: 1 │ ↓ │ └── Child AgentRun │ ├── Tworzy grandchild: │ │ spec.parent.spawnDepth: 2 │ │ ↓ │ │ └── Grandchild AgentRun │ │ └── maxDepth=2 → NIE może tworzyć dalej │ └── Child może mieć max 3 siblings (maxChildrenPerAgent) └── Parent czeka na wyniki children ``` ## Policy enforcement `SubagentPolicySpec` w [[SympoziumPolicy]] enforcuje limity: - `maxDepth: 3` - admission webhook odrzuca AgentRun z spawnDepth > 3 - `maxConcurrent: 5` - controller sprawdza ile runów jest aktywnych ## Use case Sub-agenty umożliwiają **divide-and-conquer** workflows: ``` "Zoptymalizuj klaster" (parent) ├── "Sprawdź zużycie CPU per namespace" (child 1) ├── "Sprawdź zużycie pamięci per namespace" (child 2) └── "Sprawdź nieużywane PVC" (child 3) ``` Każdy child to osobny Job z własnym RBAC, izolacją i lifecycle. ## Śledzenie Env var `SPAWN_DEPTH` mówi agentowi na jakiej głębokości jest. Agent może podejmować decyzje na tej podstawie (np. nie tworzyć sub-agentów jeśli jest już głęboko). --- Powiązane: [[AgentRun]] | [[SympoziumPolicy]] | [[Model efemerycznych agentów]]