{"schema_version":"1.0","service":"Publicasta","type":"article","id":893,"slug":"xerj_local_agent_search_autoindex_tradeoffs","title":"XERJ transforme un dossier local en système de recherche pour agents — ce qui est prêt à essayer et ce qui ne l’est pas","excerpt":"XERJ indexe automatiquement du code, de la documentation et des notes afin que les agents puissent interroger un corpus local. L’idée est solide, mais la compatibilité, la sécurité et la maturité opérationnelle doivent être vérifiées sur le terrain.","language":"fr","default_language":"en","canonical_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=fr","image":{"url":"https://publicasta.com/storage/projects/10/pages/893/2026/10/9aa6a9d7-d765-48d7-882d-866be8d5ccbf.webp","alt":"Photographie éditoriale technologique d’un système local de recherche pour agent de programmation, avec ordinateur portable, dépôt indexé et serveur local séparé."},"publisher":{"id":10,"slug":"open_source_radar","name":"Open Source Radar","url":"https://publicasta.com/open_source_radar"},"author":{"name":"Anton R"},"published_at":"2026-10-16T06:44:51+00:00","updated_at":"2026-10-16T06:44:51+00:00","content_markdown":"XERJ est un moteur de recherche open source conçu pour un problème qui apparaît dès qu’un agent de programmation rencontre un dépôt volumineux et inconnu : l’agent sait chercher, mais la recherche la moins coûteuse est souvent la moins utile. Grep renvoie trop de contexte, ouvrir les fichiers un par un consomme des tokens et la mémoire d’un modèle n’est fiable que pour du code populaire, familier et inchangé. Les dépôts privés, les conventions internes, les API générées et les commits récents rendent rapidement cette limite visible.\n\n ![Photographie éditoriale technologique d’un système local de recherche pour agent de programmation, avec ordinateur portable, dépôt indexé et serveur local séparé.](https://publicasta.com/storage/projects/10/pages/893/2026/10/9aa6a9d7-d765-48d7-882d-866be8d5ccbf.webp)\n\n La réponse consiste à rendre un dossier interrogeable dès qu’il est fourni au moteur. `xerj autoindex` parcourt le code, la documentation, les journaux, les PDF et les autres données prises en charge, en extrait la structure et écrit des enregistrements consultables. Un agent peut ensuite demander des passages ou des symboles classés plutôt que de lire tout l’arbre. XERJ expose aussi une API compatible avec Elasticsearch, afin qu’un client ou un tableau de bord existant puisse servir de passerelle.\n\n Cette combinaison est plus ciblée qu’une nouvelle base vectorielle locale et moins ambitieuse qu’une plateforme générale de programmation autonome. La vraie question est de savoir si elle rend un projet privé, plusieurs dépôts de référence ou les notes persistantes d’un agent plus faciles à consulter sans service d’ingestion élaboré. La réponse est oui, sous conditions. Le projet possède un flux cohérent, décrit ouvertement ses limites et utilise la licence Apache-2.0, mais il reste un système de l’ère des release candidates, avec des travaux sur la compatibilité, l’ingestion, le clustering et la finition opérationnelle. Il faut le tester sur une copie jetable ou en lecture seule, séparer le répertoire de données de l’arbre indexé et traiter `--insecure` comme un réglage de développement local.\n\n ## Ce qui change dans l’approche du projet\n\n Les produits de recherche commencent souvent par un schéma : champs, analyseur, découpage des documents, service d’embeddings, index et code d’ingestion. Ce modèle convient à un jeu de données stable. Il convient moins à un agent qui doit inspecter un dépôt aujourd’hui, plusieurs projets amont demain et un dossier de notes la semaine prochaine. Le travail de schéma devient une partie de la mission, alors que la mission devrait être de corriger un bug ou de comprendre un sous-système.\n\n XERJ inverse cet ordre. Le point de départ est un chemin, pas un modèle documentaire. L’autoindexation classe les fichiers, extrait le contenu, conserve la provenance et crée des index immédiatement consultables. Pour le code source, le projet indique que l’extracteur utilise tree-sitter afin d’indexer les symboles et les informations structurelles avec le texte intégral. Le résultat peut donc orienter l’agent vers une fonction ou une définition, pas seulement vers une ligne contenant le mot recherché.\n\n Le démarrage rapide décrit la boucle attendue : démarrer un nœud local, lancer `xerj autoindex`, poser une question et utiliser le passage ou la référence fichier-ligne comme contexte. `xerj def` recherche une définition et `xerj gain` indique ce que l’outil a économisé ou effectué. Ce dernier choix suggère que l’économie de tokens doit être mesurée sur des usages réels. XERJ peut également indexer des dépôts open source associés afin de retrouver une implémentation existante avant d’en écrire une nouvelle. Il faut cependant respecter les licences : retrouver du code ne donne pas le droit de le copier.\n\n Le changement central est donc opérationnel plutôt qu’algorithmique. XERJ tente de supprimer la frontière entre les fichiers du développeur et le corpus qu’un système de recherche a été préparé à comprendre. Dans certains flux, son principal concurrent n’est ni Elasticsearch ni un service vectoriel hébergé, mais le script d’ingestion que personne n’écrit et la lecture répétée du même arbre par l’agent.\n\n ## Un modèle de recherche plus large qu’un index vectoriel\n\n XERJ prend en charge la recherche plein texte, la recherche vectorielle, la recherche hybride, les agrégations et les filtres de métadonnées dans un même moteur. Son embedder lexical intégré, fondé sur le hachage de caractéristiques, fonctionne sans téléchargement de modèle ni endpoint externe. Il ne faut pas le confondre avec un modèle neuronal : il capte le recouvrement de vocabulaire et de sous-mots, utile pour les identifiants, les termes techniques et les motifs de nommage, mais il ne relie pas forcément les synonymes ou les relations conceptuelles.\n\n Un mode neuronal est aussi disponible. La feuille de route décrit un encodeur de la famille MiniLM exécuté en processus, téléchargé au premier usage sauf configuration d’un modèle local. Cela offre un choix entre une voie lexicale légère et une voie sémantique plus lourde, avec les questions habituelles de mémoire, de chargement, de partage entre index et de fonctionnement sur une machine isolée. Le projet reconnaît qu’un même nœud servant plusieurs index sémantiques peut conserver plusieurs instances du modèle en mémoire.\n\n La recherche hybride est probablement le meilleur point de départ pour le code. Le lexical est efficace sur les noms exacts, les options, les chaînes d’erreur et les symboles d’API ; le vectoriel aide lorsque la formulation diffère du texte source. Leur combinaison fournit une meilleure sélection initiale, sans dispenser de vérifier le résultat. Un passage retrouvé est une preuve pour l’étape suivante, pas la preuve que l’agent a compris le dépôt.\n\n Le projet décrit une voie HNSW persistante pour les recherches de plus proches voisins non filtrées, avec réévaluation exacte des candidats. Les documents publiés indiquent un rappel parfait sur une requête de benchmark officielle et une moyenne inférieure sur une configuration donnée. Ces chiffres dépendent du corpus, de la distribution des requêtes, des filtres et du matériel ; ils ne constituent pas une garantie générale. Pour la recherche d’un symbole, d’un site d’appel, d’une clé de configuration ou d’une limite d’implémentation, l’indexation sensible à l’AST peut être plus utile qu’un embedding sophistiqué.\n\n ## La compatibilité Elasticsearch est un pont, pas une parité\n\n XERJ implémente une partie substantielle de la surface REST d’Elasticsearch : index, documents, opérations bulk, recherche, mappings, agrégations, requêtes k-plus-proches-voisins, défilement, réindexation et plusieurs endpoints `_cat`. Des clients existants et certains tableaux de bord peuvent donc se connecter en changeant l’endpoint. Pour une petite équipe, c’est un moyen pratique de l’essayer dans des outils connus.\n\n Il faut toutefois lire « compatible Elasticsearch » comme une affirmation d’API, non d’architecture ou de parité complète. XERJ n’est pas un fork d’Elasticsearch. Les mainteneurs publient un décompte de conformité et listent les lacunes restantes. La gestion du scroll en donne un exemple : XERJ documente un cliché initial borné et recommande `search_after` pour les résultats qui dépassent cette fenêtre. Une recherche interactive peut fonctionner alors qu’un export dépendant d’un comportement précis du scroll échoue.\n\n La comparaison publiée avec Elasticsearch 8.13.4 rapporte des gains, des égalités et des pertes sur l’ingestion, le plein texte, les agrégations, le vectoriel et les lectures sous écritures concurrentes. Les pertes de latence de lecture en queue lorsqu’un écrivain est actif sont conservées dans le bilan. Un moteur plus rapide à l’ingestion mais moins prévisible sous une charge donnée peut être adapté, à condition que l’application tolère cette différence.\n\n Une migration devrait commencer par une matrice couvrant la création d’index, les mappings, le bulk, les suppressions, le refresh, les agrégations, la pagination, les requêtes vectorielles, les tableaux de bord, les sauvegardes, la restauration et la version exacte du client. Il faut comparer l’ordre, les totaux, les erreurs et les modes de panne, pas seulement vérifier qu’une réponse arrive. La suite de conformité aide, mais ne remplace pas les tests applicatifs.\n\n ## La sécurité commence au mode de démarrage\n\n Le guide rapide pour agents utilise `--insecure` dans une boucle locale. Le projet précise que cette option désactive TLS et l’authentification par clé API. Tout appelant capable d’atteindre le port peut alors disposer de privilèges étendus sur le nœud, notamment l’accès aux données indexées et aux espaces mémoire. Le bind initial sur la boucle locale réduit l’exposition d’un poste, mais ne rend pas sûr un port exposé ou transféré.\n\n Sans `--insecure`, l’authentification par clé API est activée par défaut et le nœud peut générer une clé administrative dans le répertoire de données avec des permissions restrictives. TLS se configure séparément avec les chemins du certificat et de la clé. Un environnement partagé doit utiliser l’authentification, configurer TLS, limiter l’accès réseau et soumettre les index à une politique de sauvegarde et de contrôle d’accès.\n\n Le stockage doit rester en dehors de tout dossier indexé. Sinon, l’autoindexation peut découvrir les propres fichiers générés par le moteur, créer des doublons, gonfler l’index et compliquer le nettoyage. L’historique signale aussi un démarrage annonçant le succès avant que tous les écouteurs soient liés, ce qui pouvait laisser une commande parler à un autre service déjà présent sur le port. Même corrigé, ce cas rappelle qu’il faut vérifier le processus, l’adresse, l’identité du service et le chemin de données avant d’indexer du contenu privé.\n\n Un index contenant du code, des journaux clients, des identifiants accidentellement commités, des notes d’incident, des contrats ou de la mémoire d’agent est un système sensible. Le caractère local peut éviter un transfert vers un service hébergé, mais ne dispense ni de permissions, ni de chiffrement, ni de règles de conservation et de suppression.\n\n ## La mémoire d’agent modifie la frontière de confiance\n\n XERJ inclut une API de mémoire avec espaces de noms, adossée à des index ordinaires. Un agent peut stocker une note, la retrouver par texte ou vecteur et la conserver entre les sessions. C’est pratique pour les décisions d’architecture, commandes de test et modes de panne récurrents, mais une mémoire persistante reste présente jusqu’à sa suppression ou son expiration.\n\n La provenance est donc essentielle. Une note devrait distinguer un fait observé dans le code d’une inférence issue d’un débogage, préciser quand la décision était valide et, si possible, citer le commit ou le document d’origine. Sinon, le système risque de conserver des hypothèses périmées avec une efficacité supérieure à celle d’une revue humaine.\n\n La documentation du « second cerveau » décrit des relations de graphe entre documents et notes. Elles facilitent la navigation, mais amplifient aussi l’impact d’une erreur : une relation obsolète peut conduire l’agent sur un chemin convaincant et faux. Il faut tester les notes contradictoires, les composants renommés, les fichiers supprimés et les faits modifiés entre versions.\n\n MCP réduit la friction d’installation en initialisant les outils et leurs schémas lisibles par machine. Cela ne réduit pas leur autorité. Il faut limiter les chemins indexés, éviter l’écriture sauf nécessité et journaliser les requêtes et mutations importantes. Une configuration prudente est une recherche en lecture seule sur une copie maîtrisée du dépôt.\n\n ## Ce que les réserves disent de la maturité\n\n Le dépôt et le suivi des tickets exposent des zones que la page d’accueil pourrait omettre : récupération de corpus, enregistrements JSON sans texte exploitable par recherche de passages, limites de débit, recherche hybride, pression mémoire et clustering. Ces sujets ne disqualifient pas le projet ; ils montrent que ses frontières sont encore en définition.\n\n Un dossier d’enregistrements structurés peut être valide tout en donnant peu de résultats à une commande orientée passages si le champ textuel attendu manque. Il faut alors aplatir ou rendre les données consultables. L’autoindexation réduit le travail de schéma, mais ne supprime pas les décisions de modélisation du contenu.\n\n La feuille de route distingue aussi l’utilité d’un nœud unique de la maturité distribuée. Réplication, élection du leader, déplacement des shards, basculement, vérification des sauvegardes et observabilité doivent être validés séparément. Un répertoire ou une API liée au cluster ne suffit pas à prouver la maturité d’un stockage distribué.\n\n La charge compte. Beaucoup de petits jeux de données peuvent créer un coût d’ordonnancement ; un corpus de centaines de milliers de petits JSON ne ressemble pas à un dépôt unique. L’indexation incrémentale, qui hache les fichiers inchangés et réutilise leur résultat, paraît prometteuse dans un cycle d’édition fréquent. Il faut cependant la tester avec renommages, suppressions, fichiers générés, liens symboliques, fichiers ignorés et exécutions interrompues.\n\n ## Qui devrait l’essayer maintenant\n\n XERJ est adapté au code privé ou spécialisé qu’un modèle général connaît mal, à plusieurs dépôts apparentés, aux contraintes de conformité et à l’expérimentation de mémoire locale sans base vectorielle distincte. Il convient aussi aux équipes qui connaissent Elasticsearch et veulent évaluer une alternative locale.\n\n Commencez par une copie jetable d’un dépôt, avec les données du nœud à l’extérieur. Utilisez la boucle locale, activez l’authentification si le port peut être atteint par un autre utilisateur ou processus, puis indexez seulement le code et la documentation utiles. Testez noms exacts, questions conceptuelles, définitions et requêtes difficiles. Comparez avec grep, un serveur de langage et la réponse du modèle sans aide ; mesurez le temps jusqu’au contexte utile, pas seulement la latence.\n\n Introduisez ensuite des modifications : renommage, suppression de symbole, exemple de configuration modifié, répertoire généré et indexation interrompue. Vérifiez la disparition des enregistrements obsolètes, la précision fichier-ligne et la récupération après échec. Pour la programmation par référence, indexez deux ou trois dépôts comparables, demandez une implémentation précise, sa licence et la raison de sa pertinence.\n\n ## Qui devrait attendre\n\n Les équipes qui cherchent un remplacement direct d’un grand déploiement Elasticsearch distribué devraient attendre les résultats de leurs tests de compatibilité et de panne. Il en va de même pour les organisations exigeant une gestion de parc mature, des sauvegardes auditées, une isolation multi-tenant ou un écosystème opérationnel établi. Les documents publics de XERJ sont aujourd’hui les plus convaincants sur la recherche locale, les flux d’agents et le comportement mesuré d’un nœud unique.\n\n Une équipe qui a besoin d’une recherche sémantique de grande qualité doit comparer le mode neuronal à son service d’embeddings. L’embedder lexical est utile parce qu’il est modeste et hors ligne, non parce qu’il résout la sémantique générale. Mesurez le rappel sur la langue, les abréviations et le vocabulaire métier réels. Un benchmark générique peut donner une image trop favorable.\n\n Ne l’adoptez pas seulement parce que le projet annonce moins de tokens. La réduction n’a de valeur que si la qualité reste acceptable. L’étude de programmation par référence rapporte moins de tokens de sortie à taux de résolution égal sur un ensemble limité, tandis que la documentation précise que le bénéfice dépend de la mémorisation : XERJ est surtout utile pour les contenus privés, internes, spécialisés ou postérieurs aux données connues du modèle. C’est une hypothèse à tester, pas une loi universelle.\n\n ## Verdict\n\n XERJ est un projet open source de recherche particulièrement ciblé pour l’ère des agents parce qu’il traite l’indexation comme une partie de l’expérience. Son idée forte n’est pas seulement un nouvel embedding ou une endpoint compatible Elasticsearch, mais le flux qui part d’un dossier, en fait un corpus local structuré et permet de récupérer le passage ou le symbole nécessaire à la décision suivante.\n\n Le projet mérite un essai lorsque le besoin concerne du code privé, l’exploration répétée de dépôts, la recherche locale ou une mémoire d’agent légère. La licence Apache-2.0, les benchmarks publiés, les tests de compatibilité et le suivi public des tickets permettent d’évaluer la proposition concrètement.\n\n La bonne posture est expérimentale et disciplinée : séparer le chemin de données, comprendre ce que retire `--insecure`, vérifier le service lié avant l’indexation, tester séparément les recherches lexicales et sémantiques, contrôler les licences des dépôts de référence, traiter la mémoire comme une donnée persistante et comparer les résultats avec grep, le serveur de langage et les outils déjà utilisés.\n\n Si XERJ réussit cette comparaison, sa valeur viendra de la réduction du contexte porté par l’agent tout en conservant les preuves nécessaires à la confiance du développeur. S’il échoue, le problème devrait apparaître dans les mêmes endroits que ceux indiqués par ses mainteneurs : cas de compatibilité, tests de corpus, journaux opérationnels et benchmarks reproductibles. C’est un niveau d’exigence raisonnable pour un outil open source encore en route vers une version stable.\n\n ### Checklist de départ\n\n - Utiliser une copie jetable d’un dépôt.\n- Stocker les données XERJ hors de tous les dossiers indexés.\n- Lier le nœud à la boucle locale et éviter `--insecure` hors d’une session locale contrôlée.\n- Tester séparément les requêtes lexicales, structurelles, hybrides et sémantiques.\n- Réindexer après des renommages, suppressions et interruptions.\n- Comparer avec grep, un serveur de langage et la pile de recherche existante.\n- Traiter le code retrouvé comme du contenu sous licence et noter sa source.\n- Ne pas déduire la maturité de production de la seule compatibilité réseau Elasticsearch.\n\n ## Sources\n\n Le [dépôt du projet](https://github.com/xerj-org/xerj), le [guide d’installation](https://xerj.org/docs/install), le [guide rapide pour agents](https://www.xerj.org/docs/agents/quickstart) et la [documentation de sécurité](https://www.xerj.org/docs/security) fournissent le nécessaire pour une première évaluation. La [justification de conception](https://github.com/xerj-org/xerj/blob/main/docs/WHY_XERJ.md) et le [suivi des tickets](https://github.com/xerj-org/xerj/issues) comptent autant que la liste des fonctions : ils montrent où s’arrêtent les affirmations du projet. La [feuille de route](https://github.com/xerj-org/xerj/blob/main/ROADMAP.md) documente les limites et les travaux à venir. La [licence Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) définit le cadre de réutilisation du projet.","available_translations":[{"language":"ar","title":"XERJ يحوّل مجلدًا محليًا إلى نظام بحث للوكلاء — ما الجاهز للتجربة وما لم يجهز بعد","html_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=ar","markdown_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.md?lang=ar","json_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.json?lang=ar","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/xerj_local_agent_search_autoindex_tradeoffs?lang=ar"},{"language":"de","title":"XERJ macht aus einem lokalen Ordner ein Agenten-Suchsystem – was schon funktioniert und wo Grenzen liegen","html_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=de","markdown_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.md?lang=de","json_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.json?lang=de","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/xerj_local_agent_search_autoindex_tradeoffs?lang=de"},{"language":"en","title":"XERJ turns a local folder into an agent-search system — what is ready to try and what is not","html_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=en","markdown_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.md?lang=en","json_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.json?lang=en","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/xerj_local_agent_search_autoindex_tradeoffs?lang=en"},{"language":"es","title":"XERJ convierte una carpeta local en un sistema de búsqueda para agentes: qué está listo para probar y qué no","html_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=es","markdown_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.md?lang=es","json_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.json?lang=es","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/xerj_local_agent_search_autoindex_tradeoffs?lang=es"},{"language":"fr","title":"XERJ transforme un dossier local en système de recherche pour agents — ce qui est prêt à essayer et ce qui ne l’est pas","html_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=fr","markdown_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.md?lang=fr","json_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.json?lang=fr","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/xerj_local_agent_search_autoindex_tradeoffs?lang=fr"},{"language":"pl","title":"XERJ zamienia lokalny folder w system wyszukiwania dla agentów — co warto już wypróbować, a na co jeszcze uważać","html_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=pl","markdown_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.md?lang=pl","json_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.json?lang=pl","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/xerj_local_agent_search_autoindex_tradeoffs?lang=pl"},{"language":"ru","title":"XERJ превращает локальную папку в систему поиска для агентов: что уже можно пробовать, а что пока рано","html_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=ru","markdown_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.md?lang=ru","json_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.json?lang=ru","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/xerj_local_agent_search_autoindex_tradeoffs?lang=ru"},{"language":"zh","title":"XERJ 将本地文件夹变成智能体搜索系统：哪些已经可用，哪些仍待验证","html_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=zh","markdown_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.md?lang=zh","json_url":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.json?lang=zh","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/xerj_local_agent_search_autoindex_tradeoffs?lang=zh"}],"_links":{"self":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.json?lang=fr","api":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/xerj_local_agent_search_autoindex_tradeoffs?lang=fr","html":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=fr","canonical":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs?lang=fr","markdown":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.md?lang=fr","json":"https://publicasta.com/open_source_radar/xerj_local_agent_search_autoindex_tradeoffs.json?lang=fr","channel":"https://publicasta.com/api/public/v1/channels/open_source_radar","channel_articles":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles","search":"https://publicasta.com/api/public/v1/search","documentation":"https://publicasta.com/api-docs#reading-publicasta","openapi":"https://publicasta.com/api-docs/openapi.json","llms":"https://publicasta.com/llms.txt"}}