Zum Hauptinhalt springen

Boilerplate-Bot Rollout & Änderungsdetektion

Übersicht

Die boilerplate-bot-Vorlage (server/bot-actions-template/botId/boilerplate-bot/) bietet den Basiscode für alle Aktionsdienste. Wenn Änderungen an dieser Vorlage vorgenommen werden, müssen sie auf alle bestehenden Bot-Instanzen ausgerollt werden.

Wie der Rollout funktioniert

Beim Start liest der actions-manager-Dienst:

  1. Die Version aus boilerplate-bot/pyproject.toml
  2. Vergleicht sie mit der pyproject.toml-Version jedes Bots
  3. Wenn sich die Versionen unterscheiden, kopiert er alle nicht auf der schwarzen Liste stehenden Dateien vom Boilerplate zum Bot
Schwarze Liste (während des Updates beibehalten):
- actions/ (benutzerdefinierte Aktionen)
- agents/ (benutzerdefinierte Agenten)
- poetry_bot_requirements.txt

Warum Versionssprünge wichtig sind

Dateien, die einen Versionssprung für den Rollout erfordern:

  • main.py
  • executor.py
  • utils.py
  • pyproject.toml (Abhängigkeiten)

Ohne Aktualisierung der Version in pyproject.toml werden Änderungen an diesen Dateien nicht auf bestehende Bots übertragen. Der Versionsvergleich ist der einzige Auslöser für den Datei-Kopiermechanismus.

Warum shared/-Änderungen immer in Ordnung sind

Das shared-Modul wird über relative Pfadangabe in pyproject.toml eingebunden:

packages = [
{ include = "shared", from = "../../../../llm/src/" },
{ include = "botario_gpt_events", from = "../../../../llm/src/" }
]

Das bedeutet:

  • shared/ wird nicht in jeden Bot kopiert
  • Alle Bots verweisen auf dasselbe llm/src/shared/-Verzeichnis
  • Änderungen an shared/ treten sofort in Kraft (beim nächsten Import/Neustart)
  • Kein Versionssprung erforderlich für Änderungen in shared/

TL;DR

OrtVersionssprung erforderlich?Grund
boilerplate-bot/main.py, executor.py, etc.✅ JaDateien werden kopiert; Version löst Kopie aus
llm/src/shared/❌ NeinÜber Pfad referenziert, nimmt immer die neueste Version auf