Einstieg und Startfluss
源码版本v2026.7.20
Verantwortung
Aus «einem hermes-Befehl / einer Gateway-Nachricht» wird «ein im Speicher laufender Agent». Die Einstiegsschicht ist bewusst dünn gehalten – run_agent.py tut nur Weiterleiten und CLI-Zusammenbau; die echte Dependency-Injection steckt in agent_init.py. So teilen sich Gateway, TUI, CLI, ACP und cron denselben Initialisierungspfad.
Schlüsseldateien
Gateway-Main:22965— Gateway-Prozesseinstiegmain()AIAgent-Klasse:400-497— dünne Einstiegsklasse,__init__speichert nur ParameterAIAgent.__init__ Weiterleitung:497-560— der Kommentar sagt explizit "Forwarder — see agent.agent_init.init_agent"run_conversation-Methode:6350— InstanzmethodeAIAgent.run_conversation, ruft diemodulweite run_conversation:588aufCLI-Main:6434— CLI-Einstieginit_agent:276-400— Dependency-Injection-Hauptfunktion_resolve_compression_threshold:93-127— Beispiel für Konfigurationsauflösung beim Starthermes_bootstrap.py— früheste Pfad-/Umgebungsführung (Repo-Wurzel)
Datenfluss
- Der Nutzer führt
hermes(CLI) aus oder das Gateway startet mitmain()(run_agent.py:22965). - Der Prozess durchläuft
hermes_bootstrap.pyfür Pfad-/Umgebungskorrekturen und tritt in denCLI-Main:6434oder die Gateway-Schleife ein. - Es wird eine
AIAgent:400-Instanz erzeugt; deren__init__leitet aninit_agent:276weiter. init_agentlöst Provider, Toolsets, Kompressionsschwellen, Custom-Provider-extra_bodyusw. auf und baut ein lauffähiges Agent-Objekt zusammen.- Das Gateway hält diesen Agenten in
GatewayRunner(gateway/run.py) und füttert jede eingehende Nachricht anrun_conversation:588.
Zusammenfassung
Die Einstiegsschicht ist «Weiterleiten + Zusammenbauen» und trägt keine Geschäftslogik. AIAgent ist eine dünne Hülle, init_agent ist das eigentliche Assembly-Zentrum. Wenn diese Kette verstanden ist, beantwortet die Hauptschleife des Agenten die Frage «was passiert, nachdem eine Nachricht gefüttert wurde».