# Report Provider LLM per adiuvAI — Aprile 2026

> Analisi comparativa dei provider per i **11 agenti AI** configurati in `api/.env.example`. Selezione ottimizzata per costo, qualità, latenza e privacy dei dati, con **due mapping distinti**: Production (Zero Data Retention obbligatorio) e Development (cost-efficient).

---

## Architettura — Gli 11 Agenti

Ogni variabile `LLM_MODEL_*` in `api/.env.example` controlla un agente con profilo d'uso specifico. Analisi dei requisiti emersa dall'ispezione del codice in `api/app/agents/`, `api/app/core/` e `api/app/memory/`.

| # | Env Var | Agente | Tool Calling | Latenza | Qualità | Volume/utente | Real-time? |
|---|---------|--------|--------------|---------|---------|--------------|------------|
| 1 | `LLM_MODEL_CLASSIFIER` | **Intent Classifier** — smista i messaggi del floating panel verso task/project/note/timeline | No, output JSON | Alta (<200 ms) | Bassa (output deterministico) | Alto | ✓ Sì |
| 2 | `LLM_MODEL_HOME_AGENT` | **Home Agent** — chat principale con tutti i tool (CRUD task/project/note) | Multi-turno (≤6 step) | Alta (<3 s perceived) | Alta (user-facing) | Alto | ✓ Sì, WS stream |
| 3 | `LLM_MODEL_FLOATING_AGENT` | **Floating Agent** — chat contestuale da task/project/note | Multi-turno (≤6 step) | Alta | Media–alta | Alto | ✓ Sì, WS stream |
| 4 | `LLM_MODEL_UNIFIED_PROCESSOR` | **Unified Processor** — processa file del filesystem locale | Tool loop (≤12 step) | Bassa (batch) | Media | Medio/occasionale | ✗ Background |
| 5 | `LLM_MODEL_CLOUD_PROCESSOR` | **Cloud Processor** — fetch e processing di Gmail/Teams/Outlook | Tool loop (≤12 step) | Bassa | Media | Schedulato | ✗ Background |
| 6 | `LLM_MODEL_BRIEF_AGENT` | **Brief Agent** — daily brief home + project (streaming, read-only tool) | Singolo step, tool read-only | Alta (<4 s) | Alta (prosa curata) | Medio | ✓ Sì |
| 7 | `LLM_MODEL_SETUP_AGENT` | **Setup Agent** — journey conversazionale per costruire `AgentConfig` JSON | Multi-turno (≤15) | Media | Alta (UX critica) | Basso (una tantum) | ✓ Sì, WS |
| 8 | `LLM_MODEL_MEMORY_EXTRACTOR` | **Memory Extractor** — pipeline Mem0 extract+decide (2 call/turno) | No, JSON strutturato | Bassa (off-path) | Bassa (filtrato a valle) | Alto (ogni turno chat) | ✗ Background |
| 9 | `LLM_MODEL_MEMORY_MINER` | **Memory Miner** — pattern mining orario su storia episodica (Power+) | No | Bassa | Media | Orario (Power+) | ✗ Cron |
| 10 | `LLM_MODEL_MEMORY_AUDITOR` | **Memory Auditor** — audit settimanale: contraddizioni + canonicalizzazione relazioni | No, reasoning su fatti | Bassa | Alta (richiede reasoning) | Settimanale | ✗ Cron |
| 11 | `LLM_EMBED_MODEL` | **Embeddings** — vettori 1536-dim per ricerca semantica (LanceDB/Qdrant) | — | Media | Deterministico | Alto | ✓ In-request |

> **Nota architetturale (Processors):** Il Batch API dei provider LLM **non è utilizzabile** per Unified e Cloud Processor: il loop tool-calling richiede risultati sincroni dal client Electron via WebSocket. Si usa **API Standard** a prezzi di listino.

---

## Conformità — Policy Privacy dei Provider

Per Production è richiesto un **strict Zero Data Retention** (ZDR): nessuna conservazione prompt/response, nessun logging, nessun uso per training — garantito contrattualmente. Per Development è sufficiente l'opt-out di default dal training.

