Code Execution

Code Execution gibt dem LLM Chat ein abgeschottetes Terminal. Das Modell schreibt ein kurzes Programm, führt es auf den an Ihre Unterhaltung angehängten Dateien aus, und was dieses Programm ausgibt oder schreibt, kommt zurück in den Chat — als Ausgabe, die Sie lesen, und als Dateien, die Sie herunterladen können. So summiert der Chat die Zeilen einer Tabelle, konvertiert zwischen Formaten und erzeugt Dokumente, Arbeitsmappen, Präsentationen und Diagramme.

Wofür es verwendet wird

Für alles, was berechnet oder geschrieben statt beschrieben werden muss:

  • Rechnen über Daten — Summen, Differenzen, Prozentsätze und verstrichene Zeiten über die Zeilen einer Datei — also genau dort, wo das Ablesen und Zusammenzählen im Kopf schiefgeht.
  • Konvertieren und Bereinigen — CSV nach Excel, eine breite Tabelle ins lange Format umgeformt, Duplikate entfernt, Datumsangaben normalisiert, zwei Exporte verglichen.
  • Dateien erzeugen — ein Word-Bericht, eine ausgefüllte Vorlage, eine Präsentation, ein JSON- oder Markdown-Export oder ein ZIP-Archiv, wenn es zu viele Dateien sind, um sie einzeln anzuhängen.
  • Diagramme — ein Balken- oder Liniendiagramm Ihrer Daten, als Bild gespeichert und an die Unterhaltung angehängt.
  • Bilder und PDFs — Seitenzahlen, Textextraktion, PDFs zusammenführen oder teilen, Bilder stapelweise skalieren, eine Kontaktbogen-Übersicht erstellen.

Eine einzelne Rechnung, die schon in der Frage steht — 15 % von 200 — wird direkt beantwortet, ohne Ausführung. Die Sandbox ist für Arbeit an Daten gedacht, die das Modell nicht zuverlässig im Kopf erledigen kann, und für alles, was als Datei enden soll.

Wie man es aktiviert

Code Execution ist eine eingebaute Fähigkeit und steht mit den übrigen Werkzeugen in der Werkzeugauswahl des Chats. Schalten Sie sie für eine Unterhaltung aus, antwortet das Modell ohne sie; schalten Sie sie wieder ein, kann die nächste Frage sie erneut nutzen.

Die Werkzeugauswahl des Chats mit aktivierter Fähigkeit Code Execution
Vor Ort
Code Execution betreibt die Sandbox mit Docker auf dem Rechner, der QAnswer hostet; dem Backend muss also ein Docker-Daemon zur Verfügung stehen. Administratoren können die Fähigkeit für die Plattform, eine Organisation oder ein Team aktivieren oder deaktivieren — siehe MCP-Administration.

Beispiele

Das sind echte Anfragen, so formuliert, wie Menschen sie formulieren — keine einzige erwähnt Code, eine Sandbox oder eine Programmiersprache. Jede endet in einer überprüfbaren Antwort und, wo es sinnvoll ist, in einer Datei zum Herunterladen.

Tabellen und Daten

  • „Entferne die exakten Duplikate aus der angehängten sales_dirty.csv, wandle jedes order_date ins ISO-Format um und gib sie als sales_clean.xlsx zurück.“ Drei Datumsformate gehen hinein, eine saubere Arbeitsmappe kommt heraus, und die Zeilenzahl wird genannt, damit Sie es überprüfen können.
  • „Füge eine Spalte margin hinzu, berechnet als (price − cost) / price, und schicke die Datei als products_with_margin.xlsx zurück, mit hervorgehobenen Zeilen geringer Marge. Welche SKUs liegen unter 10 %?“
  • „Verknüpfe orders.csv über customer_id mit customers.csv und sag mir genau, welche Bestellungen keinen passenden Kunden haben.“ Beide Anhänge erreichen denselben Lauf, und die Abweichungen werden benannt statt übergangen.
  • „Die angehängte quarterly_wide.csv hat eine Spalte pro Quartal. Forme sie ins lange Format um, mit product, quarter und revenue.“
  • „Vergleiche catalogue_v1.csv und catalogue_v2.csv anhand von sku: Was kam hinzu, was fiel weg, und wo änderte sich der Preis — mit altem und neuem Wert.“
  • „Prüfe contacts_dirty.csv — eine E-Mail muss genau ein @ und keine Leerzeichen enthalten, eine Postleitzahl darf nur aus Ziffern bestehen. Melde die Probleme und nenne mir die fehlerhaften Zeilen-IDs.“
