Zum Inhalt springen

agent.yaml Referenz

agent.yaml ist das Herzstück jedes Agenten-Pakets. Es teilt dem Selu-Orchestrator mit, wer der Agent ist, wie er geroutet werden soll und welche Capabilities er verwenden kann.

name: hello-world
version: 0.1.0
display_name: Hello World
description: Ein einfacher Begrüßungsagent.
author: dein-benutzername
license: MIT
model:
default: anthropic/claude-sonnet
FeldTypErforderlichBeschreibung
namestringJaEindeutige Kennung. Kleinbuchstaben, Bindestriche erlaubt. Muss im Marketplace eindeutig sein.
versionstringJaSemantische Versionsnummer (MAJOR.MINOR.PATCH).
display_namestringJaMenschenlesbarer Name, der in der UI und im Marketplace angezeigt wird.
descriptionstringJaEinzeilige Zusammenfassung (max. 160 Zeichen).
authorstringJaMarketplace-Benutzername oder Organisation.
licensestringJaSPDX-Lizenzkennung (z.B. MIT, Apache-2.0).
modelobjectJaLLM-Konfiguration.
routingobjectNeinWie der Orchestrator Nachrichten an diesen Agenten weiterleitet.
sessionobjectNeinSession-Management und Isolationseinstellungen.
capabilitieslistNeinCapabilities, die dieser Agent verwenden kann.
memoryobjectNeinSession- und Langzeit-Speichereinstellungen.
eventsobjectNeinEvent-Abonnements und Ausgaberegeln.
tagslist[string]NeinMarketplace-Discovery-Tags.
model:
default: anthropic/claude-sonnet
fallback: openai/gpt-4o
temperature: 0.7
max_tokens: 4096
FeldTypErforderlichBeschreibung
defaultstringJaAnbieter/Modell-Kennung. Der konfigurierte Anbieter des Benutzers hat Vorrang.
fallbackstringNeinWird verwendet, wenn das Standard-Modell nicht verfügbar ist.
temperaturefloatNeinSampling-Temperatur (0.0–2.0). Standard 0.7.
max_tokensintNeinMaximale Antwort-Tokens. Standard 4096.
session:
trigger: mention # mention | always | auto
idle_timeout_minutes: 30 # Session-Bereinigungstimeout
isolation: per_thread # shared | per_thread
FeldTypErforderlichBeschreibung
triggerstringNeinWann dieser Agent aktiviert wird. Standard mention.
idle_timeout_minutesintNeinMinuten bis inaktive Sessions bereinigt werden. Standard 30.
isolationstringNeinSession-Isolationsmodus. Standard shared.
  • shared (Standard) — Verwendet aktive Sessions für denselben Benutzer+Agent threadübergreifend wieder. Capability-Container und Arbeitsbereiche werden zwischen Gesprächen geteilt.
  • per_thread — Erzwingt dedizierte Sessions pro Thread. Jeder Gesprächs-Thread erhält seine eigenen Capability-Container und isolierte Arbeitsbereiche.

:::tip Wann per-Thread-Isolation verwenden Verwende isolation: per_thread für zustandsabhängige Agenten wie Programmier-Assistenten oder Arbeitsbereich-Manager, wo du Thread-übergreifende Zustandskollisionen verhindern möchtest. Dies stellt sicher, dass Arbeit in einem Gespräch nicht mit einem anderen interferiert. :::

:::caution Ressourcenverbrauch Per-Thread-Isolation verbraucht mehr Speicher und CPU, da jeder Thread separate Capability-Container ausführt. Verwende es nur für Agenten, die wirklich Arbeitsbereich-Isolation benötigen. :::

Capabilities werden per Referenz aufgelistet. Sie können auf ein lokales Verzeichnis oder ein Remote-Docker-Image verweisen.

capabilities:
- name: weather
path: ./capabilities/weather
FeldTypErforderlichBeschreibung
namestringJaKennung, die in Tool-Aufrufen verwendet wird.
pathstringNeinRelativer Pfad zu einem lokalen Capability-Verzeichnis.
imagestringNeinDocker-Image-URI. Wird verwendet, wenn path nicht gesetzt ist.
parametersobjectNeinStatische Schlüssel-Wert-Konfiguration, die beim Start an die Capability übergeben wird.
routing:
mode: inline # inline | dedicated
triggers:
- mention: "@weather"
- intent: weather_query
priority: 10

Siehe Routing & Sessions für vollständige Details.

memory:
session_ttl: 3600 # Sekunden
max_history: 50 # Nachrichten
long_term: true # Vektor-basiertes Langzeitgedächtnis aktivieren

Für Agenten, die persistente Arbeitsbereiche oder Dateisysteme verwalten, verwende Per-Thread-Isolation:

name: coding-assistant
display_name: Programmier-Assistent
description: KI-Pair-Programmer mit persistentem Arbeitsbereich
author: selu-team
license: MIT
model:
default: anthropic/claude-sonnet
session:
isolation: per_thread
idle_timeout_minutes: 60
capabilities:
- name: workspace
path: ./capabilities/workspace

Dies stellt sicher, dass jedes Programmier-Gespräch sein eigenes isoliertes Dateisystem und Git-Repository erhält, wodurch verhindert wird, dass ein Projekt mit einem anderen interferiert.

Führe selu validate in deinem Agent-Verzeichnis aus, um deine agent.yaml vor der Veröffentlichung gegen das Schema zu prüfen.

Terminal-Fenster
selu validate ./my-agent