| Provider | Sede | ZDR strict (prod) | Opt-out training (dev) | Note |
|----------|------|:-----------------:|:----------------------:|------|
| 🇺🇸 OpenAI | USA | ✓ con **ZDR addendum Enterprise** | ✓ default API | Standard API: 30gg retention logs |
| 🇺🇸 Anthropic | USA | ✓ con **Enterprise ZDR** | ✓ default API | 30gg retention su standard tier |
| 🇺🇸 Google Vertex AI | USA | ✓ **contrattuale** (Vertex, non AI Studio) | ✓ paid tier | Free AI Studio usa dati per training |
| 🇫🇷 Mistral | Francia (EU) | ✓ **ZDR disponibile** | ✓ default | GDPR-native, ottimo per EU residency |
| 🇺🇸 Groq | USA | ✓ **via DPA dedicato** | ✓ default | Cloud inference Llama/Qwen |
| 🇺🇸 Cerebras | USA | ✓ **nessuna conservazione by default** | ✓ | ZDR out-of-the-box — il più rigoroso |
| 🇺🇸 Voyage AI | USA | ✓ ZDR enterprise | ✓ | Embeddings only |
| 🇨🇳 DeepSeek | Cina | ✗ | ⚠️ opt-out limitato, dati in Cina | **Solo Dev, con dati sintetici** |
| 🇨🇳 Zhipu (GLM) | Cina | ✗ | ⚠️ non verificabile | **Solo Dev** |

---

## Confronto Modelli — Miglior Modello per Agente

Prezzi in USD per milione di token (MTok), aggiornati Aprile 2026.

### 1. Intent Classifier
*Output JSON deterministico, latenza critica, volume alto*

| Provider | Modello | In $/MTok | Out $/MTok | ZDR | Note |
|----------|---------|----------|-----------|:---:|------|
| OpenAI | `GPT-4.1 Nano` | $0.10 | $0.40 | ✓ ent | Veloce, JSON mode affidabile |
| **Google Vertex** ⭐ | `Gemini 2.5 Flash-Lite` | **$0.10** | **$0.40** | ✓ | **Migliore prezzo+ZDR+latenza** |
| Anthropic | `Claude Haiku 4.5` | $1.00 | $5.00 | ✓ ent | Overkill per pura classificazione |
| Groq | `Llama 3.1 8B` | $0.05 | $0.08 | ✓ DPA | Economico, 840 TPS |
| Cerebras | `Llama 3.1 8B` | $0.10 | $0.10 | ✓ | ZDR by default, velocissimo |

### 2. Home Agent
*Multi-turno + tool calling completo + streaming*

| Provider | Modello | In $/MTok | Out $/MTok | ZDR | Note |
|----------|---------|----------|-----------|:---:|------|
| **Anthropic** ⭐ | `Claude Sonnet 4.6` | $3.00 | $15.00 | ✓ ent | **Top tool use**, caching -90%, 1M ctx |
| OpenAI | `GPT-4.1` | $2.00 | $8.00 | ✓ ent | Solido, JSON mode, 1M ctx |
| Google Vertex | `Gemini 2.5 Flash` | $0.30 | $2.50 | ✓ | Miglior rapporto Q/P per prod |
| Mistral | `Mistral Medium 3` | $1.00 | $3.00 | ✓ | EU residency |
| Groq | `Llama 3.3 70B` | $0.59 | $0.79 | ✓ DPA | Tool calling inferiore ai proprietari |

### 3. Floating Agent
*Single+multi-turno, contestuale, più compatto del Home*

| Provider | Modello | In $/MTok | Out $/MTok | ZDR | Note |
|----------|---------|----------|-----------|:---:|------|
| OpenAI | `GPT-4.1 Mini` | $0.40 | $1.60 | ✓ ent | Bilanciato |
| **Anthropic** ⭐ | `Claude Haiku 4.5` | $1.00 | $5.00 | ✓ ent | **Tool use affidabile, bassa latenza** |
| Google Vertex | `Gemini 2.5 Flash-Lite` | $0.10 | $0.40 | ✓ | Economico; qualità tool inferiore a Haiku |
| Mistral | `Mistral Small 3.1` | $0.20 | $0.60 | ✓ | EU |

### 4. Unified Processor (locale)
*Batch, multi-turno (≤12), qualità estrazione importa*

