Blog · Anleitung · 29. Oktober 2026
Eine AEGIS-Agenten-Runtime aus der Standard-Registry wählen
Offenlegung: Wir bei 100monkeys.ai entwickeln AEGIS, lesen Sie diese Anleitung also als Bericht des Herstellers. Einer unserer KI-Agenten hat sie aus der öffentlichen AEGIS-Dokumentation (auf Englisch) entworfen, vor allem der Standard Runtime Registry, dem Eintrag aegis.runtime.list der Management Tools und der CLI Reference, und das Unternehmen hat sie geprüft; diese deutsche Fassung ist eine Übersetzung der englischen Originalanleitung. Jede YAML-Zeile, jeder Aufruf und jeder Befehl unten ist von diesen Seiten kopiert; für diese Anleitung wurde nichts davon ausgeführt. Zitate bleiben auf Englisch, mit der Übersetzung daneben. Wo die Dokumentation eine Frage offen lässt, sagt es der letzte Abschnitt.
AEGIS by 100monkeys.ai, in beta, führt jeden Agenten in einem Container aus. Ein Agentenmanifest kann statt eines Images eine Sprache und eine Version nennen, und der Orchestrator wählt das Image. Die Registry-Seite sagt es klar: "Using StandardRuntime means you never specify a Docker image directly." (Mit StandardRuntime geben Sie nie direkt ein Docker-Image an.) Diese Anleitung wählt eine Runtime, prüft sie vor dem Deploy und zeigt, was zur Laufzeit geschieht.
Schritt 1. Wissen, was die Registry entscheidet
Wenn ein Manifest spec.runtime.language und spec.runtime.version angibt, "resolves them to a deterministic, pinned Docker image at execution time" (löst der Orchestrator sie bei der Ausführung zu einem deterministischen, festgepinnten Docker-Image auf). Die Zuordnung steht in runtime-registry.yaml, eingecheckt im Orchestrator-Repository und beim Start des Daemons geladen. Für ein Review zählt: Zwei Agenten mit demselben Paar laufen auf demselben Image, und niemand tippt einen Image-Tag in ein Manifest.
Schritt 2. Die Registry fragen, was sie annimmt
Ein Agent, der Manifeste anderer Agenten schreibt, oder eine Person an einem Client kann das eingebaute Werkzeug aegis.runtime.list aufrufen. Ohne Argumente listet es jede Runtime; mit einer Sprache filtert es:
{}
{ "language": "python" }
Die Antwort nennt für jede Runtime language, version, image, description und ein Flag deprecated, dazu custom_runtime_supported. Die Registry-Seite nennt den Grund für das Werkzeug: Es "prevents hallucinated language-version combinations from being written into manifests" (verhindert, dass halluzinierte Kombinationen aus Sprache und Version in Manifeste geschrieben werden). Es steht im Sicherheitskontext aegis-system-agent-runtime "with no additional configuration" (ohne weitere Konfiguration) bereit.
Schritt 3. Ein unterstütztes Paar wählen
Die Matrix der Registry-Seite, wie sie derzeit steht:
| Sprache | Versionen | Image |
|---|---|---|
python | 3.11, 3.10; 3.9 veraltet | python:3.x-slim, Debian 12 |
javascript | 20, 18 | node:20-alpine, node:18-alpine |
typescript | 5.1 | node:20-alpine |
go | 1.21, 1.20 | golang:1.x-alpine |
rust | 1.75, 1.74 | rust:1.x-alpine |
bash | 5 | python:3.11-slim, mit python3 für den Bootstrap |
Manifeste mit einer veralteten Version "still execute but emit a warning in the execution log" (laufen weiter, schreiben aber eine Warnung ins Ausführungsprotokoll). Die Seite nennt python: "3.9" als veraltet und rät zum Wechsel auf 3.10 oder 3.11. Entfernungen werden "two phases in advance" (zwei Phasen im Voraus) angekündigt, und eine entfernte Version scheitert an der Validierung.
Schritt 4. Es ins Manifest schreiben
spec:
runtime:
language: "python" # Required (StandardRuntime)
version: "3.11" # Required (StandardRuntime)
isolation: "docker" # inherit | docker | firecracker
model: "default" # LLM model alias from aegis-config.yaml
"Specifying an unsupported language+version combination is rejected at execution validation time with a descriptive error. There is no fallback to a default version." (Eine nicht unterstützte Kombination aus language und version wird bei der Ausführungsvalidierung mit einer beschreibenden Fehlermeldung abgelehnt. Es gibt keinen Rückfall auf eine Standardversion.) Der letzte Satz ist der nützliche: Ein Tippfehler läuft nicht still auf einem anderen Interpreter.
Schritt 5. Validieren, dann deployen
aegis agent deploy ./agent.yaml --validate-only
aegis agent deploy ./agent.yaml
--validate-only parst und validiert, ohne zu deployen. Denselben Namen und dieselbe Version zweimal zu deployen scheitert, außer Sie fügen --force hinzu.
Schritt 6. Installieren, was der Agent braucht, oder zu einem eigenen Image wechseln
Jedes Standard-Image bringt das Paketwerkzeug seiner Sprache mit: pip und apt auf den Python-Images, npm und apk auf den Node-Images, go und apk auf Go, cargo und rustc auf Rust. Für TypeScript setzt der Orchestrator TYPESCRIPT_VERSION=5.1, und laut Dokumentation soll Ihr Bootstrap die Toolchain mit npm install -g typescript ts-node installieren. Braucht ein Agent Betriebssystempakete wie ffmpeg, eine Version, die der Registry fehlt, vorgebaute Binärdateien oder private Abhängigkeiten, ist die Antwort der Seite eine Custom Runtime, Ihr eigenes Image, statt bei jedem Lauf dasselbe zu installieren.
Schritt 7. Wissen, was beim Start des Agenten passiert
Bei einer Standard-Runtime löst der Orchestrator das Paar zu einem Image auf, erstellt den Container mit einem Hauptprozess, der ihn nur am Leben hält, lädt sein bootstrap.py nach /usr/local/bin/aegis-bootstrap hoch, falls es dort noch nicht liegt, und führt es mit dem Prompt aus. Der Bootstrap verbindet sich zurück mit dem Dispatch-Gateway des Orchestrators und fährt die Iterationsschleife: "generate → execute → validate → refine" (erzeugen, ausführen, validieren, verfeinern).
Schritt 8. Auf dem eigenen Knoten die Registry-Datei dort halten, wo der Daemon sucht
# aegis-config.yaml
spec:
runtime:
runtime_registry_path: "runtime-registry.yaml"
Der Standardpfad ist relativ zum Arbeitsverzeichnis des Daemons. Fehlt die Datei oder lässt sie sich nicht parsen, "hard-fails at boot" (scheitert der Daemon hart beim Start), weil "a missing registry makes every StandardRuntime agent execution impossible." (eine fehlende Registry jede Ausführung eines StandardRuntime-Agenten unmöglich macht.) Setzen Sie einen absoluten Pfad, wenn der Daemon aus einem anderen Verzeichnis oder in einem Container-Image läuft.
Was die Dokumentation offen lässt
- Zwei Beispielantworten widersprechen sich. Die Beispielantwort von
aegis.runtime.listauf der Registry-Seite listet Python 3.11, 3.10 und 3.9 aufpython:3.x-slim; das Beispiel der Seite Management Tools listet Python3.12aufghcr.io/100monkeys/runtime-python:3.12, das die Matrix nicht enthält. Fragen Sie Ihren eigenen Knoten, statt einem der Beispiele zu trauen. - Wann ein falsches Paar auffällt. Laut Registry-Seite wird ein nicht unterstütztes Paar "at execution validation time" (bei der Ausführungsvalidierung) abgelehnt. Sie sagt nicht, ob
aegis agent deploy --validate-onlyes schon erkennt. - Isolationswerte. Der Manifest-Kommentar der Registry-Seite listet
inherit | docker | firecracker; die Workflow- und Agenten-Referenzen listen zusätzlichprocess. - Termine. Für Python 3.9 gibt es kein Entfernungsdatum außer "Phase 2".
Weiter
Die Runtime ist ein Feld des Agentenmanifests. Für den Rest lesen Sie Das AEGIS-Agentenmanifest: jedes Feld und was es erzwingt. AEGIS installiert sich mit dem Befehl, der auf 100monkeys.ai steht:
curl -fsSL https://get.100monkeys.ai | bash