Ein Chat-Lauf, der eine angehängte CSV bereinigt und als Excel-Arbeitsmappe zurückgibt

Zahlen, die stimmen müssen

  • „Die angehängte Rechnung nennt eine Nettosumme von 8000,00 EUR. Ergeben die Positionen tatsächlich diesen Betrag? Nenne mir das korrekte Netto, die 20 % Mehrwertsteuer und den Bruttobetrag.“ Sie summieren sich auf 9090,00 — die Rechnung weist das Netto also um 1090,00 zu niedrig aus. Genau die Art Frage, bei der das Zusammenzählen mit dem Auge schiefgeht.
  • „Berechne für jedes Ticket die verstrichenen Stunden zwischen opened_at und resolved_at und sag mir, welche länger als 24 Stunden gedauert haben.“ Datumsrechnung über Tage und ein Wochenende hinweg — leicht falsch zu machen und leicht zu überprüfen.
Ein Chat-Lauf, der die Positionen einer Rechnung gegen die ausgewiesene Summe prüft

Dokumente, Präsentationen und Briefe

  • „Erstelle aus der angehängten KPI-Tabelle eine PowerPoint: eine Titelfolie plus eine Folie je KPI, jeweils mit einem kleinen Liniendiagramm der vier Quartale.“
  • „Fülle die Platzhalter unserer northwind_template.pptx mit einem aus der CSV erstellten Rückblick auf Q1–Q4, unter Beibehaltung des Layouts und der Farben der Vorlage.“ Ihre Unternehmensvorlage bleibt erhalten — nur die Platzhalter ändern sich.
  • „Schreibe je Empfänger ein Word-Angebotsschreiben, sprich sie namentlich an und nenne Unternehmen, Rolle und Rabatt, und bündle alles in offers.zip.“ Mehr Dokumente, als sich einzeln anhängen lassen — also packt der Lauf sie in ein ZIP-Archiv.
  • „Fülle die Vorlage des Audit-Berichts aus, ersetze den Platzhalter für die Feststellungen durch eine echte Word-Tabelle und ergänze ein Diagramm der Feststellungen nach Schweregrad.“
Ein Chat-Lauf, der aus einer angehängten KPI-Tabelle eine PowerPoint-Präsentation erstellt

PDFs

  • „Wie viele Seiten hat das angehängte PDF? Gib mir außerdem die Seiten 1 bis 5 als neue Datei zurück.“
  • „Führe diese beiden PDFs zusammen, Paracetamol zuerst, und nenne mir die Seitenzahl jeder Eingabe und des Ergebnisses.“
  • „Auf wie vielen Seiten kommt ‚escalation‘ vor, unabhängig von Groß- und Kleinschreibung, und wie viele erwähnen ‚KPI‘? Gib mir eine CSV der passenden Seitenzahlen.“
  • „Gib mir für das angehängte PDF eine Tabelle mit der Wortzahl pro Seite als page_stats.xlsx und sag mir, welche Seite die meisten Wörter hat.“
Ein Chat-Lauf, der die Seitenzahl eines angehängten PDFs nennt und einen Auszug zurückgibt

Bilder, Audio und Vektorgrafiken

  • „Skaliere beide angehängten Bilder unter Beibehaltung des Seitenverhältnisses auf 800 Pixel Breite und nenne mir die ursprünglichen und die neuen Abmessungen.“
  • „Erstelle aus den drei angehängten Bildern einen einzigen Kontaktbogen: Miniaturen nebeneinander, jede 300 Pixel breit, auf Weiß.“
  • „Füge unten rechts in diesem Bild ein Wasserzeichen mit dem Text (c) QAnswer ein.“ Direkt gefragt, nachdem der Chat das Bild erzeugt hatte — ein vom Assistenten erzeugtes Bild ist eine Datei in der Unterhaltung wie jede andere und lässt sich daher nachträglich bearbeiten.
  • „Erzeuge einen 3 Sekunden langen 440-Hz-Sinuston als Audiodatei zum Herunterladen.“
  • „Erzeuge ein SVG eines Balls und gib mir die Datei.“ Auszeichnungscode, den das Modell auch einfach hinschreiben könnte, kommt trotzdem als Datei an statt als Text in der Antwort.
