76 lines
3.5 KiB
Markdown
76 lines
3.5 KiB
Markdown
# Sympozium vs frameworki in-process
|
|
|
|
#sympozium #porównanie #langchain #crewai
|
|
|
|
## Kontekst
|
|
|
|
Frameworki in-process (LangChain, CrewAI, AutoGen, LlamaIndex) uruchamiają agentów w jednym procesie. Sympozium reprezentuje podejście "infrastructure-native".
|
|
|
|
## Porównanie architektoniczne
|
|
|
|
| Aspekt | In-process frameworks | Sympozium (K8s-native) |
|
|
|--------|----------------------|------------------------|
|
|
| **Wykonanie agenta** | Shared memory, single process | Ephemeral **Pod** per invocation |
|
|
| **Orkiestracja** | In-process registry + queue | **CRD-based** + controller reconciliation |
|
|
| **Sandbox** | Docker sidecar (long-lived) | Pod **SecurityContext** + Agent Sandbox |
|
|
| **IPC** | In-process EventEmitter | Filesystem sidecar + **NATS JetStream** |
|
|
| **Tool gating** | In-process pipeline | **Admission webhooks** + SympoziumPolicy |
|
|
| **Persistent memory** | Files on disk | **SQLite + FTS5** na PVC |
|
|
| **Scheduled tasks** | Cron jobs / external | **SympoziumSchedule CRD** |
|
|
| **State** | SQLite + flat files | **etcd** + PostgreSQL |
|
|
| **Multi-tenancy** | Single-instance file lock | **Namespaced CRDs** + RBAC |
|
|
| **Scaling** | Vertical only | **Horizontal** - stateless control plane |
|
|
| **Channels** | In-process per channel | Dedicated **Deployment** per channel |
|
|
| **External tools** | Plugin SDKs | **MCPServer CRD** + auto-discovery |
|
|
| **Observability** | Application logs | kubectl, OTel, TUI, Web UI |
|
|
|
|
## Dlaczego "infrastructure-native"?
|
|
|
|
Sympozium nie implementuje orkiestracji w kodzie aplikacji. Zamiast tego **mapuje koncepty agentowe na prymitywy Kubernetes**:
|
|
|
|
```
|
|
LangChain concept → Sympozium concept → K8s primitive
|
|
─────────────────────────────────────────────────────────────
|
|
Agent → AgentRun → Job/Pod
|
|
Tool → SkillPack sidecar → Container + RBAC
|
|
Memory → Memory server → Deployment + PVC
|
|
Chain → Sub-agents → Parent-child Jobs
|
|
Guard rail → SympoziumPolicy → Admission Webhook
|
|
Scheduler → SympoziumSchedule → CRD + Controller
|
|
Callback handler → NATS events → JetStream pub/sub
|
|
Vector store → SQLite FTS5 → PVC-backed DB
|
|
```
|
|
|
|
## Analiza trade-offs
|
|
|
|
### Complexity
|
|
- **In-process:** Prosty pip install, kilka linii Pythona
|
|
- **Sympozium:** K8s cluster, Helm install, CRDs, controllers
|
|
|
|
### Flexibility
|
|
- **In-process:** Dowolny Python code, łatwe prototyping
|
|
- **Sympozium:** Deklaratywny YAML, ograniczony do tego co CRDs oferują
|
|
|
|
### Production readiness
|
|
- **In-process:** Trzeba samemu zbudować izolację, scaling, monitoring
|
|
- **Sympozium:** Built-in isolation, scaling, monitoring, multi-tenancy
|
|
|
|
### Debugging
|
|
- **In-process:** Standard Python debugger, print statements
|
|
- **Sympozium:** kubectl logs, OTel traces, TUI, CRD status
|
|
|
|
## Kiedy co?
|
|
|
|
| Scenariusz | In-process | Sympozium |
|
|
|-----------|------------|-----------|
|
|
| Prototyping | Idealne | Overkill |
|
|
| Single developer | Idealne | Za dużo overhead |
|
|
| Production multi-tenant | Trudne | Idealne |
|
|
| Cluster operations | Niebezpieczne | Bezpieczne |
|
|
| Scheduled automation | Wymaga dodatkowej infra | Built-in |
|
|
| Compliance/audit | Wymaga budowy | Native |
|
|
|
|
---
|
|
|
|
Powiązane: [[Sympozium vs kagent]] | [[Kluczowe decyzje projektowe]] | [[Model efemerycznych agentów]]
|