auto (défaut 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 riche (catégories, inclusion/exclusion de domaines, plages de dates et fenêtres d’âge maximum). Des paramètres par défaut sensés sont fournis prêts à l’emploi, afin que les développeurs en aval bénéficient 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 important pour les agents de recherche qui raisonnent sur le contenu web.
- Mode de raisonnement profond pour les requêtes difficiles — raisonnement multi-sauts en un seul appel sur le web ouvert, sans que l’agent orchestre lui-même les 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 / de la récence — listes d’inclusions/exclusions de domaines (jusqu’à 1200 entrées), fenêtres de dates ISO-8601, et
maxAgeHourspour les flux de travail sensibles au temps.
Démarrage rapide
1. Obtenir une clé API Exa
Inscrivez-vous sur exa.ai et récupérez votre clé API depuis le tableau de bord.2. Définir la clé dans FIM One
Ajoutez à votre.env :
WEB_SEARCH_PROVIDER n’est pas défini, FIM One sélectionne automatiquement Exa lorsque EXA_API_KEY est présent.
Pour rendre Exa explicite :
3. Utilisez-le à partir de 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. Les agents avecweb_search activé achemineront automatiquement via Exa.
Configuration
Tous les paramètres spécifiques à Exa ont des valeurs par défaut sensées. Remplacez l’un d’entre eux via des variables d’environnement :| Variable | Par défaut | Description |
|---|---|---|
EXA_API_KEY | — | Requis. Votre clé API Exa. |
EXA_SEARCH_TYPE | auto | L’un de auto, neural, fast, deep-lite, deep, deep-reasoning, instant. |
EXA_CATEGORY | — | L’un de company, research paper, news, personal site, financial report, people. |
EXA_INCLUDE_DOMAINS | — | Liste d’autorisation séparée par des virgules (max 1200 entrées). |
EXA_EXCLUDE_DOMAINS | — | Liste de blocage séparée par des virgules (max 1200 entrées). |
EXA_START_PUBLISHED_DATE | — | ISO-8601, par ex. 2025-01-01. |
EXA_END_PUBLISHED_DATE | — | ISO-8601. |
EXA_MAX_AGE_HOURS | — | Retourner uniquement les pages indexées au cours des N dernières heures. |
EXA_INCLUDE_HIGHLIGHTS | true | Extraire les extraits en surbrillance des résultats. |
EXA_TEXT_MAX_CHARS | 800 | Limite de longueur du texte/extrait par résultat. |
EXA_SUMMARY_QUERY | — | Invite de résumé personnalisée facultative par résultat. |
Comment les extraits sont assemblés
FIM One parcourt 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 :highlights(joints avec…) — préféré quand présenttext— revient au texte d’article extrait, tronqué àEXA_TEXT_MAX_CHARSsummary— utilisé quand les deux précédents sont vides
Préréglage : surveillance des actualités
Préréglage : récupération d’articles de recherche
Preset: agent de raisonnement profond
Attribution
Chaque requête Exa de FIM One porte un en-têtex-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 et suit le même protocole BaseWebSearch que Jina, Tavily et Brave — changer de fournisseur ne nécessite qu’une modification d’une variable d’environnement.