4.1 KiB
PersonaPack
#sympozium #crd #personapack
Definicja
PersonaPack to CRD bundlujący wiele pre-konfigurowanych person agentów. Aktywacja packa powoduje automatyczne tworzenie SympoziumInstances, Schedules i memory seeds.
Plik: api/v1alpha1/personapack_types.go
Analogia
PersonaPack jest dla agentów AI tym, czym Helm Chart dla aplikacji K8s - deklaratywny bundle który controller "rozpakowuje" w konkretne zasoby.
Spec
apiVersion: sympozium.ai/v1alpha1
kind: PersonaPack
metadata:
name: platform-team
spec:
enabled: true # Dopóki false - katalog; true - controller stampuje
description: "Core platform engineering team"
category: platform
version: "1.0.0"
authRefs: # Credentials (ustawiane przy aktywacji)
- provider: openai
secret: platform-team-openai-key
policyRef: restrictive # Wspólna polityka
baseURL: "" # Override dla lokalnych providerów
channelConfigs: # Mapowanie kanał → secret
telegram: telegram-creds
skillParams: # Parametry per-skill
github-gitops:
REPO: my-org/my-repo
taskOverride: "Focus on reducing MTTR" # Nadpisanie celów
excludePersonas: # Wyłączone persony
- cost-analyzer
channelAccessControl:
telegram:
allowedSenders: ["123456"]
agentSandbox: # Kernel-level isolation dla wszystkich
enabled: true
runtimeClass: gvisor
personas:
- name: security-guardian
displayName: "Security Guardian"
systemPrompt: |
You are a Kubernetes security specialist...
model: claude-sonnet-4-20250514
skills:
- k8s-ops
- sre-observability
toolPolicy:
allow: [execute_command, read_file, fetch_url]
channels:
- telegram
schedule:
type: heartbeat
interval: "30m"
task: "Run security audit on all namespaces"
memory:
enabled: true
seeds:
- "Track CVEs found in previous scans"
- "Remember cluster topology changes"
Mechanizm aktywacji
PersonaPack (enabled: false) → Katalog (TUI pokazuje jako dostępny)
↓
Użytkownik aktywuje (TUI wizard / kubectl patch)
↓
PersonaPack (enabled: true, authRefs set) → Controller stampuje:
├── Secret: platform-team-openai-key
├── SympoziumInstance: platform-team-security-guardian
│ ├── SympoziumSchedule + ConfigMap memory (seeded)
├── SympoziumInstance: platform-team-sre-watchdog
│ ├── SympoziumSchedule + ConfigMap memory (seeded)
└── SympoziumInstance: platform-team-platform-engineer
└── SympoziumSchedule + ConfigMap memory (seeded)
Wbudowane packi
| Pack | Kategoria | Agenty | Opis |
|---|---|---|---|
platform-team |
Platform | Security Guardian, SRE Watchdog, Platform Engineer | Bezpieczeństwo, health, manifest review |
devops-essentials |
DevOps | Incident Responder, Cost Analyzer | Triage incydentów, right-sizing |
developer-team |
Development | 7 agentów (Tech Lead, Backend/Frontend Dev, QA, Code Reviewer, DevOps, Docs Writer) | Pełny zespół dev |
Status
status:
phase: Pending|Ready|Error
personaCount: 3
installedCount: 3
installedPersonas:
- name: security-guardian
instanceName: platform-team-security-guardian
scheduleName: platform-team-security-guardian-schedule
ownerReferences
Wszystkie wygenerowane zasoby mają ownerReference → PersonaPack. Usunięcie packa = garbage collection całego zespołu.
Znaczenie architektoniczne
PersonaPacks rozwiązują problem Day 1 Experience - zamiast ręcznie tworzyć Secret + Instance + Schedule + Memory per agent, użytkownik:
- Wybiera pack w TUI
- Podaje klucz API
- Cały zespół agentów jest gotowy
To także wzorzec Infrastructure as Code dla AI Teams - deklarujesz zespół agentów w YAML, controller realizuje intent.
Powiązane: PersonaPacks - zespoły agentów | SympoziumInstance | SympoziumSchedule