Cortex Agent-Versionierung¶
Die Cortex Agent-Versionierung ermöglicht ein Modell zur Lebenszyklusverwaltung, mit dem Sie Agenten über unterschiedliche Versionen entwickeln, testen und bereitstellen können. Jeder Agent hat eine Live-Version – eine veränderbare Arbeitskopie, die Sie für die Entwicklung verwenden – und kann eine beliebige Anzahl von benannten Versionen haben – unveränderliche Snapshots, die Sie für stabile Bereitstellungen verwenden. Durch das Commit der Live-Version erstellen Sie eine benannte Version, die die Konfiguration des Agenten zu einem bestimmten Zeitpunkt erfasst. Sie können API-Anfragen anschließend über den Namen, einen Alias oder einen Shortcut an jede beliebige Version weiterleiten.
Dieses Modell trennt den Entwicklungsworkflow vom Produktionsworkflow. Sie iterieren mit der Live-Version, übergeben diese, sobald sie fertig ist, weisen der übergebenen Version einen Alias wie production zu und leiten den Datenverkehr an diesen Alias weiter. Wenn Sie ein Rollback durchführen müssen, verweisen Sie den Alias auf eine frühere benannte Version.
So funktioniert die Versionierung von Agenten¶
Der Lebenszyklus eines Agenten folgt einem Commit-basierten Modell:
Wenn Sie einen Agenten erstellen, erstellt dieser automatisch eine übergebene
VERSION$1-Version und eineLIVE-Version mit derselben Spezifikation.Sie erstellen oder ändern die Live-Version des Agenten während der Entwicklung.
Wenn der Agent für die Bereitstellung bereit ist, übertragen Sie die Live-Version. Snowflake erstellt eine benannte Version mit einem vom System zugewiesenen Bezeichner im Format
VERSION$N(z. B.VERSION$2,VERSION$3).Sie weisen einen Alias zu oder legen die benannte Version als Standard fest.
Interaktionsanforderungen zielen auf die benannte Version ab – entweder über den Namen, den Alias oder die Tastenkombination – um ein stabiles, wiederholbares Verhalten zu erreichen.
Nach einem Commit wird die Live-Version nicht automatisch neu erstellt. Sie erstellen explizit eine neue Live-Version, wenn Sie bereit sind, die Entwicklung fortzusetzen.
Sie können benannte Versionen auch direkt aus einem Stagingbereich oder Git-Repository erstellen, ohne die Live-Version durchgehen zu müssen. Dies unterstützt Workflows, bei denen Änderungen offline zusammengeführt und dann als neue Version importiert werden.
Live-Versionen¶
Die Live-Version ist der veränderbare, bearbeitbare Zustand eines Agenten. Sie verwenden sie während der Entwicklung, um die Konfiguration, die Anweisungen, die Tools und die Fähigkeiten des Agenten zu iterieren. Jeder Agent kann immer nur eine Live-Version haben.
Für das Erstellen einer Live-Version gibt es folgende Möglichkeiten:
Von der Agentenerstellung: Wenn Sie einen neuen Agenten erstellen, wird automatisch eine Live-Version erstellt.
Von der letzten bestätigten Version: Stellen Sie die Live-Version von der letzten benannten Version wieder her, um die Entwicklung von einem bekannten Zustand aus fortzusetzen.
Von der |sf-web-interface| UI: Die UI kann die Erstellung einer neuen Live-Version veranlassen.
Sie können der Live-Version zum Zeitpunkt der Erstellung optional einen Alias zuweisen:
Die Live-Version ist für die interaktive Entwicklung konzipiert. Snowflake empfiehlt, die Live-Version zu committen, bevor Sie sie in der Produktion verwenden, um sicherzustellen, dass Sie einen unveränderlichen Referenzpunkt haben.
Benannte Versionen¶
Eine benannte Version ist ein unveränderlicher Snapshot der Konfiguration des Agenten zum Zeitpunkt des Commit. Einmal erstellt, kann eine benannte Version nicht mehr geändert werden – Sie können nur ihre Metadaten aktualisieren (Kommentar oder Alias) oder sie ganz löschen. Diese Unveränderlichkeit macht benannte Versionen zur Grundlage für stabile, reproduzierbare Bereitstellungen.
Snowflake weist jeder benannten Version eine Systembezeichner im Format VERSION$N zu, wobei N sich bei jedem Commit erhöht:
Dadurch wird VERSION$2 (oder die nächste verfügbare Zahl) erstellt. Sie können benannte Versionen auch direkt aus einem Stagingbereich oder Git-Repository erstellen:
So zeigen Sie alle Versionen eines Agenten an:
Um eine benannte Version zu entfernen, ist Folgendes nicht mehr erforderlich:
Bemerkung
Sie können nur benannte Versionen löschen. Sie können die Live-Version nicht löschen.
Aliasse¶
Ein Alias ist eine von Menschen lesbare Bezeichnung, die Sie einer Version zuweisen. Aliasse erleichtern das Referenzieren von Versionen in API-Aufrufen und Stagingoperationen, ohne die vom System zugewiesene Versionsnummer zu kennen. Zu den üblichen Alias-Mustern gehören production, staging, canary und rollback.
Sie weisen einer benannten Version oder der Live-Version einen Alias zu:
Einmal zugewiesen, können Sie den Alias überall dort verwenden, wo ein Versionsbezeichner akzeptiert wird – in API-Aufrufen, Stagingbereich-URIs und SQL-Befehlen.
Alias-Verhalten:
Jeder Alias muss innerhalb eines Agenten eindeutig sein.
Aliasnamen werden zwischen Groß- und Kleinschreibung unterschieden, wenn sie mit Bezeichnern in doppelten Anführungszeichen erstellt werden. Andernfalls werden sie in Großbuchstaben gespeichert.
Sie können einen Alias von einer Version auf eine andere neu zuweisen, um den Datenverkehr umzuleiten, ohne den aufrufenden Code zu ändern.
Um beispielsweise eine neue Version in die Produktion zu überführen, weisen Sie den``production``-Alias neu zu:
Alle API-Aufrufe, die auf den production-Alias abzielen, werden jetzt zu VERSION$4 weitergeleitet, ohne dass die aufrufende Anwendung geändert wird.
Tastenkombinationen bei Versionen¶
Snowflake bietet integrierte Tastenkombinationen für das Referenzieren von Versionen an, ohne dass der genaue Versionsname oder Alias bekannt ist. Sie können diese Tastenkombinationen im API-Endpunkt und in den StagingbereichURIs verwenden:
Tastaturkürzel |
Beschreibung |
|---|---|
|
Die aktuelle Live-Version |
|
Die erste mit Commit bestätigte benannte Version |
|
Die zuletzt mit Commit bestätigte benannte Version |
|
Die Version, die als Standard für den Agenten festgelegt wurde |
Tastenkombinationen sind nützlich für Automatisierungsskripte und CI-/CD-Pipelines, bei denen die genaue Versionsnummer nicht im Voraus bekannt ist. Beispielsweise können Sie mit dem Kürzel LAST immer die zuletzt übergebene Version ausführen oder gezielt die Version ansteuern, die vom Eigentümer des Agenten als Standard festgelegt wurde
Standardversion¶
Wenn Sie nichts explizit festlegen, ist die DEFAULT-Version die letzte übergebene Version. Sie können auch eine Version als Standard für den Agenten festlegen. Die Standardversion ist die Version, die der Agent verwendet, wenn in einem API-Aufruf keine Version angegeben ist.
Sie können den Standard auch auf eine Systemverknüpfung wie FIRST oder LAST festlegen.
Durch das Festlegen einer Standardversion können Sie kontrollieren, welche Version den Datenverkehr bedient, ohne dass der Aufrufer in jeder Anforderung eine Version angeben muss. Wenn Sie eine neue Version hochstufen, aktualisieren Sie die Standardeinstellung, um alle nicht versionierten API-Aufrufe umzuleiten.
Versionierung und CI/CD¶
Die Versionierung von Agenten lässt sich in CI-/CD-Workflows integrieren, indem sie die Erstellung von Versionen aus externen Quellen – wie Stagingbereiche und Git-Repositorys – unterstützt und Aliase sowie Kürzel für das Umgebungsrouting bereitstellt.
Ein typischer CI-/CD-Workflow für Agenten folgt diesem Muster:
Entwickeln: Bearbeiten Sie die Live-Version des Agenten auf in der Snowsight UI oder überSQL. Testen Sie interaktiv.
Commit: Wenn der Agent fertig ist, übertragen Sie die Live-Version, um eine unveränderliche benannte Version zu erstellen.
Testen: Leiten Sie den Testdatenverkehr an die neue benannte Version unter Verwendung der System-ID oder eines
staging-Alias weiterHeraufstufen: Weisen Sie den
production-Alias wieder der neuen Version zu, sobald die Tests abgeschlossen sind.Zurücksetzen (Rollback)*: Wenn Probleme auftreten, weisen Sie den
production-Alias wieder der vorherigen benannten Version zu.
Für Teams, die Agentenkonfigurationen in Git verwalten, wechselt der Workflow zu einem Importmodell:
Entwickeln: Bearbeiten Sie die Konfigurationsdateien des Agenten in einem Git-Repository.
Merge: Überprüfen und fassen Sie Änderungen über Ihren standardmäßigen Pull-Anforderungsprozess zusammen.
Importieren: Erstellen Sie eine benannte Version aus dem mit Git verbundenen Stagingbereich und umgehen Sie die Live-Version vollständig.
Bereitstellen: Weisen Sie den
production-Alias der importierten Version zu.
Sie können einen neuen Agenten auch direkt aus einem Stagingbereich erstellen, als Teil eines Infrastruktur-as-Code-Workflows:
Stagingbereichsoperationen¶
Jede Agentenversion hat einen internen, versionierten Stagingbereichspfad, auf den Sie über das snow://agent/ URI-Schema zugreifen können. Hier können Sie die Dateien prüfen, aus denen eine Version besteht – einschließlich der Agentenspezifikation, der Fähigkeitsdefinitionen und der unterstützenden Skripte.
Das URI-Format ist:
Das <version>-Segment akzeptiert eine Systemversions-ID (VERSION$N), einen benutzerdefinierten Alias oder das Schlüsselwort live.
Stagingbereichsoperationen sind schreibgeschützt und nützlich für die Prüfung, das Debuggen und den Vergleich von Versionen.
Ausführen einer bestimmten Version¶
Sie können eine Anforderung an eine bestimmte Version eines Agenten senden, indem Sie den versionierten API-Endpunkt verwenden:
Der {version}-Pfadparameter akzeptiert einen der folgenden Werte:
Bezeichnertyp |
Beispiel |
|---|---|
Name der Systemversion |
|
Benutzerdefinierter Alias |
|
Tastaturkürzel |
|
Standardmäßig streamt die API Antworten als vom Server gesendete Ereignisse (SSE). Um eine einzelne JSON-Antwort zu erhalten, legen Sie stream auf false im Anforderungstext fest.
Einschränkungen¶
Die folgenden Einschränkungen gelten für die Versionierung des Cortex -Agent:
Eine Live-Version: Jeder Agent kann immer nur eine Live-Version haben.
Live-Version nicht automatisch erstellt: Nachdem Sie die Live-Version übertragen haben, wird nicht automatisch eine neue Live-Version erstellt. Sie müssen explizit eine erstellen.
Benannte Versionen sind unveränderlich: Sie können die Konfiguration einer benannten Version nicht ändern. Sie können nur Metadaten (Kommentar, Alias) aktualisieren oder löschen.
Nur Benannte löschen: Sie können benannte Versionen löschen, aber nicht die Live-Version.
Alias-Eindeutigkeit: Jeder Alias muss innerhalb eines Agenten eindeutig sein. Die Zuweisung eines Alias, der bereits in einer anderen Version existiert, führt zu einem Fehler.
Unterscheidung nach Groß-/Kleinschreibung: Aliasnamen werden zwischen Groß- und Kleinschreibung unterschieden, wenn sie mit Bezeichnern in doppelten Anführungszeichen erstellt werden. Andernfalls werden sie in Großbuchstaben gespeichert.