16 KiB
RetrieX – CLI Command Reference
Basis: rag.zip (aktueller Code-Stand vom 2026-04-15)
Scope: ausschließlich projektspezifische Symfony-Commands unter src/Command
Namespace-Konvention: mto:agent:*
Diese Referenz ist gegen den realen Codebestand abgeglichen und ersetzt die veraltete Fassung der bisherigen COMMAND_REF.md.
1. Überblick
| Command | Bereich | Kurzbeschreibung |
|---|---|---|
mto:agent:chat |
Agent / CLI | Interaktiver Terminal-Chat gegen den AgentRunner |
mto:agent:ingest:version |
Ingest | Startet einen Ingest für eine konkrete Dokumentversion |
mto:agent:ingest:run |
Ingest Jobs | Führt einen vorhandenen IngestJob aus |
mto:agent:system:rebuild |
System | Globaler Hard-Rebuild von Chunks, Vektorindex, Tags und optional Service-Reload |
mto:agent:config:validate |
Config / Governance | Validiert die effektive RetrieX-Konfiguration |
mto:agent:config:audit-source |
Config / Governance | Auditiert YAML-Mappings gegen PHP-Fallbacks und Defaults |
mto:agent:config:audit-patterns |
Config / Governance | Auditiert fachliche Pattern-, Token- und Signalreste im PHP-Core |
mto:agent:config:dump-effective |
Config / Governance | Gibt die effektive Konfigurationsinventur aus |
mto:agent:regression:test |
Config / Governance | Fuehrt Offline-Regression-Guards fuer stabile Pfade aus |
mto:agent:vector:rebuild |
Vector | Baut den Chunk-Vektorindex aus index.ndjson neu |
mto:agent:vector:control |
Vector Service | Install, Start, Stop, Reload und Status des Python-Vector-Service |
mto:agent:vector:health |
Vector | Konsistenzcheck für Chunk-NDJSON und Vektorindex |
mto:agent:test-vector |
Debug | Führt Tag-Routing und Chunk-Retrieval für einen Testprompt aus |
mto:agent:tags:export |
Tags | Exportiert Tags nach tags.ndjson |
mto:agent:tags:rebuild |
Tags | Exportiert Tags und baut vector_tags.index neu |
mto:agent:tags:job:run |
Tag Jobs | Führt einen vorhandenen Tag-Rebuild-Job aus oder erstellt direkt einen neuen |
mto:agent:tag:health |
Tags | Konsistenzcheck für tags.ndjson und Tag-Vektorindex |
mto:agent:test:shop-search |
Commerce / Debug | Testkommando für die Shopware-Suche |
mto:agent:user:create |
User | Interaktive Anlage eines Users |
2. Agent / Chat
mto:agent:chat
Interaktiver CLI-Chat mit dem Agenten.
Signatur
bin/console mto:agent:chat [user-id]
Argumente
user-idoptional, Default:cli
Reales Verhalten im Code
- startet eine Terminal-Schleife mit
Question→Answer - ruft pro Eingabe
AgentRunner->run($prompt, $userId)auf - streamt Tokens direkt ins Terminal
- beendet sich bei EOF, leerer Eingabe oder
exit
Beispiel
bin/console mto:agent:chat
bin/console mto:agent:chat admin-debug
3. Ingest / Jobs
mto:agent:ingest:version
Startet einen Ingest für eine konkrete DocumentVersion mit explizitem Benutzerkontext.
Signatur
bin/console mto:agent:ingest:version <versionId> <userId>
Argumente
versionIderforderlich, UUID einerDocumentVersionuserIderforderlich, UUID des auslösenden Users
Reales Verhalten im Code
- lädt
DocumentVersionundUseraus Doctrine - bricht mit Fehler ab, wenn Version oder User nicht existieren
- ruft
IngestOrchestrator->runForVersion($version, $user)auf - gibt nach Abschluss die erzeugte Job-ID aus
Beispiel
bin/console mto:agent:ingest:version <documentVersionUuid> <userUuid>
Wichtige Korrektur zur alten Doku Die bisherige Referenz dokumentierte nur einen Parameter. Im aktuellen Code sind zwei Pflichtargumente erforderlich.
mto:agent:ingest:run
Führt einen bereits existierenden IngestJob aus.
Signatur
bin/console mto:agent:ingest:run <jobId> [--dry-run]
Argumente / Optionen
jobIderforderlich, UUID einesIngestJob--dry-runoptional, simuliert schwere Operationen ohne tatsächliche Ausführung
Reales Verhalten im Code
- lädt den Job aus der Datenbank
- bricht mit Fehler ab, wenn der Job nicht gefunden wird
- beendet sich erfolgreich, wenn der Job bereits terminal ist (
COMPLETED,FAILED,ABORTED) - ruft sonst
IngestOrchestrator->runExistingJob($job, $dryRun)auf
Beispiele
bin/console mto:agent:ingest:run <jobUuid>
bin/console mto:agent:ingest:run <jobUuid> --dry-run
mto:agent:system:rebuild
Globaler Hard-Rebuild des Systems.
Signatur
bin/console mto:agent:system:rebuild --hard [--no-tags] [--no-reload] [--no-health] [--dry-run]
Optionen
--hardPflicht-Sicherheitsschalter; ohne diese Option bricht das Kommando ab--no-tagsüberspringt den Tag-Rebuild--no-reloadüberspringt Reload/Start des Vector-Service--no-healthüberspringt den abschließenden Health-Check--dry-runsimuliert den Reindex ohne Schreiboperationen
Reales Verhalten im Code
- erzeugt einen neuen
IngestJobvom TypGLOBAL_REINDEX - führt den globalen Reindex über den Orchestrator aus
- exportiert optional
tags.ndjsonund bautvector_tags.indexneu - startet bzw. reloadet optional den Python-Vector-Service
- führt optional Chunk- und Tag-Health-Checks aus
Beispiele
bin/console mto:agent:system:rebuild --hard
bin/console mto:agent:system:rebuild --hard --dry-run
bin/console mto:agent:system:rebuild --hard --no-tags --no-reload
Hinweis Dieses Kommando ist aktuell der zentrale Produktions-Entry-Point für einen vollständigen Neuaufbau des Retrieval-Stacks.
4. Vector / Retrieval
mto:agent:vector:rebuild
Baut den Chunk-Vektorindex neu.
Signatur
bin/console mto:agent:vector:rebuild
Reales Verhalten im Code
- schreibt
Rebuilding vector index... - ruft
VectorIndexBuilder->rebuildFromNdjson()auf - schreibt anschließend
Done.
Beispiel
bin/console mto:agent:vector:rebuild
mto:agent:vector:control
Steuert den persistenten Python-Vector-Service über python/vector/vector_control.py.
Signatur
bin/console mto:agent:vector:control [optionen]
Unterstützte Optionen
--installinstalliert fehlende Python-Dependencies in.venv--startstartet den Service, falls er nicht läuft--stopstoppt den Service anhand der PID-Datei--forceerzwingt einen Hard-Stop--reloadtriggert den/reload-Endpoint des Service--statusgibt den aktuellen Status aus--foregroundstartet im Vordergrund--port=8090setzt den Port--host=0.0.0.0setzt den Host
Reales Verhalten im Code
- baut einen Prozessaufruf gegen
.venv/bin/python python/vector/vector_control.py - reicht gesetzte Optionen durch
- hängt immer
--portund--hostan - gibt
stdoutdes Python-Skripts direkt aus
Beispiele
bin/console mto:agent:vector:control --install
bin/console mto:agent:vector:control --start
bin/console mto:agent:vector:control --status
bin/console mto:agent:vector:control --reload
bin/console mto:agent:vector:control --stop --force
mto:agent:vector:health
Health-Check für Chunk-NDJSON und Chunk-Vektorindex.
Signatur
bin/console mto:agent:vector:health
Reales Verhalten im Code
- ruft
VectorIndexHealthService->check()auf - gibt den Report als JSON aus
- endet mit Exit-Code
0, wennstatusmitOKbeginnt; sonst1
Beispiel
bin/console mto:agent:vector:health
mto:agent:test-vector
Debug-Kommando für einen realistischen Retrieval-Test.
Signatur
bin/console mto:agent:test-vector <prompt>
Argumente
prompterforderlich, Testanfrage für das Retrieval
Reales Verhalten im Code
- führt zuerst Tag-Routing über
TagVectorSearchClientaus - führt danach Chunk-Retrieval über
VectorSearchClientaus - misst Tag-, Chunk- und Gesamtdauer
- gibt beide Result-Sets als JSON aus
Beispiel
bin/console mto:agent:test-vector "welche dokumente behandeln den ingest-flow?"
5. Tag-System
mto:agent:tags:export
Exportiert die Tag-Datenbasis nach tags.ndjson.
Signatur
bin/console mto:agent:tags:export
Reales Verhalten im Code
- ruft
TagNdjsonExporter->export()auf - gibt Pfad, Tag-Anzahl, Zeilen und Bytes aus
Beispiel
bin/console mto:agent:tags:export
mto:agent:tags:rebuild
Kompletter Neuaufbau des Tag-Retrievals.
Signatur
bin/console mto:agent:tags:rebuild
Reales Verhalten im Code
- exportiert
tags.ndjson - baut
vector_tags.index - setzt einen Runtime-Marker über
IndexMetaManager->touchRuntime()
Beispiel
bin/console mto:agent:tags:rebuild
mto:agent:tags:job:run
Führt einen Tag-Rebuild-Job mit File-Lock aus.
Signatur
bin/console mto:agent:tags:job:run [jobId] [--create]
Argumente / Optionen
jobIdoptional, UUID eines bestehendenTagRebuildJob--createoptional, erstellt und startet sofort einen neuenTagRebuildJob
Regeln im Code
- entweder
jobIdoder--create - beides zusammen ist ungültig
- keines von beiden ist ebenfalls ungültig
Reales Verhalten im Code
- markiert den Job auf
RUNNING - sperrt parallel laufende Tag-Rebuilds per File-Lock
- exportiert
tags.ndjson - baut
vector_tags.index - markiert den Job bei Erfolg als
COMPLETED, sonst alsFAILED
Beispiele
bin/console mto:agent:tags:job:run --create
bin/console mto:agent:tags:job:run <jobUuid>
mto:agent:tag:health
Health-Check für das Tag-Retrieval.
Signatur
bin/console mto:agent:tag:health
Reales Verhalten im Code
- ruft
TagVectorIndexHealthService->check()auf - gibt den Report als JSON aus
- endet mit Exit-Code
0, wennstatusmitOKbeginnt; sonst1
Beispiel
bin/console mto:agent:tag:health
Wichtige Korrektur zur alten Doku
Der reale Command-Name ist tag:health (Singular), nicht tags:health.
6. Commerce / Shopware Debug
mto:agent:test:shop-search
Testkommando für die Shopware-Suche.
Signatur
bin/console mto:agent:test:shop-search [query]
Argumente
queryoptional- Default im Code:
zeige mir testomat modelle wasserhärte unter 5000 euro
Beabsichtigtes Verhalten
- ruft die Shop-Suche auf
- gibt pro Treffer Produktdaten wie ID, Produktnummer, Hersteller, Preis, Verfügbarkeit, URL und Description aus
Wichtiger Code-Hinweis
Im aktuellen Stand von rag.zip ruft das Command ShopSearchService->search($query) mit einem Argument auf, die Service-Signatur erwartet aber zwei Argumente (string $originalPrompt, string $commerceIntent). Das Kommando ist daher im aktuellen Codebestand sehr wahrscheinlich nicht lauffähig, solange diese Signaturabweichung nicht behoben wird.
7. User-Management
mto:agent:user:create
Interaktive Anlage eines Users.
Signatur
bin/console mto:agent:user:create
Interaktiver Ablauf
- E-Mail eingeben
- Passwort eingeben
- Rolle wählen
Validierungen im Code
- E-Mail muss valide sein
- User mit gleicher E-Mail darf nicht bereits existieren
- Passwort muss mindestens 8 Zeichen lang sein
Im Code auswählbare Rollen
ROLE_SUPER_ADMINROLE_KNOWLEDGE_ADMINROLE_EDITORROLE_USER
Beispiel
bin/console mto:agent:user:create
8. Typische Betriebsabläufe
Manueller Ingest einer Version
bin/console mto:agent:ingest:version <documentVersionUuid> <userUuid>
Vorhandenen Ingest-Job ausführen
bin/console mto:agent:ingest:run <jobUuid>
Nur Chunk-Vektorindex neu bauen
bin/console mto:agent:vector:rebuild
Gesamtsystem hart neu aufbauen
bin/console mto:agent:system:rebuild --hard
Vector-Service prüfen und reloaden
bin/console mto:agent:vector:health
bin/console mto:agent:vector:control --reload
Tag-Retrieval neu aufbauen
bin/console mto:agent:tags:rebuild
bin/console mto:agent:tag:health
9. Wichtige Runtime-Dateien und Pfade
Die bisherige Doku nannte teilweise veraltete Pfade unter var/. Im aktuellen Code liegen die Knowledge-Artefakte primär unter var/knowledge/.
var/
├── knowledge/
│ ├── index.ndjson
│ ├── index_meta.json
│ ├── index_runtime.json
│ ├── vector.index
│ ├── vector.index.meta.json
│ ├── tags.ndjson
│ ├── vector_tags.index
│ ├── vector_tags.index.meta.json
│ ├── uploads/
│ └── locks/
│ └── tag_rebuild.lock
├── run/
│ └── vector_service.pid
└── locks/
└── ingest.lock
Herkunft im Code
config/services.yamldefiniertmto.knowledge.root = %mto.root%/var/knowledgepython/vector/vector_control.pyverwendetvar/run/vector_service.pidApp\Service\LockServiceverwendet aktuellvar/locks/ingest.lock
10. Wichtige Abweichungen zur alten COMMAND_REF.md
Die bisherige Datei war in mehreren Punkten nicht mehr codekonform. Wesentliche Korrekturen:
mto:agent:system:rebuildfehlte vollständigmto:agent:test:shop-searchfehlte vollständigmto:agent:tag:healthfehlte und war zudem leicht falsch benanntmto:agent:ingest:versionbraucht aktuell<versionId> <userId>- Runtime-Dateien liegen nicht nur unter
var/, sondern überwiegend untervar/knowledge/ - der globale Rebuild läuft heute über
mto:agent:system:rebuild --hard, nicht über ein dokumentiertesingest:global
11. Config-Governance / YAML-only Guardrails
These commands are mandatory for changes that touch YAML-backed configuration, prompt/retrieval behavior, intent detection, commerce/shop logic or regression-sensitive answer paths.
mto:agent:config:validate
Validates the effective RetrieX configuration.
Signature
bin/console mto:agent:config:validate [--json]
Expected result before merge
- status
OK - no errors
mto:agent:config:audit-source
Audits YAML-backed configuration against remaining PHP defaults, fallback accessors and constructor defaults.
Signature
bin/console mto:agent:config:audit-source [--details] [--json]
Expected result before merge
- no missing YAML mappings
- no new undocumented PHP-only semantic constants
- no constructor defaults without YAML/service-parameter mapping
Use --details for reviewable console output and --json for machine-readable CI output.
mto:agent:config:dump-effective
Dumps the effective RetrieX configuration inventory.
Signature
bin/console mto:agent:config:dump-effective [--summary]
Use --summary for a compact review view.
mto:agent:regression:test
Runs offline regression guards for stable configuration paths.
Signature
bin/console mto:agent:regression:test [--json]
Expected result before merge
- status
OK - all checks pass
This command protects the regression-sensitive 1.4.2/1.5.0 baseline, especially the Testomat 808 / 0,02 deg dH / indicator type 300 flow and related configuration paths.
12. Fazit
Der aktuelle Custom-CLI-Umfang des Systems besteht aus mindestens 18 projektspezifischen Commands. Für den operativen Betrieb sind besonders relevant:
mto:agent:ingest:runmto:agent:system:rebuildmto:agent:vector:controlmto:agent:vector:healthmto:agent:tags:rebuildmto:agent:tag:health
mto:agent:config:audit-patterns
Audits remaining pattern-, token- and signal-sensitive calls in PHP core files for developer-policy review.
Signature
bin/console mto:agent:config:audit-patterns [--details] [--json] [--all]
Purpose
- finds configured calls such as
preg_match,str_contains,in_arrayand related pattern/token helpers in configured source roots - raises WARN findings when configured domain marker terms are involved
- keeps the command non-blocking and review-oriented; it does not change runtime behavior and does not activate strict validation
Options
--detailsrenders reviewable warning rows--jsonrenders machine-readable audit output--allincludes lower-priority REVIEW findings in addition to WARN findings
Expected use before merge
bin/console mto:agent:config:audit-patterns --details
Review WARN findings and move new semantic terms, product names, intent words, commerce signals or retrieval/follow-up patterns to YAML-backed configuration when they are not purely technical.