| Provider | Modello | In $/MTok | Out $/MTok | ZDR | Note |
|----------|---------|----------|-----------|:---:|------|
| **OpenAI** ⭐ | `GPT-4.1 Mini` | **$0.40** | **$1.60** | ✓ ent | **Tool loop affidabile, costo contenuto** |
| Anthropic | `Claude Sonnet 4.6` | $3.00 | $15.00 | ✓ ent | Qualità top se budget permette |
| Google Vertex | `Gemini 2.5 Flash` | $0.30 | $2.50 | ✓ | Valida alternativa, input economico |
| Mistral | `Mistral Large 3` | $2.00 | $6.00 | ✓ | EU residency |

### 5. Cloud Processor (Gmail/Teams/Outlook)
*Batch, multi-turno (≤12), dati sensibili*

| Provider | Modello | In $/MTok | Out $/MTok | ZDR | Note |
|----------|---------|----------|-----------|:---:|------|
| **OpenAI** ⭐ | `GPT-4.1 Mini` | **$0.40** | **$1.60** | ✓ ent | **Robusto su email parsing** |
| Anthropic | `Claude Sonnet 4.6` | $3.00 | $15.00 | ✓ ent | Miglior reasoning su thread email |
| Google Vertex | `Gemini 2.5 Flash` | $0.30 | $2.50 | ✓ | 1M context utile per thread lunghi |

### 6. Brief Agent (daily brief)
*Singolo step, prosa curata, read-only tool*

| Provider | Modello | In $/MTok | Out $/MTok | ZDR | Note |
|----------|---------|----------|-----------|:---:|------|
| **OpenAI** ⭐ | `GPT-4.1 Mini` | **$0.40** | **$1.60** | ✓ ent | **Prosa di qualità, streaming affidabile** |
| Anthropic | `Claude Haiku 4.5` | $1.00 | $5.00 | ✓ ent | Prosa eccellente, più costoso |
| Google Vertex | `Gemini 2.5 Flash` | $0.30 | $2.50 | ✓ | Alternativa economica |
| Mistral | `Mistral Small 3.1` | $0.20 | $0.60 | ✓ | Economico con EU residency |

### 7. Setup Agent (journey di configurazione)
*Conversazione multi-turno (≤15), JSON finale, UX critica*

| Provider | Modello | In $/MTok | Out $/MTok | ZDR | Note |
|----------|---------|----------|-----------|:---:|------|
| **Anthropic** ⭐ | `Claude Sonnet 4.6` | **$3.00** | **$15.00** | ✓ ent | **Miglior instruction-following, JSON affidabile** |
| OpenAI | `GPT-4.1` | $2.00 | $8.00 | ✓ ent | Eccellente bilanciamento |
| Google Vertex | `Gemini 2.5 Pro` | $1.25 | $10.00 | ✓ | Reasoning solido |

> Volume bassissimo (≈2 sessioni/mese per utente): il costo è trascurabile anche col modello premium.

### 8. Memory Extractor (Mem0 extract+decide)
*2 call/turno, JSON strutturato, deterministico, off request-path*

| Provider | Modello | In $/MTok | Out $/MTok | ZDR | Note |
|----------|---------|----------|-----------|:---:|------|
| **OpenAI** ⭐ | `GPT-4.1 Nano` | **$0.10** | **$0.40** | ✓ ent | **Cheapest OpenAI, JSON mode affidabile** |
| Google Vertex | `Gemini 2.5 Flash-Lite` | $0.10 | $0.40 | ✓ | Pari prezzo, valido |
| Anthropic | `Claude Haiku 4.5` | $1.00 | $5.00 | ✓ ent | Troppo costoso per volume alto |

### 9. Memory Miner (cron orario, Power+)
*Pattern mining su episodi, input medio, occasionale*

| Provider | Modello | In $/MTok | Out $/MTok | ZDR | Note |
|----------|---------|----------|-----------|:---:|------|
| **OpenAI** ⭐ | `GPT-4.1 Mini` | **$0.40** | **$1.60** | ✓ ent | **Reasoning sufficiente per pattern detection** |
| Google Vertex | `Gemini 2.5 Flash` | $0.30 | $2.50 | ✓ | Buona alternativa |
| Anthropic | `Claude Haiku 4.5` | $1.00 | $5.00 | ✓ ent | Qualità superiore, costo +2x |

