Ingénierie du contexte spatial pour l'IA

Par The Kaleidr Team · Publié 22 octobre 2026 · 15 min de lecture

Schéma où une tâche, un identifiant de lieu, l’état de la carte, le temps, les faits métier, les permissions et la fraîcheur alimentent des contrôles d’itinéraire, de distance et de contenance, puis un paquet de contexte compact et une réponse cartographique.

Une pratique d’ingénierie du contexte spatial sélectionne le lieu, le temps, l’itinéraire et les faits métier qu’un modèle peut utiliser avant de répondre. Un prompt peut demander la borne de recharge la plus proche. Une réponse utile a pourtant encore besoin de l’itinéraire, de l’heure et uniquement des faits que l’hôte a choisi de partager. Un service spatial calcule la géographie et le modèle explique ce résultat.

Qu’est-ce que l’ingénierie du contexte spatial ?

Une revue de 2025 portant sur plus de 1 400 articles de recherche présente l’ingénierie du contexte comme une discipline qui dépasse la conception de prompts pour optimiser systématiquement les informations qu’un modèle de langage reçoit (Mei et al., 2025). Cette revue divise le travail en récupération et génération du contexte, traitement du contexte et gestion du contexte. L’ingénierie du contexte spatial applique la même discipline au lieu. La charge utile doit indiquer où se trouve le sujet, quand les faits étaient vrais, quel itinéraire ou quelle zone compte et quels enregistrements métier l’appelant peut utiliser.

Davantage de contexte n’est pas automatiquement préférable. Liu et ses collègues ont constaté que les modèles de langage obtiennent souvent leurs meilleurs résultats lorsque l’information pertinente se trouve au début ou à la fin de l’entrée, et que les performances se dégradent nettement lorsque le modèle doit utiliser une information située au milieu d’un long contexte (Liu et al., 2024). Un paquet spatial doit donc rester petit : les lieux éligibles, les distances ou résultats de contenance calculés, la fraîcheur de ces résultats et les actions que l’appelant peut effectuer. Déverser toutes les couches de la vue cartographique actuelle ne passe pas ce test.

Les guides de praticiens utilisent déjà le terme. Le guide pour développeurs de Vercel nomme quatre modèles : la récupération, la mémoire, la compression et le contexte d’outils (Vercel, 2026). Un produit cartographique utilise les quatre, et aucun ne remplace un calcul spatial. La récupération peut apporter un passage de politique, la mémoire une préférence antérieure, et la compression peut écarter le reste du catalogue. Le contexte d’outils peut contenir le résultat d’un itinéraire ou d’un contrôle de contenance, et le modèle doit expliquer ce résultat plutôt qu’inventer un chiffre de substitution.

En quoi un prompt diffère-t-il du contexte ?

Un prompt pose la question. Le contexte est l’ensemble des éléments de preuve assemblés avant la réponse. « Trouve les bornes de recharge les plus proches pour un itinéraire de livraison » est une instruction, et une instruction seule peut produire une liste générique de bornes qui ignore le véhicule, l’heure et les routes réellement ouvertes. La figure oppose cette réponse minimale à un paquet qui nomme un lieu, un temps, un itinéraire, un état métier, des permissions et l’état de la carte.

Un court prompt demandant des bornes proches à côté d’un paquet de contexte spatial qui ajoute lieu, temps, itinéraire, état métier, permissions et état de la carte.

À gauche, une courte instruction et une réponse générique sur des bornes de recharge proches. À droite, le lieu, le temps, l’itinéraire, l’état métier, les permissions et l’état de la carte sont ajoutés avant une réponse consciente de la localisation. L’identifiant de lieu, l’horodatage de juin 2024, l’étiquette 5,2 km et les repères de bornes sont des libellés d’exemple. Le paquet de droite est un schéma de référence, pas un format de requête Kaleidr.

La réponse minimale n’est pas grammaticalement fausse. Elle est inutilisable pour une opération, car « proche » n’a pas d’origine, pas de détour maximal et aucune règle indiquant quelles bornes la flotte peut utiliser. Le côté plus riche de la figure utilise encore des identifiants d’exemple ; ces valeurs ne proviennent donc pas d’une requête en direct. Un paquet de production porterait les propres identifiants de l’hôte et les propres valeurs du service spatial.

Pourquoi retrieval n’est-il qu’une source ?

