Zurück zur Startseite

KI-Agent für Mathematik auf Mac mini

Beschrieben wird die Erstellung eines autonomen mathematischen Labors auf Mac mini mit Wolfram Engine, Qwen Code CLI und Delta Chat. Das System nimmt Aufgaben aus dem Messenger an, generiert und führt Wolfram-Code lokal aus, gibt Ergebnisse mit Grafiken zurück und speichert die vollständige Sitzungshistorie.

Mathematisches Labor auf Mac mini: KI + Wolfram
Advertisement 728x90

KI-Agent für mathematische Forschung: Wolfram Engine + Qwen Code CLI auf Mac mini

Ein vollständig autonomes Labor für mathematische Forschung wurde geschaffen, das über eine Messaging-App zugänglich ist – ganz ohne Cloud-APIs, externe Server oder den Verlust der Kontrolle über Code und Daten. Das System läuft lokal auf einem Mac mini, erhält Aufgaben von Delta Chat, generiert Algorithmen in der Wolfram-Sprache mithilfe von Qwen Code CLI, führt sie über die Wolfram Engine aus und sendet Ergebnisse mit Grafiken direkt zurück in den Chat. Dies ist keine Schnittstelle zu einer vorgefertigten Lösung – es ist eine Forschungsumgebung, die den gesamten Denkprozess vom Problemformulierungsstadium bis zur Verifizierung abbildet.

Architektur ohne Zwischendienste

Die gesamte Nachrichtenverarbeitungspipeline ist als lokaler Workflow implementiert, ohne Abhängigkeiten von Drittanbieter-APIs oder SaaS-Plattformen. Der entscheidende Vorteil liegt in der vollständigen Kontrolle über Eingabeaufforderungen, ausgeführten Code und Datenlebenszyklen. Es gibt keine versteckten Cloud-Aufrufe, kein automatisches Senden von Code an LLM-Dienste und keine Erfassung von Metriken außerhalb des Benutzergeräts.

Eine Nachricht von Delta Chat (via IMAP/SMTP) gelangt in den Python-Bot math_bot.py, der:

Google AdInline article slot
  • den Absender anhand einer WHITELIST_EMAIL validiert;
  • eine neue Sitzung startet oder eine bestehende fortsetzt;
  • eine atomare Aufforderung erstellt, die ein Systemvorwort aus QWEN_PREAMBLE und Kontext aus vorherigen Schritten enthält;
  • qwen im Headless-Modus mit den Flags --yolo --continue ausführt;
  • stdout im JSON-Format erfasst;
  • Grafikdateien aus /tmp/mrl_graphics/ nach den Erweiterungen .png, .jpg, .svg, .pdf analysiert;
  • das Ergebnis zurück in den Chat sendet und gleichzeitig den Verlauf in sessions/ speichert.

Wichtig ist, dass Qwen Code CLI nicht als „Black Box“ verwendet wird. Es wird als lokales Unterprozess gestartet, und alle wolframscript-Befehle werden in einem streng definierten Verzeichnis mit expliziten Pfadangaben ausgeführt. Grafiken werden ausschließlich in einen dedizierten temporären Ordner exportiert – es werden keine Nebeneffekte in das Home-Verzeichnis oder ~/Downloads geschrieben.

Umgebungsanforderungen und Ausführungssicherheit

Das System ist für macOS 14+ konzipiert, funktioniert aber auch unter Linux und Windows dank plattformübergreifender Komponenten. Kritische Abhängigkeiten sind:

  • Wolfram Engine 14.1+ – die kostenlose Version der Engine für den persönlichen Gebrauch. Sie wird via pkg installiert, wodurch das wolframscript-Binärprogramm zum PATH hinzugefügt wird. Alle Berechnungen erfolgen lokal; keine Ausdrücke werden an Wolfram Cloud gesendet.
  • Qwen Code CLI v3.5 Plus – eine Headless-Version des Modells, die auf Node.js läuft. Sie benötigt keinen API-Schlüssel. Das Modell wird lokal geladen, wiegt etwa 2,1 GB (quantisiertes GGUF) und wird über die qwen-CLI mit --model qwen3.5-plus.Q4_K_M.gguf gestartet.
  • Delta Chat RPC Server – ein natives Binärprogramm (deltachat-rpc-server), das die Verbindung zum Mailbox verwaltet. Es arbeitet nur im --no-verify-ssl-Modus, wenn es lokal genutzt wird; für Ende-zu-Ende-Schutz wird PGP-Verschlüsselung per QR-Code empfohlen.

Die Sicherheitskonfiguration ist auf drei Ebenen implementiert:

Google AdInline article slot
  • Netzwerk: Delta Chat nutzt standardmäßige IMAP/SMTP-Ports ohne Portweiterleitung, VPNs oder Whitelisted IPs. Der Datenverkehr ist mit TLS 1.3 verschlüsselt.
  • Prozess: Qwen wird mit einem Timeout von QWEN_TIMEOUT=600 gestartet, um die Ausführung komplexer Aufgaben zu begrenzen. Wird das Limit überschritten, wird der Prozess zwangsweise über subprocess.run(..., timeout=...) beendet.
  • Datei: Alle Grafiken werden ausschließlich in /tmp/mrl_graphics/ gespeichert, und Sitzungen werden in PROJECT_DIR/sessions/ abgelegt. Der Pfad GRAPHICS_DIR wird vor der Nutzung mittels is_dir() auf absolute Gültigkeit und Existenz geprüft.

Implementierung des Sitzungslebenszyklus

