# Sub-Agenten Kiro CLI unterstützt Sub-Agenten – spezialisierte Rollen die der Haupt-Agent für komplexe Aufgaben nutzen kann. ## Verfügbare Profile | Agent | Datei | Rolle | Tools | |-------|-------|-------|-------| | researcher | `researcher.json` | Informationen sammeln, analysieren | Alle | | implementer | `implementer.json` | Code schreiben, testen, committen | Alle | | reviewer | `reviewer.json` | Code-Review, Security, Best Practices | read, grep, shell | ## Wie der Haupt-Agent Sub-Agenten nutzt Der Haupt-Agent entscheidet selbst ob er Sub-Agenten braucht. Bei komplexen Aufgaben nutzt er das `subagent` Tool: ``` subagent( task: "Feature implementieren und reviewen", stages: [ {name: "research", role: "researcher", prompt: "Analysiere die bestehende Codebasis..."}, {name: "implement", role: "implementer", prompt: "Implementiere basierend auf der Analyse...", depends_on: ["research"]}, {name: "review", role: "reviewer", prompt: "Prüfe die Implementierung...", depends_on: ["implement"]} ] ) ``` ### Parallelisierung Stages ohne `depends_on` laufen parallel: ``` Stage 1 (parallel): Stage 2: Stage 3: ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ researcher: │───┐ │ implementer: │ │ reviewer: │ │ API lesen │ ├───▶│ Code + Tests │──▶│ Qualität │ │ researcher: │───┘ │ │ │ prüfen │ │ DB Schema │ └──────────────┘ └──────────────┘ └──────────────┘ ``` ### Shared Filesystem Alle Sub-Agenten teilen `/workspace/project`. Der Researcher schreibt Ergebnisse in Dateien die der Implementer liest. ## Eigene Profile erstellen Ein Agent-Profil ist eine JSON-Datei: ```json { "tools": ["*"], "systemPrompt": "Du bist ein spezialisierter Agent für..." } ``` ### Felder | Feld | Beschreibung | |------|-------------| | `tools` | `["*"]` für alle, oder Liste: `["read", "grep", "shell", "write"]` | | `systemPrompt` | Instruktionen für den Sub-Agenten | | `mcpServers` | Optional: zusätzliche MCP-Server für diesen Agenten | ### Beispiel: Ops-Agent ```json { "tools": ["*"], "systemPrompt": "Du bist ein Ops-Agent. Analysiere Kubernetes-Cluster: Pods, Deployments, Events, Logs. Identifiziere Probleme und schlage Lösungen vor. Nutze kubectl für alle Abfragen.", "mcpServers": { "orchestrator": { "url": "http://opencode-k8s-agent-${ART_NAME}-tools.${ART_NAME}-tools.svc.cluster.local:8080/mcp", "headers": { "x-runtime": "kiro", "x-agent-kiro-api-key": "${KIRO_API_KEY}", "x-agent-gitlab-token": "${GITLAB_TOKEN}" } } } } ``` ### Beispiel: Security-Agent ```json { "tools": ["read", "grep", "shell"], "systemPrompt": "Du bist ein Security-Agent. Prüfe Code auf Schwachstellen: SQL Injection, XSS, Secrets im Code, unsichere Dependencies. Nutze trivy und gitleaks. Erstelle einen strukturierten Security-Report." } ``` ## Laden der Profile Das Entrypoint-Script kopiert beim Pod-Start automatisch alle `agents/*.json` nach `$HOME/.kiro/agents/`. Änderungen an Profilen werden beim nächsten Job-Start wirksam – kein Image-Rebuild nötig. ## MCP-Server für Sub-Agenten Die `mcp.json` im Root dieses Repos wird als MCP-Konfiguration für alle Agenten geladen. Damit können Sub-Agenten: - Den **Orchestrator** aufrufen (weitere K8s-Pods spawnen) - **Playwright** für Browser-Tests nutzen - Andere MCP-Server ansprechen (Jira, Confluence, etc.) ### Rekursive Hierarchie Ein Sub-Agent kann über den Orchestrator-MCP-Server weitere Agent-Pods starten: ``` Haupt-Agent (Pod A) └── subagent: researcher └── MCP: orchestrator.implement_ticket(...) └── Neuer Pod B startet └── arbeitet unabhängig ```