3.0 KiB
3.0 KiB
SympoziumInstance
#sympozium #crd #instance
Definicja
SympoziumInstance to centralny CRD reprezentujący jednego tenanta/użytkownika. Deklaruje konfigurację kanałów, agentów, skillów, polityk i memory.
Plik: api/v1alpha1/sympoziuminstance_types.go
Spec
apiVersion: sympozium.ai/v1alpha1
kind: SympoziumInstance
metadata:
name: my-agent
spec:
channels: # Podłączone kanały
- type: telegram
configRef:
secret: telegram-creds
accessControl:
allowedSenders: ["123456"]
agents:
default:
model: gpt-4.1
baseURL: "" # Override dla OpenAI-compat
thinking: "medium" # off/low/medium/high
sandbox:
enabled: false
agentSandbox: # Kernel-level isolation
enabled: true
runtimeClass: gvisor
warmPool:
size: 3
subagents:
maxDepth: 2
maxConcurrent: 5
maxChildrenPerAgent: 3
nodeSelector: # Pinning do GPU node'ów
gpu-type: "a100"
skills: # SkillPacks do montowania
- skillPackRef: k8s-ops
params:
CLUSTER: production
- skillPackRef: memory
policyRef: restrictive # Polityka bezpieczeństwa
authRefs: # Klucze API
- provider: openai
secret: openai-key
memory: # Legacy ConfigMap memory
enabled: true
maxSizeKB: 256
observability: # OpenTelemetry
enabled: true
otlpEndpoint: "otel-collector.observability.svc:4317"
mcpServers: # External tool providers
- name: github
toolsPrefix: gh
timeout: 30
Status
status:
phase: Running|Serving|Pending|Error
channels:
- type: telegram
status: Connected|Disconnected|Error
activeAgentPods: 2
totalAgentRuns: 150
webEndpoint:
status: Ready
url: "alice.sympozium.example.com"
Kluczowe koncepty
Multi-tenancy
Każda SympoziumInstance to osobny tenant z:
- Własnymi kanałami
- Własnymi credentials (AuthRefs)
- Własną polityką
- Własną memory
- Własnymi MCP serverami
Reconciliation
SympoziumInstanceReconciler zarządza:
- Channel Deployments - tworzy/aktualizuje Deployment per kanał
- Memory ConfigMap - legacy
<name>-memoryConfigMap - Memory PVC - SQLite DB dla memory SkillPack
- Memory Deployment - memory-server Deployment + Service
- Web Endpoints - server-mode AgentRun dla web-endpoint skill
Finalizery
Przy usunięciu instancji controller:
- Czyści channel deployments
- Czyści memory ConfigMap
- Czyści memory deployment
Channel Access Control
Kanały mogą ograniczać kto może komunikować się z agentem:
allowedSenders- whitelist ID nadawcówdeniedSenders- blacklist (nadpisuje whitelist)allowedChats- whitelist ID czatów/grupdenyMessage- wiadomość dla odrzuconych
Powiązane: AgentRun | PersonaPack | SympoziumPolicy | Kanały - Telegram Slack Discord WhatsApp