### 10. Memory Auditor (cron settimanale)
*Reasoning per contraddizioni + canonicalizzazione, rarissimo*

| Provider | Modello | In $/MTok | Out $/MTok | ZDR | Note |
|----------|---------|----------|-----------|:---:|------|
| **OpenAI** ⭐ | `GPT-4.1` | **$2.00** | **$8.00** | ✓ ent | **Reasoning robusto, volume trascurabile** |
| Anthropic | `Claude Sonnet 4.6` | $3.00 | $15.00 | ✓ ent | Alternativa premium |
| Google Vertex | `Gemini 2.5 Pro` | $1.25 | $10.00 | ✓ | Ottimo reasoning |

### 11. Embeddings
*Semantic search, 1536-dim, volume alto*

| Provider | Modello | $/MTok | Dim | ZDR | Note |
|----------|---------|--------|-----|:---:|------|
| **OpenAI** ⭐ | `text-embedding-3-small` | **$0.02** | 1536 | ✓ ent | **Standard de facto, già in uso (LanceDB 1536-dim)** |
| Voyage AI | `voyage-3.5-lite` | $0.02 | 1024 | ✓ | Qualità superiore ma richiede reindex |
| Google Vertex | `Gemini Embedding` | $0.15 | variabile | ✓ | 7.5x più costoso, nessun vantaggio |

---

## 🔒 Mapping Production (Zero Data Retention obbligatorio)

Tutti i provider selezionati hanno ZDR contrattualmente garantito. Prevalgono qualità e affidabilità; il costo è ottimizzato entro il vincolo ZDR.

| # | Agente | Provider | Modello | Razionale |
|---|--------|----------|---------|-----------|
| 1 | Classifier | **OpenAI** | `gpt-4.1-nano` | $0.10/$0.40, JSON mode affidabile, stesso contratto ZDR del resto OpenAI |
| 2 | Home Agent | **Anthropic** | `claude-sonnet-4-6` | Miglior tool calling del mercato; caching -90% riduce il costo; esperienza chat premium |
| 3 | Floating Agent | **Anthropic** | `claude-haiku-4-5` | Tool calling affidabile + bassa latenza; qualità coerente con Home Agent |
| 4 | Unified Processor | **OpenAI** | `gpt-4.1-mini` | Tool loop affidabile a costo contenuto; critico visto che il loop moltiplica le call |
| 5 | Cloud Processor | **OpenAI** | `gpt-4.1-mini` | Stesso profilo del locale; parsing di email/chat consolidato |
| 6 | Brief Agent | **OpenAI** | `gpt-4.1-mini` | Prosa curata, streaming, read-only tools — ottimo bilanciamento |
| 7 | Setup Agent | **Anthropic** | `claude-sonnet-4-6` | Journey conversazionale critica per UX; volume bassissimo giustifica il premium |
| 8 | Memory Extractor | **OpenAI** | `gpt-4.1-nano` | 2 call per turno chat: servono i prezzi più bassi con JSON mode |
| 9 | Memory Miner | **OpenAI** | `gpt-4.1-mini` | Cron orario su Power+: reasoning sufficiente, costo contenuto |
| 10 | Memory Auditor | **OpenAI** | `gpt-4.1` | Reasoning più avanzato per contraddizioni; frequenza settimanale = costo trascurabile |
| 11 | Embeddings | **OpenAI** | `text-embedding-3-small` | Già in uso, 1536-dim compatibile con schema LanceDB/Qdrant |

### Valori `.env` — Production

```bash
# Default fallback
LLM_MODEL=gpt-4.1-mini
LLM_EMBED_MODEL=text-embedding-3-small

# Per-agent overrides (LiteLLM model IDs)
LLM_MODEL_CLASSIFIER=gpt-4.1-nano
LLM_MODEL_HOME_AGENT=anthropic/claude-sonnet-4-6
LLM_MODEL_FLOATING_AGENT=anthropic/claude-haiku-4-5
LLM_MODEL_UNIFIED_PROCESSOR=gpt-4.1-mini
LLM_MODEL_CLOUD_PROCESSOR=gpt-4.1-mini
LLM_MODEL_BRIEF_AGENT=gpt-4.1-mini
LLM_MODEL_SETUP_AGENT=anthropic/claude-sonnet-4-6
LLM_MODEL_MEMORY_EXTRACTOR=gpt-4.1-nano
LLM_MODEL_MEMORY_MINER=gpt-4.1-mini
LLM_MODEL_MEMORY_AUDITOR=gpt-4.1
```