Retrieval extrait des passages de documents, politiques, descriptions et articles d’aide. Ces passages peuvent expliquer une règle. Ils ne peuvent pas dire à un répartiteur si un arrêt se situe dans une zone de service, car un test de polygone est un calcul et non un paragraphe. Le contexte spatial conserve le texte récupéré et ajoute des faits structurés, un résultat d’autorisation, l’état actuel de la carte et le résultat spatial.

Documents récupérés et texte de politique à côté d’une pile de contexte spatial composée de faits métier, d’autorisation, d’état de carte et de calculs spatiaux.

La colonne de gauche récupère documents, texte de politique, descriptions et connaissances sous forme de passages. La colonne de droite ajoute à ce texte des faits métier structurés, l’autorisation, l’état de la carte et des calculs spatiaux. Le résultat de la figure est un paquet de décision pour une réponse consciente de la localisation. L’itinéraire dessiné et le repère sont des illustrations d’exemple, pas un trajet mesuré.

Une équipe qui s’arrête au texte récupéré paraîtra informée tout en ayant tort sur la carte. Le passage de politique peut dire que les livraisons tardives nécessitent un site avec du personnel. Seuls le flux d’horaires, le test de contenance et la permission de l’appelant peuvent dire si ce site est admissible maintenant. Le paquet de décision de la figure est l’endroit où ces éléments se rejoignent.

Pourquoi les preuves actuelles doivent-elles l’emporter sur une mémoire périmée ?

La mémoire est utile pour une préférence qui n’expire pas, comme un dépôt enregistré ou une langue. Elle constitue une mauvaise source pour le trafic, les fermetures, le stock ou la question de savoir qui peut voir aujourd’hui un site privé. Un « meilleur arrêt » mémorisé de la semaine dernière peut contredire l’itinéraire que le service spatial vient de renvoyer. En cas de désaccord, le calcul actuel et l’autorisation actuelle doivent l’emporter, et la mémoire doit rester étiquetée comme préférence plutôt que comme fait.

La même règle vaut pour un résumé rédigé plus tôt dans la session. Un récapitulatif compressé peut omettre une fermeture ou une permission révoquée. Le tour suivant doit relire les champs qui changent, ou l’appelant doit refuser d’agir sur un résumé dépourvu d’horodatage. La fraîcheur appartient au paquet comme donnée, pas comme espoir que la réponse précédente soit encore vraie.

Pourquoi l’identité du lieu vient-elle avant une recherche ?

Deux enregistrements peuvent partager un nom tout en représentant des lieux différents. Une recherche de « la boutique du centre-ville » n’est pas un identifiant. Le paquet doit transporter un identifiant de lieu stable provenant du propre système de l’hôte, ainsi que les coordonnées ou la géométrie que le service spatial utilisera, et le nom affiché doit rester une étiquette plutôt que la clé. Sans cet identifiant, un tour ultérieur ne peut distinguer une boutique renommée d’une seconde boutique, et une citation ne peut pas pointer vers l’enregistrement réellement éligible.

Quelle géométrie le paquet doit-il transporter ?

La géométrie doit correspondre à la question. Une question sur la borne la plus proche nécessite des points et un itinéraire. Une question sur une zone de service nécessite un polygone et un résultat de contenance. Une question de corridor nécessite une ligne et une distance à cette ligne. GeoJSON définit un objet de géométrie, et Point est l’un des types de géométrie de ce format ; un paquet peut donc nommer le type au lieu de cacher la forme dans du texte (IETF, 2016). Envoyer un point lorsque la décision dépend d’un polygone donne à l’explication ultérieure une apparence de précision alors que le test n’a jamais été exécuté.

Pourquoi le viewport n’est-il pas une permission ?

Un lieu peut se trouver dans la caméra tout en restant interdit. La figure place trois sites d’exemple dans une même vue : deux magasins publics que l’appelant peut utiliser et une installation privée qui reste hors du contexte même si son repère est visible. La visibilité donne un indice sur ce que l’utilisateur regarde. L’autorisation est un contrôle séparé de ce que la requête peut inclure.

Un viewport cartographique avec deux magasins publics autorisés et une installation privée visible mais exclue du contexte du modèle.

Le cadre en pointillés représente la vue cartographique actuelle et trois lieux d’exemple s’y trouvent. Public Store A et Public Store B sont marqués comme autorisés. Private Facility C reste hors du contexte du modèle même si son repère est visible à l’écran. Un viewport fournit un contexte de localisation et un contrôle d’autorisation séparé décide de ce qui peut être utilisé.

