Files
obsidian-sympozium/02-Architektura/Cykl życia Agent Pod.md
2026-03-25 00:05:57 +01:00

4.5 KiB

Cykl życia Agent Pod

#sympozium #architektura #agent-pod

Anatomia Agent Pod

Każdy agent run tworzy pod z następującymi kontenerami:

┌─────────────────────────────────────────────────────┐
│                    Agent Pod (Job)                    │
│                                                       │
│  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐ │
│  │   Agent      │  │  IPC Bridge │  │ Skill Sidecar│ │
│  │  Container   │  │  Sidecar    │  │ (kubectl,    │ │
│  │             │  │             │  │  helm, etc.) │ │
│  │ - LLM loop  │  │ - fsnotify  │  │             │ │
│  │ - Tool exec  │  │ - NATS pub  │  │ - /workspace │ │
│  │ - /skills    │  │ - /ipc      │  │ - RBAC scope │ │
│  └──────┬──────┘  └──────┬──────┘  └──────┬───────┘ │
│         │                │                 │          │
│    /workspace        /ipc (tmpfs)     /workspace     │
│    /skills (ro)      (RAM-backed)                     │
│    /ipc                                               │
│    /tmp                                               │
│                                                       │
│  ┌──────────────┐  ┌──────────────┐                  │
│  │ MCP Bridge   │  │  Sandbox     │                  │
│  │ (opcjonalny) │  │ (opcjonalny) │                  │
│  └──────────────┘  └──────────────┘                  │
└─────────────────────────────────────────────────────┘

Woluminy

Wolumin Typ Rozmiar Cel
workspace emptyDir 1Gi Współdzielone pliki robocze agent ↔ sidecary
ipc emptyDir (RAM) 64Mi JSON IPC: agent → bridge → NATS
skills Projected ConfigMap - Markdown instrukcje ze SkillPacks (read-only)
tmp emptyDir 256Mi Tymczasowe pliki (read-only root FS)

SecurityContext agenta

Hardened security context - patrz SecurityContext dla wyjaśnienia poszczególnych pól:

SecurityContext: &corev1.SecurityContext{
    ReadOnlyRootFilesystem:   &readOnly,     // true - root FS read-only
    AllowPrivilegeEscalation: &noPrivEsc,    // false - blokuje setuid
    Capabilities: &corev1.Capabilities{
        Drop: []corev1.Capability{"ALL"},    // Drop ALL Linux capabilities
    },
}

Zasoby

Kontener CPU Request CPU Limit Memory Request Memory Limit
Agent 250m 1 512Mi 1Gi
IPC Bridge 50m 100m 64Mi 128Mi
Sandbox 100m 500m 256Mi 512Mi

Fazy lifecycle

Pending → Running → Succeeded
                  → Failed
                  → Serving (tryb server)

Pending

  1. Walidacja polityki
  2. Tworzenie ServiceAccount sympozium-agent
  3. Tworzenie input ConfigMap (task, system prompt, memory)
  4. Rozwiązywanie sidecars i RBAC
  5. Tworzenie Job/Sandbox CR

Running

  • Polling statusu poda co 10 sekund
  • Monitorowanie completion/failure

Succeeded/Failed

  1. Zbieranie logów poda (wynik agenta)
  2. Ekstrakcja memory markers z outputu
  3. Aktualizacja memory ConfigMap
  4. Usuwanie efemerycznego RBAC
  5. Pruning historii (domyślnie 50 runów per instancja)
  6. Usuwanie finalizera

Serving (tryb server)

  • Deployment zamiast Job
  • Service dla routowania
  • Używany dla web-endpoint
  • Długo żyjący, nie jest garbage-collectowany po zakończeniu

Zmienne środowiskowe agenta

Zmienna Wartość
AGENT_RUN_ID Nazwa AgentRun CR
AGENT_ID ID konfiguracji agenta
SESSION_KEY Klucz sesji
INSTANCE_NAME Nazwa SympoziumInstance
MODEL_PROVIDER openai/anthropic/azure/ollama
MODEL_NAME Identyfikator modelu
THINKING_MODE off/low/medium/high
SPAWN_DEPTH Głębokość zagnieżdżenia sub-agenta
TRACEPARENT W3C traceparent (OTel)

Powiązane: Control Plane | Orchestrator - PodBuilder i Spawner | Skill Sidecars i auto-RBAC