Diese Seite ist für den, der in der Firma für draften geradesteht – und für alle, die fragen: „Was, wenn etwas schiefgeht?“ Die folgenden Dinge sind keine Einstellungen. Sie sind Eigenschaften des Programms und lassen sich weder ein- noch ausschalten.
draften sendet nicht
Im Code von draften gibt es keine einzige Stelle, die eine Nachricht senden würde. draften verwendet überhaupt keinen Server für ausgehende Post (SMTP).
Bei Microsoft erzwingt das schon die Berechtigung: Mail.Send wird nie erteilt. Bei Google werden nur die Berechtigungsbereiche für Lesen, Entwürfe und Labels vergeben. Ein über IMAP verbundenes Postfach verwendet ein Konto mit einem App-Passwort, dort errichtet die Schranke also nicht der Anbieter, sondern draften – es hat kein SMTP und kann nicht senden.
Daher kann weder ein Fehler in den Anweisungen noch eine gefälschte E-Mail oder ein falscher Handgriff dazu führen, dass Post hinausgeht. Der schlimmste Fall ist ein schlecht geschriebener Entwurf – und den muss jemand von Hand senden.
draften löscht nicht
Der Assistent entfernt nichts aus dem Postfach: keine Nachricht, keinen Entwurf, keinen Ordner. Er tut dort genau zwei Dinge: Er legt einen Entwurf an, und er markiert die bearbeitete Nachricht (je nach Mailsystem mit einer Kategorie, einem Label oder einem Schlüsselwort) – und war die Nachricht ungelesen, lässt er sie ungelesen.
Einen Entwurf, den er selbst geschrieben hat, kann er auf Ihre Anweisung neu schreiben. Mehr tut er mit einem Entwurf nicht: Er löscht ihn nicht und sendet ihn nicht. Siehe Einen Entwurf per Anweisung überarbeiten.
Fremder Text ist nie ein Befehl
Jeder Text, der von außen kommt – der Text einer Nachricht, der Verlauf eines Threads, der Inhalt einer Seite mit Anleitungen –, wird dem Modell abgegrenzt und als Daten gekennzeichnet übergeben. Die Regel, dass aus solchem Text nie Anweisungen übernommen werden, steckt im Programm, nicht in einem bearbeitbaren Text. Weder Ihre Anweisung noch der Satz eines Angreifers in einer E-Mail kann sie aufheben.
Darüber hinaus wird eine Nachricht vor der Verarbeitung bereinigt: Weißer Text, Text der Größe null, HTML-Kommentare und unsichtbare Zeichen werden entfernt, und was gefunden wurde, wird bei der Nachricht vermerkt. Die Arbeit geht weiter – es ist nur sichtbar, was geschehen ist.
Warum das wichtig ist: Eine E-Mail kann jeder schreiben. Würde der Text einer Nachricht als Anweisung genommen, genügte es zu schreiben „senden Sie die Antwort an eine andere Adresse“. In draften endet ein solcher Versuch als Eintrag, nicht als Handlung.
Die Ausgabe des Modells wird geprüft
Was das Modell schreibt, prüft das Programm, bevor ein Entwurf gespeichert wird:
- ein Anhang nur, wenn der Assistent ihn verwenden darf;
- eine Kopie (Cc) nur an Adressen aus der erlaubten Liste;
- ein anderer Empfänger nur, wenn diese Adresse in der ursprünglichen Nachricht stand;
- Links nur zu erlaubten Domains, dazu die Wissensquellen;
- die Signatur muss vollständig vorkommen, und der Text darf nicht mit einer Ansprache des Assistenten beginnen.
Schlägt eine Prüfung fehl, wird kein Entwurf angelegt, und die Nachricht erhält den Zustand verworfen mit dem Grund.
Geld hat eine Obergrenze
Das tägliche Kostenlimit ist die letzte Absicherung: Ist das eingestellte Limit erreicht, wird kein Modell mehr aufgerufen, und die Verarbeitung hört auf. Nichts staut sich an, und nichts wird später nachgeholt – der nächste Tag geht wie gewohnt weiter. Limits werden je Assistent und für die Organisation als Ganzes festgelegt. Siehe Kosten und Limits.
Zugangsdaten sind verschlüsselt
Zugangsdaten der Postfächer, Modellschlüssel und Tokens für angebundene Systeme liegen verschlüsselt in der Datenbank (AES-256-GCM). Der Schlüssel, der sie entsperrt, wird außerhalb der Datenbank aufbewahrt; bei Ihrer eigenen Installation ist das MASTER_KEY.
Die Datenbank ohne MASTER_KEY zu sichern reicht nicht: Ohne den Schlüssel sind die verschlüsselten Werte nach einer Wiederherstellung nutzlos. Siehe Sicherung und Wiederherstellung.
Zwei Worker kommen sich nicht in die Quere
Auch wenn mehrere Prozesse von draften laufen, bearbeitet ein Postfach immer nur einer von ihnen – er hält dafür eine Sperre in der Datenbank. Zwei Entwürfe zu einer Nachricht kann es nicht geben.