La même séparation s’applique sur une carte hôte. La documentation développeur de Kaleidr indique que Chat ajoute ses propres marqueurs, déplace la caméra et dessine des itinéraires, et que Chat ne modifie pas les couches, sources ou marqueurs de la page ni n’envoie ces objets à Kaleidr (Kaleidr, 2026). Un repère à l’écran n’est pas une autorisation. L’hôte décide quels faits franchissent la limite, et le paquet doit enregistrer cette décision au lieu de supposer que la caméra l’a déjà prise.

Que doit calculer d’abord un service spatial ?

Placez les nombres dans un service spatial, puis demandez au modèle de les expliquer. La figure montre un détour d’itinéraire, un résultat « à l’intérieur de la zone de service » et un temps de trajet qui alimentent une explication de la raison pour laquelle un magasin convient. Un encadré séparé rejette un temps de trajet deviné. Le modèle est une mauvaise source pour une distance, un test de contenance ou une estimation d’arrivée, car ces valeurs viennent du réseau routier, du polygone et de l’horloge.

Résultats d’un service spatial pour un détour d’itinéraire, un contrôle de zone de service et un temps de trajet, à côté d’une explication et d’un temps deviné rejeté.

Un service spatial indique un détour d’itinéraire de six minutes, un contrôle positif à l’intérieur de la zone de service et un temps de trajet de quatorze minutes. L’explication indique ensuite pourquoi Store 104 de la figure est l’arrêt sélectionné. L’encadré rejeté montre un modèle de langage inventant un temps de trajet au lieu d’utiliser le résultat du service. Les minutes, les numéros de magasin et l’estimation citée sont des libellés d’exemple sur l’illustration.

L’explication peut néanmoins être utile. Une fois que le service a renvoyé l’arrêt éligible, le modèle peut expliquer, dans la langue de l’appelant, quel fait calculé a rendu cet arrêt adapté. L’explication doit reprendre le résultat du service au lieu de le remplacer. Les numéros de magasin et les badges de minutes de la figure sont des libellés, pas un benchmark Kaleidr.

Qu’est-ce qui rend un paquet de contexte suffisamment petit ?

Un paquet doit être assez petit pour être lu et assez complet pour que la décision ne dépende pas d’un tableau caché. La figure part de systèmes bruts, dont une base de magasins, l’inventaire, les horaires, le routage et les permissions, et se termine par un objet court : une tâche, quelques candidats, l’éligibilité, un détour d’itinéraire, un horodatage de fraîcheur et les actions autorisées. Tout ce qui n’a pas affecté l’éligibilité peut rester dans le système source.

Enregistrements de magasins, d’inventaire, d’horaires, de routage et de permissions compressés par un constructeur de contexte en un court paquet de candidats, d’éligibilité et d’actions autorisées.

Des enregistrements bruts provenant d’une base de magasins, de l’inventaire, des horaires, du routage et des permissions entrent dans un constructeur de contexte. Le constructeur émet un court paquet avec une tâche, quelques magasins candidats, des indicateurs d’éligibilité, un détour d’itinéraire, un horodatage et les actions autorisées. Le paquet doit être assez petit pour être inspecté et assez complet pour une décision. Les identifiants de magasins, les distances et l’horodatage de juin 2024 sont des libellés d’exemple, et le JSON est un schéma de référence plutôt qu’une API Kaleidr.

Ce résultat sur les longs contextes justifie les omissions. La récupération de candidats peut commencer large puis se réduire : les lieux non éligibles disparaissent avant que le modèle ne les voie et le paquet conserve la raison, par exemple une fermeture ou un échec du test de contenance. La requête de chat public de Kaleidr constitue un contrat plus étroit que ce schéma, et la section suivante précise ce que cette requête transporte réellement. Les équipes ne doivent pas envoyer le JSON de la figure en POST comme si la plateforme documentait cet objet.

Que contient un pipeline de référence ?

Un pipeline pratique nomme l’étape propriétaire de chaque risque. Analyser la tâche, identifier l’appelant, vérifier l’autorisation, définir la portée géographique, récupérer les candidats, joindre l’état métier, exécuter le calcul spatial, appliquer l’éligibilité, assembler le paquet, envoyer ce paquet au modèle, effectuer l’action cartographique, revalider les champs volatils et enregistrer ce qui s’est passé. La figure ajoute quatre contrôles en haut : la source, la règle de fraîcheur, la politique et un trace id.