Ein Chat-Lauf, der aus einer Anfrage in der Unterhaltung eine Bilddatei erzeugt

Mehrere Schritte nacheinander

Dateien bleiben zwischen Läufen erhalten, sodass eine Aufgabe über eine Unterhaltung hinweg aufgebaut werden kann:

  1. „Füge der angehängten catalogue.csv eine Spalte margin_pct hinzu, auf eine Nachkommastelle gerundet, und speichere sie als catalogue.csv.“
  2. „Sortiere catalogue.csv jetzt absteigend nach margin_pct und speichere sie zurück.“
  3. „Exportiere die sortierte catalogue.csv nach catalogue.xlsx und sag mir, wie viele Zeilen sie hat.“

Jede Runde liest, was die vorherige geschrieben hat, sodass der dritte Lauf die sortierte Datei exportiert und nicht den ursprünglichen Upload.

Drei aufeinanderfolgende Chat-Runden, bei denen jeder Lauf die Datei liest, die der vorherige geschrieben hat

Zusammen mit anderen Werkzeugen

„Sieh dir https://qanswer.ai an und erstelle dazu eine Präsentation mit 2 Folien.“ Die Seite wird über das URL-Scraping der Web Search gelesen und die Präsentation in der Sandbox geschrieben, in einer einzigen Runde. Code Execution hat kein eigenes Netzwerk; die Kombination beider Werkzeuge ist also der Weg, wie Live-Daten in einer erzeugten Datei landen.

Eine einzelne Runde, die mit Web Search eine Webseite liest und in der Sandbox eine Präsentation schreibt

Was in der Sandbox verfügbar ist

Die Sandbox ist ein kleiner Linux-Container mit einem Interpreter und einem festen Satz an Bibliotheken. Zur Laufzeit lässt sich nichts installieren, das hier Aufgeführte ist also alles, was ein Lauf nutzen kann:

  • Python 3.11 — pandas, numpy und matplotlib für Daten und Diagramme; scipy für Statistik, Signal- und Audioverarbeitung; mpmath für Arithmetik mit beliebiger Genauigkeit; openpyxl, xlsxwriter, xlrd und odfpy für Tabellen; pypdf, python-docx und python-pptx für Dokumente, PDFs und Präsentationen; Pillow für Bilder; tabulate für Texttabellen.
  • Weitere Sprachen — Auch JavaScript, Java, C++, Go, Ruby und R laufen, jeweils nur mit ihren Standardbibliotheken. Für die Arbeit an Ihren Dateien wird Python verwendet, denn dort liegen die Lese- und Schreibbibliotheken.

Grenzen

  • Kein Netzwerk — die Sandbox hat überhaupt keinen Internetzugang. Ein Lauf kann keine URL abrufen, keine API aufrufen und kein Paket installieren.
  • Zeit und Speicher — ein Lauf wird nach 30 Sekunden abgebrochen und erhält 512 MB Arbeitsspeicher und eine CPU. Die Ausgabe wird nach etwa 8.000 Zeichen abgeschnitten.
  • Dateigrößen — bis zu zehn Dateien gehen hinein (je 25 MB, 50 MB insgesamt) und bis zu zehn kommen heraus (je 25 MB).
  • Kein Zustand zwischen Läufen — Variablen, installierte Pakete und alles im Arbeitsspeicher Gehaltene sind nach dem Ende eines Laufs verschwunden. Nur Dateien werden übernommen — deshalb schreibt eine mehrstufige Aufgabe alles Nötige in eine Datei.
Warnung
Da es kein Netzwerk gibt, kann eine Anfrage, die Live-Daten braucht — den heutigen Wechselkurs, eine Seite aus dem Web — nicht von einem Lauf bedient werden. Dafür ist Web Search da, und beide lassen sich in derselben Unterhaltung nutzen.

Isolation

Jeder Lauf findet in einem Container ohne Netzwerkzugang statt, und dessen Arbeitsverzeichnis wird sowohl vor dem Start des Programms als auch nach dessen Ende gelöscht — nichts aus einer Unterhaltung ist also in der nächsten sichtbar. Ihre Dateien werden aus Ihrer eigenen Unterhaltung hineinkopiert und niemals an einen Dritt-Dienst gesendet.