85 lines
3.1 KiB
Markdown
85 lines
3.1 KiB
Markdown
# Sympozium vs kagent
|
|
|
|
#sympozium #porównanie #kagent
|
|
|
|
## Fundamentalna różnica
|
|
|
|
| | Sympozium | kagent |
|
|
|---|-----------|--------|
|
|
| **Model wykonania** | Ephemeral Pod (Job) per run | Persistent engine process |
|
|
| **Optymalizuje dla** | Izolacja, bezpieczeństwo, auditability | Niska latencja, konwersacja |
|
|
|
|
## Szczegółowe porównanie
|
|
|
|
| Wymiar | Sympozium | kagent |
|
|
|--------|-----------|--------|
|
|
| **Agent runtime** | Ephemeral Pod (K8s Job) | Long-running engine (Python/Go ADK) |
|
|
| **Tool isolation** | Sidecar per skill + ephemeral RBAC | In-process (MCP client w engine) |
|
|
| **Kernel sandbox** | gVisor/Kata via agent-sandbox + warm pools | Brak |
|
|
| **Multi-tenancy** | Namespace-per-tenant, per-instance RBAC, webhooks | Namespace-scoped CRDs |
|
|
| **Agent packaging** | PersonaPacks (bundle personas+skills+schedules+memory) | Individual Agent CRDs |
|
|
| **Persistent memory** | SQLite + FTS5 na PVC | Vector-backed (in-engine) |
|
|
| **Channels** | Telegram, Slack, Discord, WhatsApp (dedykowane Deployments + NATS) | Slack, Discord (in-engine) |
|
|
| **Scheduled runs** | SympoziumSchedule CRD + concurrency policies | Brak |
|
|
| **MCP** | MCPServer CRD + auto-discovery + tool filtering + managed deploy | MCP tools as CRDs |
|
|
| **Human-in-the-loop** | SympoziumPolicy CRD (admission-time) | Tool-level approve/reject w UI |
|
|
|
|
## Analiza: Tool Isolation
|
|
|
|
**To najważniejsza różnica z perspektywy bezpieczeństwa.**
|
|
|
|
### kagent (in-process):
|
|
```
|
|
Engine process (z credentials)
|
|
↓
|
|
Tool call: kubectl get pods
|
|
↓
|
|
Wykonanie w tym samym procesie z tymi samymi credentials
|
|
```
|
|
|
|
Jeśli LLM "przekona" engine do złośliwego tool call → pełne uprawnienia engine'a.
|
|
|
|
### Sympozium (sidecar):
|
|
```
|
|
Agent container (BEZ credentials K8s)
|
|
↓
|
|
Tool call: kubectl get pods
|
|
↓
|
|
/ipc/tools/cmd.json → IPC Bridge → NATS → Skill Sidecar
|
|
↓
|
|
Sidecar (z scoped, ephemeral RBAC: ONLY get pods)
|
|
```
|
|
|
|
Agent nigdy nie ma bezpośrednich credentials. Sidecar ma minimum wymaganych uprawnień.
|
|
|
|
## Kiedy który?
|
|
|
|
### Wybierz Sympozium gdy:
|
|
- Agenty wykonują cluster-admin operations (kubectl, helm, scaling)
|
|
- Multi-tenant environment (wiele zespołów, jeden klaster)
|
|
- Scheduled, unattended runs (nocne sweepy, triage alertów)
|
|
- Kanały poza Slack/Discord (Telegram, WhatsApp)
|
|
- Kernel-level sandboxing (untrusted agent code)
|
|
- Auditability i compliance requirements
|
|
|
|
### Wybierz kagent gdy:
|
|
- Low-latency conversational agents (brak cold-start)
|
|
- Google ADK, CrewAI, LangGraph integration
|
|
- Single-tenant experimentation
|
|
- A2A (Agent-to-Agent) protocol support
|
|
- Lżejszy setup
|
|
|
|
## Trade-off spectrum
|
|
|
|
```
|
|
Szybkość odpowiedzi ←─────────────────────────→ Izolacja/Bezpieczeństwo
|
|
kagent Sympozium
|
|
(persistent engine, (ephemeral pods,
|
|
fast responses, strong isolation,
|
|
shared process) per-run RBAC)
|
|
```
|
|
|
|
---
|
|
|
|
Powiązane: [[Model efemerycznych agentów]] | [[Skill Sidecars i auto-RBAC]] | [[Agent Sandbox - gVisor i Kata]]
|