84 lines
2.1 KiB
Markdown
84 lines
2.1 KiB
Markdown
# Tryb Server vs Task
|
|
|
|
#sympozium #agenty #server-mode
|
|
|
|
## Dwa tryby wykonania
|
|
|
|
### Task mode (default)
|
|
- Kubernetes **Job** - run-to-completion
|
|
- Pod istnieje tylko przez czas wykonania
|
|
- Garbage collection po zakończeniu
|
|
- Dla: one-shot tasks, scheduled runs, channel messages
|
|
|
|
### Server mode
|
|
- Kubernetes **Deployment + Service**
|
|
- Pod żyje długo
|
|
- Nie jest usuwany po "zakończeniu"
|
|
- Dla: web endpoints, long-running services
|
|
|
|
## Kiedy server mode?
|
|
|
|
Server mode aktywowany gdy:
|
|
1. `AgentRun.spec.mode = "server"` (jawnie ustawione)
|
|
2. SkillPack ma `sidecar.requiresServer = true`
|
|
|
|
Typowy use case: **web-endpoint** skill, który eksponuje agenta jako HTTP API.
|
|
|
|
## Architektura server mode
|
|
|
|
```
|
|
SympoziumInstance z skill "web-endpoint"
|
|
↓
|
|
Instance Reconciler → tworzy AgentRun (mode: server)
|
|
↓
|
|
AgentRun Reconciler → reconcilePendingServer():
|
|
1. Deployment (zamiast Job)
|
|
2. Service (ClusterIP)
|
|
3. HTTPRoute (Envoy Gateway, jeśli dostępny)
|
|
4. Auto-generated API key (Secret)
|
|
↓
|
|
Web Proxy Sidecar:
|
|
- /v1/chat/completions (OpenAI-compat)
|
|
- /sse, /message (MCP protocol)
|
|
- Rate limiting
|
|
- Auth via API key
|
|
```
|
|
|
|
## Przepływ request'u w server mode
|
|
|
|
```
|
|
HTTP Client → Gateway → HTTPRoute → Service → Web Proxy Pod
|
|
↓
|
|
Web Proxy tworzy per-request AgentRun (mode: task!)
|
|
↓
|
|
Normalny flow: Job → Agent → wynik → Web Proxy → HTTP Response
|
|
```
|
|
|
|
Kluczowe: web proxy sidecar sam działa w server mode, ale **każdy request to osobny task-mode AgentRun** - zachowujemy ephemeral model dla izolacji.
|
|
|
|
## Reconciliation server mode
|
|
|
|
`reconcileServing()` (zamiast reconcileRunning):
|
|
- Sprawdza Deployment health
|
|
- Sprawdza Service health
|
|
- Reconciliuje HTTPRoute
|
|
- Requeue co 30 sekund
|
|
|
|
`reconcileDelete()` dla server mode:
|
|
- Delete Deployment
|
|
- Delete Service
|
|
- Delete HTTPRoute
|
|
- Delete API key Secret
|
|
|
|
## Faza Serving
|
|
|
|
```
|
|
AgentRun phases:
|
|
Pending → Serving (nie Running!)
|
|
Serving (długo) → Succeeded (gdy usunięty)
|
|
```
|
|
|
|
---
|
|
|
|
Powiązane: [[Web Endpoints - OpenAI-compat API]] | [[Cykl życia AgentRun]] | [[Model efemerycznych agentów]]
|