agent.yaml-Schema
Jeder Selu-Agent wird durch eine Datei agent.yaml im Wurzelverzeichnis des Agentenprojekts definiert. Diese Datei sagt dem Orchestrator, wie der Agent ausgeführt werden soll, welches Modell er verwendet und auf welche Capabilities er zugreifen darf.
Schema-Referenz
Abschnitt betitelt „Schema-Referenz“| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
apiVersion | string | Ja | Version des Schemas. Aktuell selu.io/v1. |
kind | string | Ja | Muss Agent sein. |
metadata.name | string | Ja | Eindeutiger Bezeichner des Agenten. Kleinbuchstaben, alphanumerische Zeichen und Bindestriche erlaubt. |
metadata.version | string | Ja | SemVer-String, zum Beispiel 1.0.0. |
metadata.description | string | Nein | Kurze, lesbare Beschreibung für den Marketplace. |
metadata.author | string | Nein | Name des Autors oder der Organisation. |
metadata.license | string | Nein | SPDX-Lizenzkennzeichnung wie MIT oder Apache-2.0. |
spec.model.provider | string | Ja | LLM-Anbieter: openai, anthropic, bedrock oder ollama. |
spec.model.name | string | Ja | Modellbezeichner, zum Beispiel gpt-4o oder claude-sonnet-4-20250514. |
spec.model.temperature | float | Nein | Sampling-Temperature. Standard 0.7. |
spec.model.maxTokens | int | Nein | Maximale Token pro Antwort. Standard 4096. |
spec.systemPrompt | string | Ja | Der System Prompt, der Persönlichkeit und Anweisungen des Agenten definiert. |
spec.capabilities | list | Nein | Liste der Capability-Referenzen, die der Agent aufrufen darf. |
spec.capabilities[].name | string | Ja | Name der Capability, wie in ihrem manifest.yaml deklariert. |
spec.capabilities[].version | string | Nein | Versions-Constraint, zum Beispiel ^1.0.0. Standard ist die neueste Version. |
spec.capabilities[].config | map | Nein | Schlüssel-Wert-Konfiguration, die der Capability zur Laufzeit übergeben wird. |
spec.runtime.image | string | Nein | Eigenes Docker-Image. Standardmäßig die offizielle Selu-Agent-Runtime. |
spec.runtime.resources.cpu | string | Nein | CPU-Limit, zum Beispiel 500m. Standard 250m. |
spec.runtime.resources.memory | string | Nein | Speicherlimit, zum Beispiel 512Mi. Standard 256Mi. |
spec.channels | list | Nein | Kanäle, auf denen der Agent zuhört. Werte: web, imessage, telegram. |
Vollständiges Beispiel
Abschnitt betitelt „Vollständiges Beispiel“apiVersion: selu.io/v1kind: Agentmetadata: name: research-assistant version: "1.2.0" description: An agent that searches the web and summarizes findings. author: selu-community license: MIT
spec: model: provider: anthropic name: claude-sonnet-4-20250514 temperature: 0.5 maxTokens: 8192
systemPrompt: | You are a research assistant. When the user asks a question, search the web for relevant sources, summarize your findings, and cite your sources with URLs.
capabilities: - name: web-search version: "^2.0.0" - name: file-writer config: outputDir: /data/reports
runtime: image: ghcr.io/selu-bot/agent-runtime:latest resources: cpu: "500m" memory: "512Mi"
channels: - web - telegramValidierung
Abschnitt betitelt „Validierung“Führe selu agent validate im Verzeichnis mit deiner agent.yaml aus, um vor dem Veröffentlichen auf Schemafehler zu prüfen. Die CLI validiert Pflichtfelder, Versionsformat und Capability-Referenzen gegen die lokale Registry.
Hinweise
Abschnitt betitelt „Hinweise“- Das Feld
metadata.namemuss innerhalb deiner Selu-Instanz eindeutig sein. Wenn du im Marketplace veröffentlichst, muss es global eindeutig sein. - Versions-Constraints für Capabilities folgen denselben SemVer-Regeln wie npm.
- Ressourcenlimits werden von Docker durchgesetzt. Wenn ein Agent sein Speicherlimit überschreitet, wird der Container automatisch neu gestartet.