> **2 API key richieste**: OpenAI (Enterprise + ZDR addendum) e Anthropic (Commercial + ZDR addendum). Vedi sezione **[Come attivare ZDR](#come-attivare-zdr-con-openai-e-anthropic)** per la procedura contrattuale.

---

## 💰 Mapping Development (cost-efficient, ZDR non richiesto)

Priorità: costo minimo e velocità di iterazione. **Niente dati utente reali in questo ambiente** — solo dati sintetici o mock. Nessun vincolo ZDR consente di includere Groq, Cerebras e opzionali DeepSeek.

| # | Agente | Provider | Modello | Razionale |
|---|--------|----------|---------|-----------|
| 1 | Classifier | **Groq** | `llama-3.1-8b-instant` | $0.05/$0.08: il più economico con 840 TPS |
| 2 | Home Agent | **Google AI Studio** | `gemini-2.5-flash` | 6–7x meno di Sonnet, tool use nativo, 1M ctx |
| 3 | Floating Agent | **Google AI Studio** | `gemini-2.5-flash-lite` | $0.10/$0.40 sufficiente per single-turn |
| 4 | Unified Processor | **Google AI Studio** | `gemini-2.5-flash` | Tool loop funzionante a costo minimo |
| 5 | Cloud Processor | **DeepSeek** | `deepseek-chat` ($0.28/$0.42) | Costo minimo per batch con dati sintetici |
| 6 | Brief Agent | **Groq** | `llama-3.1-8b-instant` | $0.05/$0.08, prosa accettabile per QA |
| 7 | Setup Agent | **Google AI Studio** | `gemini-2.5-flash` | Conversazione decente a costo minimo |
| 8 | Memory Extractor | **Groq** | `llama-3.1-8b-instant` | JSON extraction funziona con fallback retry |
| 9 | Memory Miner | **Groq** | `llama-3.3-70b-versatile` | Pattern mining richiede reasoning; 70B a $0.59/$0.79 |
| 10 | Memory Auditor | **Google AI Studio** | `gemini-2.5-flash` | Reasoning accettabile, quasi gratis a scala dev |
| 11 | Embeddings | **OpenAI** | `text-embedding-3-small` | Stesso dim del prod (1536) — evita reindex al promote |

### Valori `.env` — Development

```bash
# Default fallback
LLM_MODEL=gemini/gemini-2.5-flash
LLM_EMBED_MODEL=text-embedding-3-small

# Per-agent overrides
LLM_MODEL_CLASSIFIER=groq/llama-3.1-8b-instant
LLM_MODEL_HOME_AGENT=gemini/gemini-2.5-flash
LLM_MODEL_FLOATING_AGENT=gemini/gemini-2.5-flash-lite
LLM_MODEL_UNIFIED_PROCESSOR=gemini/gemini-2.5-flash
LLM_MODEL_CLOUD_PROCESSOR=deepseek/deepseek-chat
LLM_MODEL_BRIEF_AGENT=groq/llama-3.1-8b-instant
LLM_MODEL_SETUP_AGENT=gemini/gemini-2.5-flash
LLM_MODEL_MEMORY_EXTRACTOR=groq/llama-3.1-8b-instant
LLM_MODEL_MEMORY_MINER=groq/llama-3.3-70b-versatile
LLM_MODEL_MEMORY_AUDITOR=gemini/gemini-2.5-flash
```

> ⚠️ **Non immettere dati utente reali**. Gli embeddings restano `text-embedding-3-small` per non dover reindicizzare passando in Production (stesso schema 1536-dim).

---

## Simulazione — Costo Mensile per Utente

Utilizzo tipico: 500 Home, 300 Floating, 210 Brief, 100 Unified Processor, 80 Cloud Processor, 10 Setup turn (≈2 sessioni), 1500 Memory Extractor turn, 720 Miner (30gg × 24h Power+), 4 Auditor, 1000 embeddings.

### Production

| Agente | Modello | In tok | Out tok | $/mese |
|--------|---------|--------|---------|--------|
| Classifier | GPT-4.1 Nano | 150K | 30K | $0.027 |
| Home Agent | Sonnet 4.6 | 1M | 500K | $10.50 |
| Floating | Haiku 4.5 | 150K | 90K | $0.60 |
| Unified Processor | GPT-4.1 Mini | 300K | 200K | $0.44 |
| Cloud Processor | GPT-4.1 Mini | 240K | 160K | $0.35 |
| Brief Agent | GPT-4.1 Mini | 315K | 105K | $0.29 |
| Setup Agent | Sonnet 4.6 | 40K | 5K | $0.20 |
| Memory Extractor | GPT-4.1 Nano | 750K | 150K | $0.14 |
| Memory Miner | GPT-4.1 Mini | 1.4M | 150K | $0.80 |
| Memory Auditor | GPT-4.1 | 20K | 5K | $0.08 |
| Embeddings | text-embedding-3-small | 500K | — | $0.01 |
| | | | **Totale Production** | **~$13.48/utente/mese** |

> Con prompt caching Anthropic al 90% sui system prompt ripetuti, Home Agent scende a ~$4–5/mese → totale **~$7–8/utente/mese**.

### Development (dev team ≈ 100 sessioni test/mese totali, non per utente)

| Agente | Modello | $/mese totali |
|--------|---------|--------------|
| Classifier | Groq Llama 3.1 8B | $0.004 |
| Home Agent | Gemini 2.5 Flash | $0.58 |
| Floating | Gemini 2.5 Flash-Lite | $0.04 |
| Unified Processor | Gemini 2.5 Flash | $0.09 |
| Cloud Processor | DeepSeek Chat | $0.13 |
| Brief Agent | Groq Llama 3.1 8B | $0.02 |
| Setup Agent | Gemini 2.5 Flash | $0.02 |
| Memory Extractor | Groq Llama 3.1 8B | $0.05 |
| Memory Miner | Groq Llama 3.3 70B | $0.35 |
| Memory Auditor | Gemini 2.5 Flash | $0.02 |
| Embeddings | text-embedding-3-small | $0.01 |
| | **Totale Dev team** | **~$1.35/mese** |

---

## Motivazioni — Decisioni Chiave

### 🔒 Perché questa separazione Production/Development

I dati utente di adiuvAI sono E2E-encrypted, ma i prompt agentici contengono metadati operativi (titoli task, nomi progetti, contesto chat) che fluiscono in chiaro verso il LLM provider. Per Production, ZDR contrattuale è non-negoziabile. In Development si usano dati sintetici, quindi i provider più economici senza garanzie ZDR sono perfetti per iterare rapidamente senza bruciare budget.

### 💬 Claude Sonnet 4.6 per Home Agent (prod) vs Gemini Flash (dev)

Home Agent è il touchpoint principale: la qualità del tool calling determina la percezione del prodotto. Sonnet 4.6 è il benchmark su tool use. Il caching di Anthropic (-90% sui system prompt) rende il costo sostenibile a scala. In dev, Gemini 2.5 Flash costa **20x meno** con tool calling sufficiente per validare flussi, test di regressione e UI.

### ⚙️ GPT-4.1 Mini per entrambi i Processor

Unified e Cloud Processor sono l'unica superficie dove il **tool loop moltiplica il costo** (≤12 turni per file). Il prezzo medio deve essere basso **e** la qualità tool calling alta, altrimenti errori in cascata. GPT-4.1 Mini è lo sweet spot: tool calling OpenAI è robusto, il prezzo è 5x inferiore a Sonnet. Si sconsiglia Groq qui: la qualità tool calling di Llama introduce retry che annullano il risparmio.

### 🧠 Stratificazione Memory Agents

- **Extractor** (2 call/turno, volume altissimo) → Nano (cheapest)
- **Miner** (orario Power+, reasoning su pattern) → Mini (compromesso)
- **Auditor** (settimanale, reasoning avanzato) → GPT-4.1 full (il volume azzera il premium)

Ogni tier di memory ha un profilo costo/qualità diverso: collassarli tutti su un unico modello spreca o sul basso (Auditor poco accurato) o sull'alto (Extractor 10x più caro del necessario).

### 🇪🇺 Perché non Mistral in prod di default

Mistral è un'ottima alternativa EU-residency, ma Sonnet 4.6 e GPT-4.1 hanno tool calling ancora superiore nei benchmark di Aprile 2026. Se la priorità diventa **data residency EU** (clienti enterprise europei, GDPR stretto), raccomando uno switch mirato:
- Home Agent → `mistral/mistral-medium-3`
- Background processor → `mistral/mistral-large-3`

### 🚫 Cina esclusa da Production

DeepSeek e GLM offrono costi imbattibili ma i dati risiedono in Cina senza garanzie ZDR verificabili per utenti internazionali. **Accettabili in Development solo con dati sintetici**.

### ⚡ Groq e Cerebras come alternative budget

In Development, Groq domina per pricing + velocità (394–840 TPS). In Production sono qualificati ZDR (tramite DPA) ma la qualità tool calling di Llama rimane inferiore ai modelli proprietari su flussi multi-turno complessi. Cerebras è strict ZDR by default ma il catalogo modelli è limitato.

---

## Come attivare ZDR con OpenAI e Anthropic

**Cosa significa ZDR concretamente:** nessuna conservazione di prompt/output oltre la durata della richiesta, nessun logging di contenuti da parte del provider, nessun uso per training o fine-tuning, abuse monitoring basato su metadati anziché contenuti. Sul tier API standard, invece, OpenAI e Anthropic conservano input/output per **30 giorni** a fini di abuse detection — motivo per cui serve il contratto ZDR esplicito.

### 🔵 OpenAI — Enterprise Privacy / ZDR Addendum

**Chi ne ha diritto:** clienti con Enterprise Agreement. Per API a basso volume si può comunque richiedere un **Business Associate Agreement** o **Enterprise Privacy Addendum** senza passare a ChatGPT Enterprise.

**Procedura:**
1. Scrivere a **sales@openai.com** (oppure compilare il form su [openai.com/enterprise](https://openai.com/enterprise/)) indicando:
   - Ragione sociale, sede legale, P.IVA, DPO/privacy contact
   - Caso d'uso (per adiuvAI: "agentic SaaS con E2E-encrypted user data, API backend")
   - Volume stimato mensile (token o $) — utile per pricing
   - Modelli usati (`gpt-4.1`, `gpt-4.1-mini`, `gpt-4.1-nano`, `text-embedding-3-small`)
   - Requisito esplicito: **"Zero Data Retention (0-day retention)"** e disabilitazione abuse monitoring sul contenuto
2. OpenAI invia **Commercial Agreement + Data Processing Addendum (DPA) + Zero Data Retention Addendum**.
3. Firmare via DocuSign. Tempo medio: **2–4 settimane** dalla prima mail al contratto attivo.
4. OpenAI abilita ZDR a livello di **Organization ID** dell'API — non serve modificare il codice, vale per tutte le chiamate future.
5. Verifica in dashboard: `platform.openai.com` → Settings → Organization → Data Controls. Deve apparire "Zero Data Retention: Enabled".

**Costo:** l'Enterprise non ha prezzo pubblico; a bassi volumi si può ottenere senza commitment minimo (talvolta con un modesto uplift sulla tariffa API).

**Documenti utili:** [OpenAI Enterprise Privacy](https://openai.com/enterprise-privacy/), [OpenAI DPA](https://openai.com/policies/data-processing-addendum/), [OpenAI API Data Usage](https://platform.openai.com/docs/models/how-we-use-your-data).

### 🟣 Anthropic — Commercial Terms + Zero Retention Addendum

**Chi ne ha diritto:** qualsiasi cliente commerciale. Anthropic è più flessibile di OpenAI: ZDR viene concesso anche a volumi contenuti tramite un addendum al contratto standard.

**Procedura:**
1. Scrivere a **sales@anthropic.com** (oppure via il form [anthropic.com/contact-sales](https://www.anthropic.com/contact-sales)) indicando:
   - Ragione sociale, sede legale, P.IVA
   - Caso d'uso e modelli (`claude-sonnet-4-6`, `claude-haiku-4-5`)
   - Volume stimato mensile
   - Richiesta esplicita: **"Zero Retention Addendum to the Commercial Terms"**
   - Se applicabile: GDPR DPA, BAA (per HIPAA)
2. Anthropic invia **Commercial Agreement + DPA + Zero Retention Addendum** (clausola dedicata).
3. Firma via DocuSign. Tempo medio: **1–3 settimane**.
4. Attivazione sull'**Organization** del Claude Console. Verifica in [console.anthropic.com](https://console.anthropic.com) → Settings → Organization → Privacy.
5. Dal contratto attivo: 0-day retention di prompt/response, abuse monitoring basato solo su metadati.

**Costo:** nessun uplift in genere; il contratto ZDR è incluso nel Commercial Agreement.

**Documenti utili:** [Anthropic Privacy Policy](https://www.anthropic.com/legal/privacy), [Anthropic Commercial Terms](https://www.anthropic.com/legal/commercial-terms), [Anthropic Trust Center](https://trust.anthropic.com) per SOC 2 / ISO 27001.

### Checklist pre-firma (entrambi)

Prima di firmare verifica che il contratto copra:

- [ ] **Zero retention** esplicita (0 giorni, non "short retention" che può significare 24h o 72h)
- [ ] **No training** sui prompt/output (default API, confermare per scritto)
- [ ] **Abuse monitoring** basato su metadati, non contenuto (altrimenti il provider legge comunque i prompt)
- [ ] **Sub-processor list** consultabile (subcontractor del provider: datacenter, CDN, ecc.)
- [ ] **DPA art. 28 GDPR** firmato contestualmente (obbligatorio se processi dati di utenti EU)
- [ ] **Breach notification SLA** ≤ 72 ore (requisito GDPR)
- [ ] **Data residency** — chiedere conferma region processing (US vs EU). Per adiuvAI può valere la pena pretendere routing EU se la clientela è europea
- [ ] **Audit right** — possibilità di richiedere audit indipendente (rilevante per clienti enterprise propri)

### Timeline realistica end-to-end

| Fase | Durata |
|------|--------|
| Primo contatto sales + NDA | 3–5 giorni |
| Legal review interno contratti provider | 1–2 settimane |
| Negoziazione clausole sensibili (residency, audit, pricing) | 1–2 settimane |
| Firma DocuSign + attivazione ZDR su Org ID | 2–3 giorni |
| **Totale** | **4–7 settimane** per provider |

> 💡 **Consiglio pratico:** parti **in parallelo** con sales@openai.com e sales@anthropic.com lo stesso giorno. Il processo è indipendente e avere entrambi i contratti attivi contemporaneamente è indispensabile per il mapping proposto.

---

## Note & Fonti

Prezzi aggiornati ad Aprile 2026. Verificare sempre le pagine ufficiali prima di decisioni finali — il mercato LLM cambia mensilmente.

**Fonti:**
- [OpenAI API Pricing](https://openai.com/api/pricing/)
- [OpenAI Enterprise Privacy + ZDR](https://openai.com/enterprise-privacy/)
- [Anthropic Claude Models](https://platform.claude.com/docs/en/docs/about-claude/models)
- [Anthropic ZDR](https://www.anthropic.com/legal/privacy)
- [Google Vertex AI Pricing](https://cloud.google.com/vertex-ai/pricing)
- [Google Vertex Data Governance](https://cloud.google.com/vertex-ai/docs/generative-ai/data-governance)
- [Mistral AI Pricing](https://mistral.ai/pricing)
- [Mistral Privacy Policy](https://legal.mistral.ai/terms/privacy-policy)
- [Groq On-Demand Pricing](https://groq.com/pricing)
- [Cerebras Privacy Policy](https://www.cerebras.ai/policies)
- [DeepSeek API Pricing](https://api-docs.deepseek.com/quick_start/pricing/)
- [LiteLLM Supported Models](https://docs.litellm.ai/docs/providers)
- [Best AI for Tool Calling 2026](https://llm-stats.com/leaderboards/best-ai-for-tool-calling)
- [AI Cost Board — LLM Pricing 2026](https://aicostboard.com/blog/posts/llm-api-pricing-comparison-2026)

---

*Report generato per adiuvAI · Aprile 2026 · Aggiornato per coprire tutti gli 11 agenti di `api/.env.example` con mapping separati Production/Development.*
