Skip to content

Hauptschleife des Agenten

源码版本v2026.7.20

Verantwortung

run_conversation ist das Herz von Hermes: Es nimmt eine Nutzernachricht, ruft wiederholt Modell + Werkzeuge auf, bis das Iterationsbudget aufgebraucht oder die Aufgabe erledigt ist. Es koordiniert zugleich Kontextaufbau, Werkzeug-Dispatch, Stopp-Bedingungs-Prüfung sowie Fallback bei Misserfolg.

Die Datei hat insgesamt etwa 5800 Zeilen und hohe logische Dichte – diese Seite betrachtet nur die Hauptlinie, Details werden auf Unterseiten behandelt.

Schlüsseldateien

Datenfluss

  1. run_agent.py AIAgent ist ein dünner Forwarder; die echte Dependency-Injection passiert in init_agent.
  2. Der Aufrufer übergibt user_message; run_conversation läuft zuerst durch build_turn_context, um den Turn-Kontext (api_messages) aufzubauen.
  3. Eintritt in die while-Hauptschleife: Abbruchprüfung → Budget dekrementieren (iteration_budget.consume()) → api_messages aufbauen/desinfizieren → Vorkompression → /steer-Texte leeren → MoA-Aggregation → Eintritt in die API-Aufruf-Wiederholungs-Teilschleife.
  4. Nach der Modell-Rückgabe erfolgen Response-Validierung und finish_reason-Behandlung; bei Misserfolg greift agent._try_activate_fallback().
  5. Wird die Kompressionsschwelle getroffen, läuft context_compressor und räumt Platz zurück.
  6. Nach Schleifenende (Budget erschöpft / Aufgabe erledigt / abgebrochen) wird die finale Nachricht zurückgegeben und vom Gateway zugestellt (siehe Gateway-Schicht).

Zusammenfassung

Die Hauptschleife orchestriert nur: Turn-Antrieb, Budget-Steuerung, Wiederholung und Fallback. Die echte Fähigkeit kommt von Tools und Skills der Fähigkeitsschicht, die Multi-Plattform-Zustellung obliegt der Gateway-Schicht, die Selbst-Evolution treibt die Lernschleife.

Für den Abgleich mit der offiziellen chinesischen Einführung siehe README.zh-CN und website/i18n/zh-Hans/.

Inoffizielle Community-Lernseite. Basiert auf dem MIT-lizenzierten NousResearch/hermes-agent-Quellcode.