> ## Documentation Index
> Fetch the complete documentation index at: https://docs.one.fim.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Exa

> Backend de recherche web Exa optionnel pour les agents FIM One — modes neural, fast, deep-reasoning et instant avec des paramètres par défaut sensés.

[Exa](https://exa.ai) est disponible en tant que backend de recherche web optionnel dans FIM One. Lorsque vous l'activez, les agents ont accès à toute la surface de recherche Exa — `auto` (type de recherche recommandé par Exa), `neural`, `fast`, `deep-lite`, `deep`, `deep-reasoning` et `instant` — plus la récupération de contenu structuré (highlights, texte, résumés) et le filtrage avancé (catégories, inclusion/exclusion de domaines, plages de dates et fenêtres d'âge maximum). Les paramètres par défaut sensés côté Exa sont fournis d'emblée, vous bénéficiez donc des meilleures pratiques Exa sans réglage manuel.

## Pourquoi Exa dans FIM One

* **Recherche neuronale pour le raisonnement des agents** — La recherche native par embedding d'Exa retourne des résultats sémantiquement pertinents, pas seulement des correspondances de mots-clés. C'est crucial pour les agents de recherche qui raisonnent sur le contenu web.
* **Mode de raisonnement profond pour les requêtes complexes** — raisonnement multi-hop en un seul appel sur le web ouvert, sans que l'agent n'ait besoin d'orchestrer des sous-requêtes.
* **Extraction de contenu intégrée** — les surlignages + texte + résumés optionnels arrivent avec l'appel de recherche, éliminant un deuxième aller-retour pour récupérer et nettoyer le contenu de la page.
* **Contrôles stricts du domaine et de la récence** — listes d'inclusion/exclusion de domaines (jusqu'à 1200 entrées), fenêtres de date ISO-8601, et `maxAgeHours` pour les workflows sensibles au temps.

## Démarrage rapide

### 1. Obtenir une clé API Exa

Inscrivez-vous sur [exa.ai](https://exa.ai) et récupérez votre clé API depuis le tableau de bord.

### 2. Activer Exa dans FIM One

Ajoutez à votre `.env` :

```bash theme={null}
WEB_SEARCH_PROVIDER=exa
EXA_API_KEY=your_key_here
```

Définissez les deux variables pour que `web_search` soit acheminé via Exa. Préférez un `WEB_SEARCH_PROVIDER=exa` explicite plutôt que de vous fier uniquement à la détection automatique des clés.

### 3. L'utiliser depuis n'importe quel agent

La recherche web est exposée aux agents en tant qu'outil intégré — aucun câblage supplémentaire nécessaire. Avec Exa configuré comme ci-dessus, les agents qui ont `web_search` activé acheminent les appels de recherche via Exa.

## Configuration

All Exa-specific knobs have sensible defaults. Override any of them via environment variables:

| Variable                   | Default | Description                                                                                |
| -------------------------- | ------- | ------------------------------------------------------------------------------------------ |
| `EXA_API_KEY`              | —       | **Required.** Your Exa API key.                                                            |
| `EXA_SEARCH_TYPE`          | `auto`  | One of `auto`, `neural`, `fast`, `deep-lite`, `deep`, `deep-reasoning`, `instant`.         |
| `EXA_CATEGORY`             | —       | One of `company`, `research paper`, `news`, `personal site`, `financial report`, `people`. |
| `EXA_INCLUDE_DOMAINS`      | —       | Comma-separated allowlist (max 1200 entries).                                              |
| `EXA_EXCLUDE_DOMAINS`      | —       | Comma-separated blocklist (max 1200 entries).                                              |
| `EXA_START_PUBLISHED_DATE` | —       | ISO-8601, e.g. `2025-01-01`.                                                               |
| `EXA_END_PUBLISHED_DATE`   | —       | ISO-8601.                                                                                  |
| `EXA_MAX_AGE_HOURS`        | —       | Only return pages indexed in the last N hours.                                             |
| `EXA_INCLUDE_HIGHLIGHTS`   | `true`  | Pull highlight snippets from results.                                                      |
| `EXA_TEXT_MAX_CHARS`       | `800`   | Cap on text/snippet length per result.                                                     |
| `EXA_SUMMARY_QUERY`        | —       | Optional custom summary prompt per result.                                                 |

### Comment les extraits sont assemblés

FIM One parcourt en cascade les champs de contenu d'Exa pour produire un extrait utile sur chaque résultat, quel que soit les types de contenu que l'API a remplis :

1. `highlights` (joints avec `…`) — préféré quand présent
2. `text` — revient au texte d'article extrait, tronqué à `EXA_TEXT_MAX_CHARS`
3. `summary` — utilisé quand les deux précédents sont vides

Cela garantit que les agents en aval ont toujours un extrait non vide pour raisonner, même pour les résultats où Exa n'a pas pu extraire de highlights.

### Preset: news monitoring

```bash theme={null}
EXA_SEARCH_TYPE=fast
EXA_CATEGORY=news
EXA_MAX_AGE_HOURS=24
EXA_TEXT_MAX_CHARS=1200
```

# Preset: research paper retrieval

```bash theme={null}
EXA_SEARCH_TYPE=neural
EXA_CATEGORY=research paper
EXA_INCLUDE_HIGHLIGHTS=true
EXA_TEXT_MAX_CHARS=2000
```

# Présélection : agent de raisonnement profond

```bash theme={null}
EXA_SEARCH_TYPE=deep-reasoning
EXA_TEXT_MAX_CHARS=1500
EXA_SUMMARY_QUERY=What is the key finding and its supporting evidence?
```

## Attribution

Chaque requête Exa provenant de FIM One inclut un en-tête `x-exa-integration: fim-one` pour qu'Exa puisse attribuer l'utilisation de l'API à cette intégration dans les tableaux de bord des mainteneurs. Ceci est utilisé uniquement pour l'attribution au niveau de l'intégration — aucune identification ou suivi des utilisateurs finaux.

Le connecteur Exa se trouve à [`src/fim_one/core/web/search/exa.py`](https://github.com/fim-ai/fim-one/blob/master/src/fim_one/core/web/search/exa.py) et suit le même protocole `BaseWebSearch` que Jina, Tavily et Brave — changer de fournisseur ne nécessite qu'une modification de variable d'environnement.

## Liens

* [Page d'accueil Exa](https://exa.ai) · [Référence API Exa](https://exa.ai/docs/reference/search)
* [Démarrage rapide FIM One](/quickstart) · [Référence des variables d'environnement](/configuration/environment-variables)
