Zum Inhalt springen

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.

FeldTypErforderlichBeschreibung
apiVersionstringJaVersion des Schemas. Aktuell selu.io/v1.
kindstringJaMuss Agent sein.
metadata.namestringJaEindeutiger Bezeichner des Agenten. Kleinbuchstaben, alphanumerische Zeichen und Bindestriche erlaubt.
metadata.versionstringJaSemVer-String, zum Beispiel 1.0.0.
metadata.descriptionstringNeinKurze, lesbare Beschreibung für den Marketplace.
metadata.authorstringNeinName des Autors oder der Organisation.
metadata.licensestringNeinSPDX-Lizenzkennzeichnung wie MIT oder Apache-2.0.
spec.model.providerstringJaLLM-Anbieter: openai, anthropic, bedrock oder ollama.
spec.model.namestringJaModellbezeichner, zum Beispiel gpt-4o oder claude-sonnet-4-20250514.
spec.model.temperaturefloatNeinSampling-Temperature. Standard 0.7.
spec.model.maxTokensintNeinMaximale Token pro Antwort. Standard 4096.
spec.systemPromptstringJaDer System Prompt, der Persönlichkeit und Anweisungen des Agenten definiert.
spec.capabilitieslistNeinListe der Capability-Referenzen, die der Agent aufrufen darf.
spec.capabilities[].namestringJaName der Capability, wie in ihrem manifest.yaml deklariert.
spec.capabilities[].versionstringNeinVersions-Constraint, zum Beispiel ^1.0.0. Standard ist die neueste Version.
spec.capabilities[].configmapNeinSchlüssel-Wert-Konfiguration, die der Capability zur Laufzeit übergeben wird.
spec.runtime.imagestringNeinEigenes Docker-Image. Standardmäßig die offizielle Selu-Agent-Runtime.
spec.runtime.resources.cpustringNeinCPU-Limit, zum Beispiel 500m. Standard 250m.
spec.runtime.resources.memorystringNeinSpeicherlimit, zum Beispiel 512Mi. Standard 256Mi.
spec.channelslistNeinKanäle, auf denen der Agent zuhört. Werte: web, imessage, telegram.
agent.yaml
apiVersion: selu.io/v1
kind: Agent
metadata:
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
- telegram

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.

  • Das Feld metadata.name muss 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.