AI-agent pro matematické výzkumy: Wolfram Engine + Qwen Code CLI na Mac mini
Vytvořena zcela autonomní laboratoř pro matematický výzkum prostřednictvím messengera — bez cloudových API, bez externích serverů a bez ztráty kontroly nad kódem a daty. Systém pracuje lokálně na Mac mini, přijímá úkoly z Delta Chatu, generuje algoritmy ve Wolfram Language pomocí Qwen Code CLI, vykonává je prostřednictvím Wolfram Engine a vracejí se výsledky s grafy přímo do chatu. Nejedná se o rozhraní k hotovému řešení — jde o výzkumné prostředí, které zaznamenává celý proces myšlení: od formulace po verifikaci.
Architektura bez meziproduktů
Celý řetězec zpracování zpráv je realizován jako lokální konvejér bez závislostí na cizích API nebo SaaS platformách. Klíčovou výhodou je plná kontrola nad vstupními prompty, spouštěným kódem i životností dat. Není žádných skrytých volání do cloudu, žádné automatické odesílání kódu do LLM služeb, žádné sběru metrik mimo zařízení uživatele.
Zpráva z Delta Chatu (přes IMAP/SMTP) putuje do Python bota math_bot.py, který:
- Validuje odesílatele podle
WHITELIST_EMAIL; - Založí novou session nebo obnoví existující;
- Vytvoří atomární prompt obsahující systémovou preambulu z
QWEN_PREAMBLEa kontext předchozích kroků; - Spustí
qwenv headless režimu s parametry--yolo --continue; - Zachytí stdout ve formátu JSON;
- Parsuje grafické soubory z
/tmp/mrl_graphics/podle přípon.png,.jpg,.svg,.pdf; - Odpověď odešle zpět do chatu s uchováním historie v
sessions/.
Důležité: Qwen Code CLI není používán jako „černá krabice“. Spouští se jako lokální subprocess a všechny příkazy wolframscript jsou prováděny v přesně určené složce s explicitním zadáním cest. Grafy jsou exportovány pouze do vyhrazené dočasné složky — žádné vedlejší zápisy do domácí složky ani do ~/Downloads.
Požadavky na prostředí a bezpečnost provozu
Systém je navržen pro macOS 14+, ale kompatibilní s Linuxem i Windows díky multiplatformním komponentám. Kritické závislosti:
- Wolfram Engine 14.1+ — bezplatná verze engine dostupná pro osobní použití. Instaluje se přes pkg, přidá binárku
wolframscriptdo PATH. Veškeré výpočty probíhají lokálně; žádné výrazy nejsou odesílány do Wolfram Cloud. - Qwen Code CLI v3.5 Plus — headless verze modelu fungující přes Node.js. Nevyžaduje API klíč. Model je nahrán lokálně, váží ~2,1 GB (quantized GGUF), spouští se přes
qwenCLI s--model qwen3.5-plus.Q4_K_M.gguf. - Delta Chat RPC Server — nativní binárka (
deltachat-rpc-server), která řídí spojení s e-mailovou schránkou. Pracuje v režimu--no-verify-sslpouze při lokálním použití; doporučuje se nastavení PGP šifrování prostřednictvím QR kódu pro E2E ochranu.
Bezpečnostní konfigurace je realizována na třech úrovních:
- Síťová: Delta Chat používá standardní IMAP/SMTP porty bez přesměrování portů, bez VPN a bez bílého IP. Doprava je šifrována TLS 1.3.
- Procesní: Qwen je spouštěn s timeoutem
QWEN_TIMEOUT=600, což omezuje provádění složitých úloh. Při překročení je proces nuceně ukončen pomocísubprocess.run(..., timeout=...). - Souborová: Všechny grafy jsou uloženy výhradně v
/tmp/mrl_graphics/, session pak vPROJECT_DIR/sessions/. CestaGRAPHICS_DIRje před použitím ověřena na absolutnost a existenceis_dir().
Realizace životního cyklu session
Bot podporuje 7 příkazů pro řízení session, každý z nich mění stav v SESSIONS_DIR:
/start— vytvoří novou session s unikátním UUID, inicializujesession_YYYYMMDD_HHMMSS.mda_assets/./continue— obnoví poslední aktivní session./resume <id>— otevře konkrétní session podle ID./peek— zobrazí posledníchPEEK_LINES=40řádků aktuálního logu./archive— přesune session doarchived/, odstraní ji z indexu./close— finalizuje session: kopírujesolution.wldoalgorithms/, generujesummary.md, vyčistí_assets/./help— vypíše návod bez přístupu k interním cestám.
Každá session je Markdown soubor s chronologií dialogu, kde každý krok obsahuje čtyři povinné bloky:
- Slovní algoritmus (číslované kroky);
- Kód Wolfram Language (přesný text, připravený k provedení);
- Faktický výstup
wolframscript(stdout/stderr); - Interpretace výsledku (1–2 věty).
To zajišťuje reprodukovatelnost: každý krok lze ručně opakovat prostřednictvím wolframscript -code "...", a všechny grafy lze znovu vygenerovat z Export[...].
Příklad pracovního interakce
Uživatel odesílá do chatu:
Najdi body průniku y = x^2 a y = 2x + 3. Nakresli graf.
Bot předává dotaz do Qwen Code CLI s preambulí:
Využij pouze wolframscript (ne Python). Grafy ukládej do /tmp/mrl_graphics/. Názvy na grafech — pouze latinka.
Najdi body průniku y = x^2 a y = 2x + 3. Nakresli graf.
Qwen vrátí strukturovanou odpověď:
- Slovní algoritmus
1. Přirovnat funkce: x^2 == 2x + 3
2. Převést na standardní tvar: x^2 - 2x - 3 == 0
3. Vyřešit kvadratickou rovnici
4. Nakreslit grafy obou funkcí na jednom poli
- Kód Wolfram
---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 -> "Průnik y=x^2 a y=2x+3",
AxesLabel -> {"x", "y"}
Export["/tmp/mrl_graphics/intersection.png", %]
---wl---
- Výsledek wolframscript
{{x -> -1}, {x -> 3}}
$Graphics$
- Interpretace výsledku
Body průniku: (-1, 1) a (3, 9). Graf je uložen jako intersection.png.
Bot extrahuje PNG z /tmp/mrl_graphics/, odesílá ho do chatu a doplňuje tento blok do logu session.
Co je důležité
- Lokální provoz zaručuje soukromí: žádný matematický objekt, vzorec ani graf neopustí zařízení uživatele.
- Wolfram Engine není náhradou Pythonu, ale specializovaným výpočetním nástrojem: zajišťuje přesnou symbolickou algebra, vizualizaci i numerické metody bez nutnosti psát vlastní řešiče.
- Qwen Code CLI funguje jako kodogenerátor, nikoli řešitel: model nikdy nevydá „odpověď“, ale pouze generuje spouštěcí kód a čeká na faktický výstup
wolframscript. - Delta Chat poskytuje end-to-end šifrování bez serverů: PGP klíče se vyměňují prostřednictvím QR kódu, zprávy jsou šifrovány na zařízení.
- Struktura
algorithms/vytváří repozitář reprodukovatelných řešení: každý algoritmus obsahujedescription.md,reasoning.mdasolution.wl— připravený k integraci do CI/CD nebo dokumentace.
Nastavení a nasazení
K nasazení je potřeba:
- Nainstalovat Wolfram Engine z oficiálních stránek a spustit
wolframscript --install. - Nainstalovat Node.js 20+ a provést
npm install -g qwen-cli. - Vytvořit conda okolí:
conda create -n mathbot python=3.12 && conda activate mathbot. - Nainstalovat závislosti:
pip install -r requirements.txt. - Nastavit
config.py: uvéstWHITELIST_EMAIL,PROJECT_DIR,QWEN_CMD. - Spustit inicializaci:
bash init.sh— vytvořísessions/,algorithms/,_index.md. - Spustit bota:
python math_bot.py.
Po startu začíná bot vyhledávat e-mailovou schránku každých 30 sekund. Pro testování stačí odeslat /start z autorizovaného emailu. Session jsou logovány v reálném čase, chyby v math_bot.log.
— Editorial Team
Zatím žádné komentáře.