Spec v0.1 — 12 sept 2026. Scop: replică pattern-ul Apodex („Environment Scaling") pe cfohub.ai, ca arhitectură, nu ca model.
Un CFO nu vrea un chatbot care „rezumă" documente. Vrea analiză pe cifre: variance, growth, top drivers, rate. cfohub.ai azi face RAG pe documente (LLM local + Docling + Dify). Îi lipsește exact partea care dă valoare unui CFO: un agent care scrie și rulează cod pe date și întoarce concluzii cu dovezi.
Un agent care ia un CSV/Excel de la utilizator, rulează analize Python într-un sandbox izolat, și întoarce un raport în care fiecare concluzie e susținută de o cifră și o sursă (tabel/rând).
CSV/Excel ──► Sandbox (Python + pandas + duckdb, read-only)
▲ │
│ execuție │ output
│ ▼
Agent loop ◄── LLM (DeepSeek via LiteLLM)
│
▼
Checkpoint (stare intermediară → parquet)
Sandbox de execuție — container Docker izolat, fără egress de rețea, mount read-only pe fișierul de date, output scris doar în volumul lui. Timeout pe execuție (ex: 120s), cap pe dimensiune fișier (ex: 100MB). Asta e „four walls" — datele CFO nu pleacă nicăieri.
Agent loop — LLM propune plan → scrie Python → rulează în sandbox → citește output/eroare → decide pasul următor. Plafon de iterații (ex: 10) ca să nu bucleze. LLM-ul e worker, sandbox-ul + verificarea rezultatului sunt verifier (regula ta: nu împart context).
Checkpointing — după fiecare pas de succes, dataframe-ul curățat/transformarea se salvează ca parquet. Dacă intervii sau un pas eșuează, se replanifică doar partea afectată, nu se repornește tot. Ăsta e singurul lucru „nou" furat de la Apodex.
Markdown, fiecare concluzie = o cifră + sursa. Exemplu:
Gross margin a scăzut 3.2pp (Q2 41.8% → Q3 38.6%). Driver principal: costuri materii prime +11% (vezi tabel
COGS, rând 17), nu prețurile de vânzare.
Zero concluzie fără cifră. Zero cifră fără sursă.
| Componentă | Alegere | De ce |
|---|---|---|
| Sandbox | container Python slim + pandas + duckdb |
duckdb > pandas pe fișiere mari, ai deja totul |
| Execuție | FastAPI endpoint (sau MCP) expus de sandbox | simplu, self-hosted |
| LLM | DeepSeek via LiteLLM (ai deja proxy-ul) | fără costuri noi de infra |
| Checkpoint | parquet pe disk local | zero dependențe noi |
| Intrarea documentelor | Docling (deja în stack) | scoate tabelele din PDF/Excel înainte de analiză |
financial-analyst + bank-csv-analyzer skill-uri → logica de analiză există, o copii în agent„Reasoning out of the report, into executing real tasks" e fix pitch-ul corect pentru cfohub.ai. Asta diferențiază un SaaS de CFO de un wrapper peste ChatGPT. Merită construit — dar e un proiect nou, nu o extensie de weekend. 2-3 săptămâni, single-tenant, pe datele unui singur CFO care acceptă să fie tester.