CLI-Referenz
Jedes bxAgents-Verb und seine Flags.
On this page
CLI-Referenz
Usage: boxlang module:bxAgents <verb> [options]
(oder die kürzere Form bxAgents <verb> [options] - siehe Installation.)
Globale Flags
Diese werden vor dem Verb-Dispatch verarbeitet und erreichen ein Verb nie - sie sind nur als allererstes Token sinnvoll, sodass sie nie mit einem gleichnamigen Flag eines Verbs kollidieren.
| Flag | Wirkung |
|---|---|
-h, --help, help | Gibt die Nutzung aus (jedes Verb + Beschreibung) und beendet mit Exit-Code 0. Wird auch (Exit-Code 1) ausgegeben, wenn überhaupt kein Verb angegeben wird. |
-v, --version | Gibt bxAgents v{version} aus und beendet mit Exit-Code 0. |
Jedes Verb akzeptiert
--projectRoot=<path> (oder einen bloßen positionalen Pfad als erstes Nicht-Flag-Argument), um ein anderes Projekt als das aktuelle Verzeichnis anzusteuern. Vorrang: --projectRoot-Flag > erstes positionales Argument > aktuelles Arbeitsverzeichnis.
Argumentsyntax
Folgt BoxLangs eigenen dokumentierten CLI-Konventionen:
| Form | Ergebnis |
|---|---|
--option | true |
--option=value / --option="quoted value" | value (umschließende Anführungszeichen werden entfernt) |
-o=value | Kurzform mit einem Wert |
-o | Kurzform, true |
-abc | kombinierte Kurzform: a, b, c alle true |
--!option / --no-option | Negation, false |
| alles andere | ein Positionsargument (das erste wird zum Fallback für das Projekt-Root) |
Wiederholte Optionen: die letzte gewinnt.
Verben
Ein neues Agentenprojekt anlegen.
Die vollständige Build-Pipeline ausführen.
Die eigenen Tests/Specs des Projekts über TestBox ausführen.
Einen echten boxlang-miniserver-Prozess starten.
Interaktives REPL gegen den gebauten Agenten.
Eine nicht-interaktive Runde - für Skripting/CI.
Ein gebautes Projekt in eine .bxa paketieren.
An ein echtes Deployment-Ziel ausliefern.
Ein Klartextpasswort für einen webui-users-Eintrag hashen.
Ein vorhandenes manifest.json hübsch ausgeben.
Die .build/- und dist/-Ausgabe eines Projekts entfernen.
new
Ein neues Agentenprojekt anlegen.
bxAgents new my-agent --model=openai/gpt-5 [--name=...] [--description=...]
--modelist erforderlich - einprovider/model-Slug (siehe Agent.bx).--namefällt standardmäßig auf den eigenen Basisnamen des Zielverzeichnisses zurück.- Verweigert die Ausführung, falls das Ziel bereits ein
Agent.bxenthält. - Erzeugt
Agent.bx,instructions.md, jeden Konventionsordner (leer), einen sofort lauffähigentests/-Ordner (tests/box.json+tests/specs/AgentSpec.bx), eine.env, dieBOXLANG_HOME=.build/runtimedeklariert (passend zum eigenen begrenzten Runtime-Home vonserve- siehe Bekannte Einschränkungen für genau das, was das abdeckt und was nicht), sowie eine.gitignore(.build/,dist/,.env). Überschreibt nie eine vorhandene.env/.gitignore. - Führt außerdem
box installinnerhalb des neuentests/-Ordners aus, sodassbxAgents testsofort funktioniert, ohne einen separaten Schrittcd tests && box install. Dies erfolgt nach bestem Bemühen: Istboxnicht imPATHoder schlägt die Installation fehl, gelingtnewtrotzdem - die Meldung weist nur darauf hin, es selbst auszuführen.--skipInstallübergeben, um diesen Schritt vollständig zu überspringen.
build
Die vollständige Build-Pipeline ausführen.
bxAgents build [--environment=production] [--verbose]
Schreibt .build/app/ und .build/manifest.json. Schlägt mit jedem gesammelten Validierungsfehler fehl, falls das Projekt ungültig ist.
--verbosegibt live eine Zeile pro Build-Phase aus, während sie läuft - was aufgelöst/entdeckt/validiert wurde, Zählwerte pro Phase (Modelle, Tools, Gateways, Warnungen usw.), welche Agenten am Ende inconfig/WireBox.bxunter welchen Namen registriert wurden, ob einschedules/Scheduler.bxgefunden wurde, und eine abschließende ZeitzeileBuild completed in Xms. Nützlich zur Fehlersuche bei einem langsamen oder unerwartet reagierenden Build. Ansonsten still ---verbosekostet nichts, wenn es nicht übergeben wird.
test
Die eigenen tests/specs des Projekts über TestBox ausführen.
bxAgents test
- Erfordert eine unter
tests/testboxinstalliertetestbox(cd tests && box install). - Baut den Agenten standardmäßig gegen den
mock-Provider (Agent.bxstest()-Umgebungs-Override) - kein API-Schlüssel oder Netzwerkzugriff nötig. - Gibt Zähler für bestanden/fehlgeschlagen/Fehler/übersprungen sowie eine Zeile pro Fehlschlag aus und beendet mit einem Exit-Code ungleich null, falls etwas fehlgeschlagen ist.
serve
Einen echten boxlang-miniserver-Prozess starten, der auf .build/app zeigt.
bxAgents serve [--port=8080] [--host=0.0.0.0]
- Erfordert einen vorherigen
build- schlägt klar fehl, falls.build/appnicht existiert. - Schlägt klar fehl, falls
boxlang-miniservernicht imPATHgefunden wird. - Schreibt
.build/miniserver.json(Rewrites aktiviert,rewriteFileName: "index.bxm", Health-Check an), bevor der Start erfolgt. - Begrenzt das eigene BoxLang-Runtime-Home des Servers auf
.build/runtime(überserverHome) statt auf das geteilte Standardverzeichnis~/.boxlang, sodass der Compiled-Class-Cache und die Konfigurations-Overrides jedes Projekts isoliert sind - undcleanfegt es kostenlos mit, da es.buildohnehin komplett löscht.invoke --servererhält das ebenfalls, da es internservewiederverwendet. Das gilt nicht fürchat/build/test/den standardmäßigeninvoke- siehe bekannte Einschränkungen.
chat
Interaktives REPL gegen den gebauten Agenten, unter Verwendung von BoxLangs eigener MiniConsole zum Zeilenlesen.
bxAgents chat
- Erfordert einen vorherigen
build. - Lädt
GeneratedAgentFactory.bxdirekt (kein ColdBox-/WireBox-Container beteiligt) und ruftbuildAgent()einmal pro Sitzung auf - genau dieselbe Factory, die auch die HTTP-Routen vonserveverwenden, sodasschatund HTTP nie auseinanderlaufen. exitoderquiteingeben, um zu beenden.- Braucht ein echtes interaktives TTY (
MiniConsoleruftsttyfür den Raw-Modus auf) - funktioniert nicht per Pipe oder nicht-interaktiv.
invoke
Eine einzelne, nicht-interaktive Runde gegen den gebauten Agenten: eine Nachricht senden, die Antwort ausgeben, beenden. Existiert für Skripting/CI, wo die TTY-Anforderung von chat ein hartes Hindernis ist.
bxAgents invoke --message="What's the weather in Boston?" [--json]
bxAgents invoke --message="..." --server [--port=<port>]
- Erfordert einen vorherigen
build. - Standard (ohne
--server): lädtGeneratedAgentFactory.bxdirekt (kein ColdBox-Container, kein HTTP) und ruft den Agenten einmal auf - derselbe In-Prozess-Pfad, den auchchatintern nutzt, nur ohne die REPL-Schleife. Keine Voraussetzung durchserve/ein Gateway. --server: startet einen echten, wegwerfbarenboxlang-miniserver-Prozess (wieserve), sendet die Nachricht als echten HTTP-Request über die vom Projekt viatoAi()exponierte Route und fährt den Server danach wieder herunter. Nutzt den tatsächlich bereitgestellten Pfad (ColdBox-Routing, Interceptors, Gateways) statt der In-Prozess-Abkürzung. Erfordert einengateways/*.bx-Eintrag mit{ exposes: "agent", path: "..." }(siehe gateways) - schlägt klar fehl, falls keiner existiert.--portfällt standardmäßig auf einen freien, kurzlebigen Port zurück, damit es nie mit einem bereits laufendenservekollidiert.--jsongibt{"response": "..."}statt der reinen Textantwort aus.
package
Ein gebautes Projekt in eine .bxa paketieren.
bxAgents package [--version=1.0.0]
- Erfordert einen vorherigen
build- liest.build/manifest.json; schlägt klar fehl, falls es fehlt. --versionist standardmäßig1.0.0.- Schreibt
dist/{agentName}-{version}.bxa, eine begleitende.sha256sowie eine geschwärzte Kopie vonmanifest.json. Siehe Deployment & Secrets.
deploy
Ein gebautes/paketiertes Projekt über die pluggable deploy/-Konvention an ein echtes Deployment-Ziel ausliefern.
bxAgents deploy --name=production
# oder, die reine Flag-Kurzform (nur lokal):
bxAgents deploy --destination=/path/to/somewhere [--target=local]
--name=<entry>leitet an das Ziel weiter, das der benanntedeploy/<entry>.bx/.json-Eintrag angibt (local,ssh,ftp,sftp,dockeroderdigitalocean).- Die reine Flag-Form (
--target=local --destination=..., oder gar kein--target) funktioniert ohne vorhandenendeploy/-Ordner - nurlocalunterstützt das; jedes andere Ziel benötigt einen benannten Eintrag, da es mehr Konfiguration braucht, als ein paar Flags tragen können. local/ssh/ftp/sftperfordern ein vorherigespackage;docker/digitaloceanerfordern einen vorherigenbuild(sie bauen direkt aus.build/app).ftp/sftpbenötigen das Modulbx-ftp, installiert neben BX Agents (siehe Installation).
hash-password
Ein Klartextpasswort in den passwordHash-Wert umwandeln, den der users-Block eines webui-Eintrags akzeptiert.
bxAgents hash-password --password="correct horse battery staple"
--passwordist erforderlich.- Gibt den Hash auf stdout aus -
pbkdf2$<iterations>$<salt>$<derivedKey>, PBKDF2-HMAC-SHA256, pro Aufruf gesalzen. Bedenkenlos committebar: Es ist Einweg, und dasselbe Passwort zweimal zu hashen ergibt zwei unterschiedliche (beide gültige) Hashes. - Bewusst identisch zum Hasher gehalten, den die generierte Web-UI selbst zur Anmeldeprüfung nutzt - ein hier erzeugter Hash lässt sich dort immer verifizieren.
inspect
Ein vorhandenes .build/manifest.json hübsch ausgeben, ohne neu zu bauen.
bxAgents inspect [--json]
- Erfordert einen vorherigen
build. - Gibt Agentenname, Modell, Umgebung, Manifest-Version, Generator-Name/-Version und Dateianzahl aus.
--jsongibt das rohe Manifest als JSON statt der menschenlesbaren Zusammenfassung aus - nützlich für Skripting.
clean
Die .build/- und dist/-Ausgabe eines Projekts entfernen.
bxAgents clean
- Entfernt ausschließlich
.buildunddist- Quell-Konventionen (Agent.bx,tools/usw.) werden nie angefasst. - Meldet "Nothing to clean", falls keines der beiden Verzeichnisse existiert.