Der Bot unterstützt sieben Befehle zur Sitzungsverwaltung, die jeweils den Zustand in SESSIONS_DIR modifizieren:

  • /start – erstellt eine neue Sitzung mit einer einzigartigen UUID, initialisiert session_YYYYMMDD_HHMMSS.md und _assets/.
  • /continue – setzt die letzte aktive Sitzung fort.
  • /resume <id> – öffnet eine bestimmte Sitzung nach ID.
  • /peek – zeigt die letzten PEEK_LINES=40 Zeilen des aktuellen Logs an.
  • /archive – verschiebt eine Sitzung in archived/ und entfernt sie aus dem Index.
  • /close – schließt eine Sitzung endgültig: kopiert solution.wl nach algorithms/, generiert summary.md und leert _assets/.
  • /help – gibt Hilfe aus, ohne Zugriff auf interne Pfade.

Jede Sitzung ist eine Markdown-Datei, die den Dialog chronologisch dokumentiert, wobei jeder Schritt vier obligatorische Blöcke enthält:

  • Verbaler Algorithmus (nummerierte Schritte);
  • Wolfram-Linguistik-Code (exakter Text, bereit zur Ausführung);
  • Tatsächliches Ergebnis von wolframscript (stdout/stderr);
  • Interpretation des Ergebnisses (1–2 Sätze).

Dies gewährleistet Reproduzierbarkeit: Jeder Schritt kann manuell über wolframscript -code "..." wiederholt werden, und alle Grafiken können aus Export[...] neu generiert werden.

Google AdInline article slot

Beispiel einer funktionalen Interaktion

Ein Nutzer sendet folgende Nachricht an den Chat:

Finden Sie die Schnittpunkte von y = x^2 und y = 2x + 3. Zeichnen Sie den Graphen.

Der Bot leitet die Anfrage an Qwen Code CLI weiter mit dem Vorwort:

Verwenden Sie nur wolframscript (nicht Python). Speichern Sie Grafiken in /tmp/mrl_graphics/. Beschriftungen auf Grafiken sollten in lateinischen Buchstaben sein.

Finden Sie die Schnittpunkte von y = x^2 und y = 2x + 3. Zeichnen Sie den Graphen.

Qwen antwortet mit einer strukturierten Antwort:

  • Verbaler Algorithmus

1. Setzen Sie die Funktionen gleich: x^2 == 2x + 3

2. Formen Sie um in Standardform: x^2 - 2x - 3 == 0

3. Lösen Sie die quadratische Gleichung

4. Zeichnen Sie beide Funktionen auf demselben Graphen

  • Wolfram-Code

---wl---

eq = x^2 == 2 x + 3;

solutions = Solve[eq, x];

Plot[{x^2, 2 x + 3}, {x, -3, 5},

Epilog -> {Red, PointSize[Large],

Point[{x, x^2} /. solutions]},

PlotLabel -> "Schnittstelle von y=x^2 und y=2x+3",

AxesLabel -> {"x", "y"}]

Export["/tmp/mrl_graphics/intersection.png", %]

---wl---

  • Wolframscript-Ergebnis

{{x -> -1}, {x -> 3}}

$Graphics$

  • Interpretation des Ergebnisses

Schnittpunkte: (-1, 1) und (3, 9). Der Graph wird als intersection.png gespeichert.

Der Bot extrahiert das PNG aus /tmp/mrl_graphics/, sendet es an den Chat und fügt diesen Block dem Sitzungsprotokoll hinzu.

Was zählt

  • Lokale Ausführung garantiert Privatsphäre: Kein mathematisches Objekt, keine Formel und keine Grafik verlässt jemals das Benutzergerät.
  • Wolfram Engine ist kein Ersatz für Python – sie ist ein spezialisierter Rechner: Sie bietet präzise symbolische Algebra, Visualisierung und numerische Methoden, ohne dass man eigene Solver schreiben muss.
  • Qwen Code CLI fungiert als Codegenerator, nicht als Solver: Das Modell gibt niemals eine „endgültige Antwort“ aus, sondern generiert lediglich ausführbaren Code und wartet auf das tatsächliche Ergebnis von wolframscript.
  • Delta Chat bietet Ende-zu-Ende-Verschlüsselung ohne Server: PGP-Schlüssel werden per QR-Code ausgetauscht, und Nachrichten werden geräteintern verschlüsselt.
  • Die Struktur algorithms/ schafft ein Repository reproduzierbarer Lösungen: Jeder Algorithmus enthält description.md, reasoning.md und solution.wl – bereit für Integration in CI/CD-Pipelines oder Dokumentation.

Einrichtung und Deployment

Zum Deployment benötigen Sie:

  • Installieren Sie die Wolfram Engine von der offiziellen Website und führen Sie wolframscript --install aus.
  • Installieren Sie Node.js 20+ und führen Sie npm install -g qwen-cli aus.
  • Erstellen Sie eine Conda-Umgebung: conda create -n mathbot python=3.12 && conda activate mathbot.
  • Installieren Sie Abhängigkeiten: pip install -r requirements.txt.
  • Konfigurieren Sie config.py: geben Sie WHITELIST_EMAIL, PROJECT_DIR und QWEN_CMD an.
  • Führen Sie die Initialisierung aus: bash init.sh – dies erstellt sessions/, algorithms/ und _index.md.
  • Starten Sie den Bot: python math_bot.py.

Nach dem Start beginnt der Bot alle 30 Sekunden, die Mailbox abzufragen. Zum Testen senden Sie einfach /start von einer autorisierten E-Mail-Adresse. Sitzungen werden in Echtzeit protokolliert, und Fehler werden in math_bot.log festgehalten.

— Editorial Team

Advertisement 728x90

Weiterlesen