initial commit

This commit is contained in:
2026-03-25 00:05:57 +01:00
commit 25c7d598ca
63 changed files with 5257 additions and 0 deletions

136
03-CRD/AgentRun.md Normal file
View File

@@ -0,0 +1,136 @@
# AgentRun
#sympozium #crd #agentrun
## Definicja
`AgentRun` reprezentuje **pojedyncze wywołanie agenta**. Każdy AgentRun reconciliuje się w Kubernetes Job (tryb task) lub Deployment (tryb server).
**Plik:** `api/v1alpha1/agentrun_types.go`
## Spec
```yaml
apiVersion: sympozium.ai/v1alpha1
kind: AgentRun
metadata:
name: my-run-001
spec:
instanceRef: my-agent # Powiązanie z SympoziumInstance
agentId: default
sessionKey: session-123
task: "Sprawdź stan klastra"
systemPrompt: "Jesteś SRE inżynierem..."
model:
provider: anthropic
model: claude-sonnet-4-20250514
baseURL: ""
thinking: "high"
authSecretRef: anthropic-key
nodeSelector:
gpu-type: a100
mode: task|server # Job vs Deployment
parent: # Dla sub-agentów
runName: parent-run
sessionKey: parent-session
spawnDepth: 1
skills:
- skillPackRef: k8s-ops
toolPolicy:
allow: [read_file, list_directory]
deny: [execute_command]
timeout: 5m
cleanup: delete|keep # Po zakończeniu
sandbox: # Container-level sandbox
enabled: true
image: custom-sandbox:v1
agentSandbox: # Kernel-level sandbox (Sandbox CR)
enabled: true
runtimeClass: gvisor
warmPoolRef: wp-my-agent
env: # Custom env vars
MY_VAR: my-value
```
## Status
```yaml
status:
phase: Pending|Running|Serving|Succeeded|Failed
podName: my-run-001-abc123
jobName: my-run-001
sandboxName: my-run-001-sandbox # Agent Sandbox mode
startedAt: "2024-01-01T00:00:00Z"
completedAt: "2024-01-01T00:05:00Z"
result: "Klaster jest zdrowy. 15 podów running..."
error: ""
exitCode: 0
tokenUsage:
inputTokens: 1500
outputTokens: 800
totalTokens: 2300
toolCalls: 5
durationMs: 45000
traceID: "abc123def456" # OTel trace
deploymentName: "" # Server mode
serviceName: "" # Server mode
```
## Fazy lifecycle
```
""(empty) → Pending → Running → Succeeded
→ Failed
→ Serving (tryb server - długo żyjący)
```
### Przejścia faz
| Z fazy | Do fazy | Trigger |
|--------|---------|---------|
| "" / Pending | Running | Job/Sandbox CR utworzony, pod running |
| Running | Succeeded | Pod zakończył się z kodem 0 |
| Running | Failed | Pod zakończył się z kodem != 0 lub timeout |
| Pending | Serving | Mode=server, Deployment ready |
| Serving | Succeeded | AgentRun usunięty (cleanup Deployment) |
## Token Usage Tracking
AgentRun śledzi zużycie tokenów LLM:
- `inputTokens` - tokeny promptu
- `outputTokens` - tokeny odpowiedzi
- `totalTokens` - suma
- `toolCalls` - liczba wywołań narzędzi
- `durationMs` - czas wall-clock w ms
## Sub-agenty
AgentRun wspiera hierarchię parent-child:
```yaml
parent:
runName: parent-run-001
sessionKey: parent-session
spawnDepth: 1 # Głębokość w drzewie
```
Limity zdefiniowane w [[SympoziumInstance]] → `agents.default.subagents`:
- `maxDepth: 2` - max zagnieżdżenie
- `maxConcurrent: 5` - max równoległych
- `maxChildrenPerAgent: 3` - max dzieci per agent
## History Pruning
Controller utrzymuje max 50 zakończonych AgentRun per instancja (konfigurowalny `RunHistoryLimit`). Starsze są automatycznie usuwane.
---
Powiązane: [[SympoziumInstance]] | [[Cykl życia AgentRun]] | [[Cykl życia Agent Pod]]