Un pipeline de référence allant de l’analyse de la tâche et de l’autorisation au calcul spatial, à un paquet de contexte, à une action cartographique, à la revalidation et à l’observation.

La bande va de l’analyse de la tâche à l’identité, l’autorisation, la portée géographique, la récupération des candidats, l’état métier, le calcul spatial, l’éligibilité, un paquet de contexte, le modèle, une action cartographique, la revalidation et l’observation. Source, fraîcheur, politique et trace id se trouvent au-dessus comme contrôles de chaque étape. Le schéma est un pipeline de référence pour une équipe qui conçoit son propre constructeur de contexte. L’itinéraire dessiné dessous est une illustration d’exemple.

L’ordre est une aide de conception, pas une séquence produit Kaleidr. Certaines équipes fusionneront la récupération des candidats avec le calcul spatial. Les étapes qui doivent rester visibles sont l’autorisation, le calcul, l’éligibilité et une revalidation immédiatement avant une action telle que l’affectation d’un arrêt. Spatial AI ancrée dans les données métier est le guide Kaleidr associé pour l’autorisation, le retrieval et le ranking.

Où Kaleidr trace-t-il la limite du contexte ?

Sur une carte hôte, la limite est explicite. Le guide des cartes prises en charge couvre l’attachement de Kaleidr Chat à Mapbox GL JS, MapLibre GL JS, Google Maps et Leaflet, entre autres bibliothèques, et une clé Google Maps reste entre la page et Google car Kaleidr ne reçoit pas cette clé (Kaleidr, 2026). Les repères, le déplacement vers un lieu et une ligne d’itinéraire sont des dessins ajoutés par le panneau. Ces dessins ne sont pas une copie des tables privées de l’hôte.

Une application hôte transmettant seulement une tranche explicite de localisation, zoom, session et faits approuvés à Kaleidr Chat, avec Mapbox, MapLibre, Google Maps et Leaflet comme cartes hôtes.

L’application hôte conserve les utilisateurs, les données privées, l’inventaire, les politiques, les couches personnalisées et les actions métier. Seule une tranche explicite, comme une localisation autorisée, le zoom de la carte, la session et des faits approuvés, franchit la limite dans la figure. Kaleidr Chat, à droite, résout les lieux, planifie les itinéraires et effectue des actions cartographiques à partir de cette tranche partagée. Le pied est un libellé de figure, les noms de magasins et de véhicules sont des exemples, et l’attachement de Chat n’envoie pas à lui seul les couches ou systèmes métier de l’hôte.

La Platform API documente une limite correspondante sur la requête de chat. messages contient la conversation, l’objet location est le centre de la carte utilisé pour interpréter « près d’ici », map_zoom est le niveau de zoom et lang la langue de réponse. La même page indique qu’il n’existe aucun champ pour les instructions système, une persona, des outils ou le propre contexte de l’appelant, et que les champs inconnus sont acceptés puis ignorés. app_snapshot et auto_actions sont acceptés mais non nécessaires ; la page recommande donc de les laisser de côté (Kaleidr, 2026).

Les données métier téléchargées suivent un chemin distinct de cette requête. Le téléchargement des propres données métier d’une organisation pour des réponses IA est réservé à Enterprise, tout comme les réponses avec clé qui s’appuient sur ces données téléchargées, comme l’indique How Kaleidr works. Une page complémentaire, comment construire un assistant IA conscient de la carte, couvre l’assistant qu’une équipe construit autour de cette même limite.

Comment la même page peut-elle être trouvée et citée ?

Une page sur cette pratique doit être facile à citer. La figure répartit ce travail entre la recherche classique, les moteurs de réponse et la citation générative. La recherche veut la formulation canonique, un groupe de méthodes associées et des liens vers les guides d’appui. Les moteurs de réponse veulent une définition directe, quelques questions précises et une comparaison comme retrieval contre paquet spatial.

Recherche, moteurs de réponse et citation générative organisés autour d’une page d’ingénierie du contexte spatial, avec mots-clés, définitions, questions et sources citées.

Le centre de la figure est l’ingénierie du contexte spatial, avec la recherche, les moteurs de réponse et la citation générative comme trois surfaces autour. La recherche couvre un mot-clé canonique, un cluster thématique et des liens internes. Les moteurs de réponse veulent des définitions directes, des questions fréquentes et des comparaisons. La citation générative veut un cadre original, un schéma décrit, une liste d’échecs et des sources citées ; aucun de ces encadrés n’est une promesse de classement.

Les encadrés de cette figure constituent une checklist rédactionnelle, pas une garantie de trafic. Kaleidr ne classe pas la page et la figure ne rapporte aucune mesure. La page peut en revanche énoncer la définition à un endroit, montrer le paquet comme schéma de référence plutôt que comme format filaire et citer les standards et documentations dont dépendent les affirmations. Un lecteur peut alors voir quelle phrase est une définition et quelle phrase est une limite produit.

Que doit faire une équipe ensuite ?

Écrivez le paquet pour une tâche réelle avant de modifier le prompt. Incluez l’identifiant de lieu, le temps, le type de géométrie, le résultat spatial et la permission qui a autorisé chaque fait. Comparez ensuite cette liste avec la requête de chat qu’un hôte peut envoyer aujourd’hui : la conversation, le centre de la carte, le zoom et la langue, sans champ pour le contexte privé de l’hôte. Lorsque les réponses doivent s’appuyer sur des données métier téléchargées, commencez par Kaleidr Enterprise.

Note : Kaleidr utilise des outils assistés par IA pour la création d’images, l’amélioration du contenu et la recherche dans ses flux créatifs et de développement.

FAQ

L’ingénierie du contexte spatial est-elle la même chose que le prompt engineering ?

Non. Le prompt engineering modifie la formulation de l’instruction. L’ingénierie du contexte spatial modifie les éléments de preuve que l’instruction peut utiliser, notamment le lieu, le temps, l’itinéraire ou la zone et les faits métier que l’appelant peut voir. Une meilleure phrase ne peut pas fournir un résultat de contenance que le service spatial n’a jamais calculé.

Attacher Kaleidr Chat lit-il les couches de la carte hôte ?

Non. Sur une page où Chat s’exécute dans le document hôte, Chat ajoute ses propres marqueurs, déplace la caméra et dessine des itinéraires. Chat ne modifie pas les couches, sources ou marqueurs de la page et n’envoie pas ces objets à Kaleidr. Les tables privées restent du côté hôte de la limite sauf si un chemin Enterprise distinct couvre les données métier téléchargées.

La requête de chat public peut-elle transporter un paquet de contexte personnalisé ?

La requête documentée transporte la conversation, une localisation pour le centre de la carte, un zoom optionnel et une langue. Il n’existe aucun champ pour les instructions système, une persona, des outils ou le propre contexte de l’appelant. app_snapshot et auto_actions sont acceptés et non nécessaires ; une équipe ne doit donc pas les traiter comme le paquet esquissé dans ce guide. Les champs inconnus sont acceptés et ignorés.

Pourquoi garder le temps de trajet dans un service spatial ?

Un temps de trajet dépend du réseau routier et de l’horloge, et une valeur en minutes devinée peut contredire l’itinéraire que le service vient de calculer. L’encadré rejeté de la figure de calcul illustre ce mode d’échec avec une citation d’exemple plutôt qu’un résultat en direct. Gardez la valeur dans le service spatial et laissez le modèle l’expliquer.

References

  1. Mei, L., et al. A Survey of Context Engineering for Large Language Models. A review of more than 1,400 papers that treats context engineering as more than prompt design and splits it into retrieval and generation, processing, and management. arXiv:2507.13334. 2025. https://arxiv.org/abs/2507.13334
  2. Liu, N. F., et al. Lost in the Middle: How Language Models Use Long Contexts. Transactions of the Association for Computational Linguistics, 12, 157–173. Performance is often highest when relevant information is at the start or end of the input and degrades significantly in the middle of long contexts. 2024. https://doi.org/10.1162/tacl_a_00638
  3. Vercel. What is context engineering? A developer's guide. A practitioner guide naming four patterns: retrieval, memory, compression, and tool context. Accessed October 22, 2026. https://vercel.com/i/context-engineering
  4. IETF. RFC 7946: The GeoJSON Format. GeoJSON defines a geometry object, and a Point is one of the geometry types. 2016. https://www.rfc-editor.org/info/rfc7946
  5. Kaleidr Developer Docs. How Kaleidr works. Chat adds its own markers, moves the camera, and draws routes, and does not change the page's layers, sources, or markers or send them to Kaleidr. Uploaded business data for AI answers, and key-backed answers that draw on that data, are Enterprise only. Accessed October 22, 2026. https://docs.kaleidr.com/concepts/how-kaleidr-works
  6. Kaleidr. Grounded Spatial AI for Business Data. A related guide covering authorization, retrieval, ranking, evaluation, and a narrow pilot. Accessed October 22, 2026. https://kaleidr.com/blog/grounded-spatial-ai-business-data
  7. Kaleidr Developer Docs. Supported maps. Attach targets include Mapbox GL JS, MapLibre GL JS, Google Maps, and Leaflet. A Google Maps key stays between the page and Google; Kaleidr does not receive it. Accessed October 22, 2026. https://docs.kaleidr.com/chat/supported-maps
  8. Kaleidr Developer Docs. Platform API endpoints. The chat request carries the conversation, a map-center location, optional zoom, and a language. There is no field for system instructions, a persona, tools, or the caller's own context. app_snapshot and auto_actions are accepted and not needed. Accessed October 22, 2026. https://docs.kaleidr.com/platform-api/endpoints
  9. Kaleidr. Map-Aware AI Assistant: How to Build One. A companion guide for building the assistant around a map. Accessed October 22, 2026. https://kaleidr.com/blog/how-to-build-a-map-aware-ai-assistant
  10. Kaleidr. Kaleidr Enterprise. The enterprise page for spatial AI integrated with a customer's own data. Accessed October 22, 2026. https://kaleidr.com/enterprise

References in BibTeX

@misc{mei_context_engineering_survey_2025,
  title         = {A Survey of Context Engineering for Large Language Models},
  author        = {Mei, Lingrui and others},
  year          = {2025},
  eprint        = {2507.13334},
  archivePrefix = {arXiv},
  url           = {https://arxiv.org/abs/2507.13334}
}

@article{liu_lost_in_the_middle_2024,
  title   = {Lost in the Middle: How Language Models Use Long Contexts},
  author  = {Liu, Nelson F. and Lin, Kevin and Hewitt, John and Paranjape, Ashwin and Bevilacqua, Michele and Petroni, Fabio and Liang, Percy},
  journal = {Transactions of the Association for Computational Linguistics},
  volume  = {12},
  pages   = {157--173},
  year    = {2024},
  doi     = {10.1162/tacl_a_00638}
}

@misc{vercel_context_engineering_2026,
  title  = {What is context engineering? A developer's guide},
  author = {{Vercel}},
  year   = {2026},
  url    = {https://vercel.com/i/context-engineering}
}

@misc{ietf_rfc7946_2016,
  title  = {RFC 7946: The GeoJSON Format},
  author = {{IETF}},
  year   = {2016},
  url    = {https://www.rfc-editor.org/info/rfc7946}
}

@misc{kaleidr_how_it_works_2026,
  title  = {How Kaleidr works},
  author = {{Kaleidr Developer Docs}},
  year   = {2026},
  url    = {https://docs.kaleidr.com/concepts/how-kaleidr-works}
}

@misc{kaleidr_grounded_spatial_ai_2026,
  title  = {Grounded Spatial AI for Business Data},
  author = {{Kaleidr}},
  year   = {2026},
  url    = {https://kaleidr.com/blog/grounded-spatial-ai-business-data}
}

@misc{kaleidr_supported_maps_2026,
  title  = {Supported maps},
  author = {{Kaleidr Developer Docs}},
  year   = {2026},
  url    = {https://docs.kaleidr.com/chat/supported-maps}
}

@misc{kaleidr_platform_api_endpoints_2026,
  title  = {Platform API endpoints},
  author = {{Kaleidr Developer Docs}},
  year   = {2026},
  url    = {https://docs.kaleidr.com/platform-api/endpoints}
}

@misc{kaleidr_map_aware_assistant_2026,
  title  = {Map-Aware AI Assistant: How to Build One},
  author = {{Kaleidr}},
  year   = {2026},
  url    = {https://kaleidr.com/blog/how-to-build-a-map-aware-ai-assistant}
}

@misc{kaleidr_enterprise_2026,
  title  = {Kaleidr Enterprise},
  author = {{Kaleidr}},
  year   = {2026},
  url    = {https://kaleidr.com/enterprise}
}