initial commit
This commit is contained in:
105
04-Zarządzanie-Agentami/Scheduled Tasks - heartbeaty i swepy.md
Normal file
105
04-Zarządzanie-Agentami/Scheduled Tasks - heartbeaty i swepy.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Scheduled Tasks - heartbeaty i swepy
|
||||
|
||||
#sympozium #agenty #scheduling
|
||||
|
||||
## Koncepcja
|
||||
|
||||
Sympozium traktuje **agentów jak CronJob'y** - mogą być uruchamiane cyklicznie bez interwencji użytkownika. To enabler dla scenariuszy DevOps/SRE.
|
||||
|
||||
## Typy scheduli
|
||||
|
||||
| Typ | Cel | Typowy interwał | Przykład |
|
||||
|-----|-----|-----------------|---------|
|
||||
| **heartbeat** | Regularne sprawdzanie stanu | 5-30 min | "Sprawdź czy wszystkie pody są healthy" |
|
||||
| **scheduled** | Zaplanowane zadania | 1-24h | "Poranny raport z kosztów klastra" |
|
||||
| **sweep** | Przeglądy i cleanup | 1-7 dni | "Znajdź i zgłoś nieużywane PVC" |
|
||||
|
||||
## Self-scheduling
|
||||
|
||||
Wyjątkowa cecha: **agenty mogą same zarządzać swoimi schedulami**:
|
||||
|
||||
```
|
||||
Agent dostaje task: "Monitor klaster"
|
||||
↓
|
||||
Agent decyduje: "Powinienem sprawdzać co 15 minut"
|
||||
↓
|
||||
Agent wywołuje tool: schedule_task(
|
||||
action: "create",
|
||||
schedule: "*/15 * * * *",
|
||||
task: "Sprawdź stan podów w namespace production"
|
||||
)
|
||||
↓
|
||||
/ipc/schedules/create.json → IPC Bridge → NATS: schedule.upsert
|
||||
↓
|
||||
Schedule Router → tworzy SympoziumSchedule CRD
|
||||
↓
|
||||
SympoziumSchedule Controller → tworzy AgentRun co 15 min
|
||||
```
|
||||
|
||||
Agent może też: update, suspend, resume, delete swoje schedules.
|
||||
|
||||
## Concurrency control
|
||||
|
||||
```yaml
|
||||
spec:
|
||||
concurrencyPolicy: Forbid # Nie twórz nowego jeśli poprzedni działa
|
||||
```
|
||||
|
||||
| Polityka | Zachowanie | Use case |
|
||||
|----------|------------|----------|
|
||||
| **Forbid** | Pomiń trigger jeśli run active | Health checks (nie chcemy pile-up) |
|
||||
| **Allow** | Twórz nowy niezależnie | Niezależne analizy |
|
||||
| **Replace** | Anuluj stary, twórz nowy | Real-time monitoring |
|
||||
|
||||
## Memory context
|
||||
|
||||
```yaml
|
||||
spec:
|
||||
includeMemory: true # Inject MEMORY.md do każdego runu
|
||||
```
|
||||
|
||||
Dzięki temu scheduled run:
|
||||
1. Czyta pamięć z poprzednich runów
|
||||
2. Kontynuuje od miejsca gdzie skończył
|
||||
3. Buduje kontekst między uruchomieniami
|
||||
|
||||
Przykład: agent monitorujący w heartbeat co 30 min:
|
||||
- Run 1: "Wykryłem 3 restarty poda X"
|
||||
- Memory: "Pod X ma problem z restartami (3 do tej pory)"
|
||||
- Run 2: "Pamięć mówi o restartach poda X. Sprawdzam - już 7 restartów. Eskalaruję."
|
||||
|
||||
## Przykład z PersonaPack
|
||||
|
||||
```yaml
|
||||
personas:
|
||||
- name: sre-watchdog
|
||||
schedule:
|
||||
type: heartbeat
|
||||
interval: "5m"
|
||||
task: |
|
||||
Check cluster health:
|
||||
- Pod restarts > 3
|
||||
- Node conditions
|
||||
- PVC usage > 80%
|
||||
Report and create issues for anomalies.
|
||||
memory:
|
||||
enabled: true
|
||||
seeds:
|
||||
- "Track repeated issues for trend analysis"
|
||||
- "Escalate if same issue persists > 3 checks"
|
||||
```
|
||||
|
||||
## Architektoniczne znaczenie
|
||||
|
||||
Scheduled tasks transformują Sympozium z "narzędzia do chatowania z AI" w **autonomiczną platformę operacyjną**:
|
||||
|
||||
- Agenty działają 24/7 bez ludzkiej interwencji
|
||||
- Budują pamięć i kontekst
|
||||
- Mogą eskalować do ludzi (via kanały)
|
||||
- Mogą same modyfikować swoje harmonogramy
|
||||
|
||||
To "sel-healing infrastructure" driven by AI.
|
||||
|
||||
---
|
||||
|
||||
Powiązane: [[SympoziumSchedule]] | [[Persistent Memory]] | [[PersonaPacks - zespoły agentów]]
|
||||
Reference in New Issue
Block a user