Artikelbild für den Artikel: Die Technologie hinter Replit's Snapshot Engine: Sicheres Arbeiten mit KI-Agenten

Die Technologie hinter Replit’s Snapshot Engine: Sicheres Arbeiten mit KI-Agenten

Replit hat eine Compute- und Speicherinfrastruktur entwickelt, die es ermöglicht, Änderungen in einer isolierten und reversiblen Weise vorzunehmen, fast wie Zeitreisen. Diese Technologie wurde ursprünglich entwickelt, um Replit für professionelle Entwickler und die Teamzusammenarbeit leistungsfähiger zu machen. Die zugrunde liegenden Systeme ermöglichen es Entwicklern, häufiger und schneller zu experimentieren, da sie die Geschwindigkeit nutzen können, mit der sie eine Compute-Umgebung klonen und Änderungen vornehmen können.

Einführung in die Snapshot Engine

Als wir 2024 Replit Agent entwickelten, erkannten wir, dass dieselben Technologien auch die Coding-Agenten erheblich unterstützen können. Ein Beispiel, das wir früh in der Entwicklung des Replit Agent entdeckten, ist, dass der direkte Zugriff eines KI-Agenten auf Ihren Code und Ihre Datenbank riskant sein kann. Es besteht die Möglichkeit, dass Änderungen vorgenommen werden, die nicht gewünscht sind, oder dass Daten unwiderruflich gelöscht oder verändert werden.

Bottomless Storage Infrastructure

Im Jahr 2023 führten wir unsere Bottomless Storage Infrastructure ein, die ursprünglich dazu gedacht war, Speicherbeschränkungen in Replit Apps zu adressieren und gleichzeitig extrem schnelles Remixing (d.h. Kopieren) der Projektdateisysteme zu ermöglichen. Diese Infrastruktur ermöglicht es, dass Ihre Apps um mehr als 256x wachsen können.

Auf hoher Ebene bietet unsere Speicher-Engine virtuelle Blockgeräte, die über das Network Block Device-Protokoll bereitgestellt werden und von Google Cloud Storage unterstützt werden. Diese Blockgeräte sind in 16 MiB große Blöcke unterteilt, die unveränderlich in GCS gespeichert werden. Ein Manifest enthält Zeiger auf alle Blöcke, die eine einzelne Version des Blockgeräts ausmachen. Da die Blöcke unveränderlich sind, ist das Kopieren eines Datenträgers eine Frage des Kopierens des Manifests, was sowohl kostengünstig als auch konstant in der Zeit ist.

Versionierung von Codeänderungen

Die Handhabung von Codeänderungen erfolgt über das branchenübliche Git-Versionierungssystem. Immer wenn der Agent einen bestimmten Zustand der “Fertigkeit” für eine Aufgabe erreicht, erstellen wir einen Git-Commit und zeichnen ihn in den Checkpoint-Metadaten auf. Wenn ein Benutzer Codeänderungen, die vom Agenten vorgenommen wurden, rückgängig machen möchte, kann er zu jedem Checkpoint zurückkehren, was die Verwendung von Git zur Wiederherstellung des Codes in seinen früheren Zustand nutzt.

Da der Agent Git konsistent verwendet, kann er die Standard-Git-Tools nutzen, um über Codeänderungen und die Historie des Projekts selbst nachzudenken. Wir haben sogar beobachtet, dass er die Historie eines Projekts betrachtet, um einen Teil des Codes wiederherzustellen, der irgendwann entfernt wurde.

Forkbare Datenbanken und KI-Sandboxen

Die bloße Versionierung des Codes reicht nicht aus, da die meisten Apps auch eine Datenbank verwenden. Das Datenbankschema und die Daten können sich parallel zum Code entwickeln, sodass es wichtig ist, die Datenbank mit dem Code synchron zu halten. Um zu verhindern, dass der Agent auf Ihre Produktionsdatenbank zugreift, verwenden wir separate Produktions- und Entwicklungsdatenbanken und gewähren dem Agenten nur Zugriff auf die Entwicklungsdatenbank.

Durch die Nutzung unserer Bottomless Storage Infrastructure konnten wir diese Funktionalität in einem Bruchteil der Zeit und des Betriebsaufwands implementieren. Wir können versionierte und forkbare Datenbanken erstellen, indem wir eine unmodifizierte lokale Instanz von PostgreSQL ausführen, die die Daten auf einem von unserer Speicherinfrastruktur unterstützten Dateisystem speichert.

Die Zukunft: Transaktionale Berechnungen und parallele Simulationen von Agenten

Bis jetzt haben wir diese Technologie verwendet, um einfache Rücksetzungen zu ermöglichen, aber sie ist viel leistungsfähiger. Durch die Verwendung schneller, isolierter Forks von sowohl dem Code als auch der Datenbank können wir KI-Agenten eine Sandbox bieten, um Änderungen in einer sicheren Umgebung auszuprobieren. Dies bedeutet, dass wir einige der Schutzmaßnahmen des Modells in dieser isolierten Umgebung lockern können, sodass es mit Tools experimentieren kann, die riskant wären, sie in der normalen Entwicklung einzusetzen.

Am Ende der Sitzung verschwinden die Berechnungen und der Speicher, aber wenn nützlich, können Sie die Erkenntnisse und eine kleine Codeänderung festhalten. Wenn diese Erkundung nicht erfolgreich ist, kann sie sicher verworfen und erneut mit leicht unterschiedlichen Parametern versucht werden.

Fazit

Replit’s Snapshot Engine und die damit verbundenen Technologien ermöglichen es Entwicklern, sicherer und effizienter mit KI-Agenten zu arbeiten. Durch die Kombination von Bottomless Storage Infrastructure, Git-Versionierung und isolierten Sandboxen wird die Entwicklung von KI-Agenten revolutioniert, indem Risiken minimiert und gleichzeitig die Flexibilität maximiert wird.

Quellenliste:

Dieser Artikel wurde mithilfe von KI verfasst und basiert auf automatisch gesammelten Informationen.
0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar