Les opérateurs tactiques utilisant CloudTAK — l'interface basée sur navigateur de TAK Server — font face à un point de friction constant : l'écart entre savoir ce qu'ils doivent faire et achever l'action dans l'interface. Placer un marqueur de contact nécessite un appui long, une sélection de menu, un sélecteur de type CoT, une boîte de dialogue de saisie de coordonnées, un champ d'indicatif et un appui de confirmation. Dans des conditions calmes à un bureau, cela prend quinze à vingt secondes. Sous la pression du temps, avec des gants, dans un véhicule sur une piste, cette séquence se fragmente. Des étapes sont sautées. Les coordonnées sont mal saisies. Les marqueurs se retrouvent sur la mauvaise grille. La conséquence n'est pas seulement du temps perdu — c'est une image opérationnelle commune dégradée par laquelle toute l'unité se repère.

TAKpilot est un coopilote de chat IA intégré directement dans CloudTAK qui élimine la navigation dans les menus comme mode d'interaction principal. Les opérateurs tapent — ou dictent — ce dont ils ont besoin : « placer un contact d'infanterie hostile à 37U DP 12345 67890, indicatif CONTACT-7 ». TAKpilot traduit la phrase en un appel API TAK structuré, l'exécute et montre à l'opérateur une carte en temps réel confirmant l'action et son résultat. Le marqueur est sur la carte en moins de deux secondes. Pas de menus, pas de boîtes de dialogue de sélection, pas de recherche de format de coordonnées.

Cet article explique comment TAKpilot fonctionne en pratique : le modèle de commande en langage naturel, la confirmation de symbole MIL-STD-2525/APP-6, la vision et l'intelligence des fichiers, les cartes d'outils en streaming, la porte de sécurité Approuver/Refuser, et le déploiement opérationnel du produit avec les forces de défense ukrainiennes.

Le problème de navigation dans les menus de CloudTAK sous la pression du temps

La structure de menus de CloudTAK reflète l'étendue de ce que TAK Server peut faire. Cette étendue est à la fois une force de capacité et une charge cognitive au même moment. Le même opérateur qui peut naviguer aisément dans CloudTAK pendant une session de planification à une table devient sujet aux erreurs lorsque le tempo opérationnel s'élève. La recherche en facteurs humains tactiques situe systématiquement la charge de navigation dans l'interface entre 30 et 40 pour cent du temps total de gestion de la COP pour les opérateurs expérimentés — non pas parce que le logiciel est mal conçu, mais parce qu'aucun système de menus arborescent n'égale la vitesse de la parole naturelle pour les commandes de routine.

Le problème s'aggrave selon les types d'opérations. S'abonner à un nouveau canal de données nécessite de naviguer jusqu'au volet de gestion des canaux, de trouver le bon canal dans une liste pouvant contenir des dizaines d'entrées, et de cliquer sur s'abonner. Changer la priorité d'une mission nécessite d'ouvrir la mission, de cliquer sur modifier, de faire défiler jusqu'au champ de priorité, de changer la valeur et d'enregistrer. Chacune de ces opérations est une transaction d'interface en plusieurs étapes. Au cours d'une période opérationnelle de quatre heures, un opérateur actif peut effectuer soixante à quatre-vingts transactions de ce type. Le coût cumulé de navigation est substantiel — et il entre en concurrence directe avec le temps que l'opérateur devrait consacrer à lire et interpréter l'image plutôt qu'à la gérer.

Point clé : Le goulot d'étranglement n'est pas la compétence de l'opérateur ni la qualité du logiciel — c'est l'inadéquation structurelle entre un système de menus hiérarchique et le tempo opérationnel auquel les décisions tactiques doivent être traduites en mises à jour de la COP. Le langage naturel résout cette inadéquation en correspondant à la vitesse et à la forme de la production cognitive existante de l'opérateur.

Comment le langage naturel élimine la charge de navigation

Le modèle de commande de TAKpilot est bâti sur l'appel de fonctions par LLM. Chaque opération CloudTAK exposée par la bibliothèque d'outils de TAKpilot est définie comme un schéma JSON : un nom de fonction, une description en langage courant de ce que fait la fonction, et un ensemble de paramètres typés avec des contraintes de validation. Lorsqu'un opérateur envoie un message, le modèle le reçoit avec la bibliothèque d'outils complète et sélectionne la fonction appropriée — ou la séquence de fonctions — et renseigne les paramètres à partir de l'entrée en langage naturel.

Commandes représentatives en langage naturel et ce qu'elles exécutent :

  • « Placer un véhicule blindé hostile à la grille 37U DP 88800 44400, indicatif T-72-ALPHA » — résout « véhicule blindé hostile » vers la bonne chaîne de type CoT MIL-STD-2525, appelle place_marker avec la grille MGRS et l'indicatif.
  • « Lister toutes les missions actives dans le secteur BRAVO » — appelle list_missions avec un filtre de secteur, renvoie un tableau formaté des noms de missions, priorités, indicatifs assignés et horodatages de dernière modification.
  • « Abonne-moi au canal DELTA et désabonne-moi du canal ECHO » — enchaîne les appels subscribe_channel et unsubscribe_channel, exécutant les deux et rapportant les résultats dans une seule carte de réponse.
  • « Créer une mission logistique pour le 3e Peloton, priorité URGENTE, à la grille 37U DP 55555 44444, assigner à LOG-1 » — appelle create_mission avec catégorie, priorité, emplacement et destinataire dans un seul appel structuré.
  • « Quelle est la dernière position signalée de EAGLE-1 ? » — appelle query_track pour EAGLE-1 et renvoie la grille, le cap, la vitesse et l'horodatage.

Le modèle gère l'ambiguïté du langage naturel dans les descriptions d'unités — « infanterie hostile », « camion logistique ami », « BTR ennemi » — et les associe aux bonnes chaînes de type CoT issues de la taxonomie de symboles MIL-STD-2525C/APP-6 sans exiger que l'opérateur connaisse le code de type. Si la phrase est véritablement ambiguë (plusieurs types CoT plausibles), TAKpilot pose une seule question de clarification plutôt que de deviner.

Confirmation de symbole MIL-STD-2525 / APP-6

L'un des moments les plus risqués de la gestion de carte en langage naturel est le placement d'un contact avec une affiliation ou un type d'unité incorrect. Placer un symbole d'unité hostile sur une grille où opère une unité amie — même temporairement — peut provoquer une erreur de conduite de tir. TAKpilot traite cela par une étape de confirmation de symbole distincte de la porte Approuver/Refuser utilisée pour les opérations destructives.

Lorsque le modèle résout une description d'unité en langage naturel vers une chaîne de type CoT, TAKpilot affiche en ligne dans le chat le SVG du symbole NATO correspondant — l'icône réelle que le marqueur affichera sur la carte — à côté du nom de type résolu en langage courant : « Je vais placer une Infanterie mécanisée terrestre hostile [icône de symbole] à 37U DP 12345 67890. Confirmer ? » L'opérateur voit le symbole exact avant que quoi que ce soit ne soit écrit sur la carte. Les affiliations mal lues — « ami » mal entendu comme « ennemi » dans une commande dictée — sont interceptées à cette étape plutôt que découvertes lorsque le mauvais symbole apparaît sur une COP en direct.

Cette confirmation est légère : un seul appui de bouton ou le mot « oui » dans le message suivant. Elle ajoute moins de deux secondes au flux de placement et élimine la classe d'erreurs où l'ambiguïté du langage naturel produit une mise à jour de carte correctement exécutée mais sémantiquement erronée.

Vision et intelligence des fichiers

Un volume significatif d'informations tactiques parvient aux opérateurs sous forme d'images : photographies de croquis dessinés à la main, rapports de situation numérisés, superpositions PDF distribuées par e-mail ou applications de messagerie. Ressaisir manuellement ces informations dans CloudTAK est une tâche de transcription chronophage avec un taux d'erreur élevé pour les références de grille et les symboles d'unités. La chaîne de vision de TAKpilot automatise ce transfert.

Les opérateurs joignent un fichier PNG, JPG ou PDF au chat et envoient une commande telle que « traiter ce SITREP » ou « extraire tous les contacts de ce croquis ». TAKpilot transmet le fichier à un modèle capable de vision — Claude Sonnet ou Opus selon la configuration de session — avec une invite d'extraction structurée. Le modèle identifie chaque entité pertinente pour la carte dans l'image : références de grille MGRS, indicatifs, symboles de type d'unité (lus selon les conventions de croquis MIL-STD-2525 ou APP-6), lignes de relèvement, lignes de phase, annotations en texte libre et limites de zones d'interdiction de tir. La sortie est un tableau JSON structuré.

TAKpilot présente les entités extraites dans une carte de confirmation avant toute écriture sur la carte : « J'ai trouvé 6 entités dans votre SITREP. Entité 1 : peloton mécanisé hostile à 37U DP 12345 67890 (confiance 0,94) [symbole]. Entité 2 : poste d'observation ami à 37U DP 11111 22222 (confiance 0,88) [symbole]… » L'opérateur examine, corrige toute grille mal lue, désélectionne toute entité qu'il ne souhaite pas placer et confirme. TAKpilot exécute ensuite les placements en parallèle. Un SITREP de six entités qui nécessiterait quatre à six minutes de saisie manuelle de données ATAK est sur la carte en moins de trente secondes après confirmation.

Point clé : Aucune chaîne OCR n'est requise — le modèle de vision lit directement l'image, y compris les symboles dessinés à la main et les styles d'annotation non standard qui feraient échouer une approche d'extraction traditionnelle OCR-plus-regex. Le modèle de vision intégré gère PNG, JPG et PDF sans infrastructure de prétraitement supplémentaire.

Des seuils de confiance sont appliqués : les entités dont la confiance est inférieure à 0,70 sont explicitement signalées et l'opérateur doit confirmer manuellement leurs grilles avant le placement. TAKpilot ne place pas silencieusement les entités à faible confiance — la validation est visible par l'opérateur, et non cachée dans une chaîne automatisée.

Cartes d'outils en streaming : un journal d'audit en temps réel

Chaque action que TAKpilot effectue est visible par l'opérateur en temps réel grâce aux cartes d'outils en streaming — des panneaux repliables qui apparaissent dans le chat à mesure que chaque appel de fonction est initié et terminé. Une carte d'outil affiche le nom de la fonction, les paramètres d'entrée en JSON structuré, le temps d'exécution en millisecondes et le statut de réponse HTTP de CloudTAK. Pour les opérations multi-étapes, chaque étape génère sa propre carte, apparaissant en séquence à mesure que la chaîne s'exécute.

Cette transparence sert deux objectifs. Premièrement, elle donne aux opérateurs une confirmation immédiate que ce qu'ils ont voulu est bien ce que TAKpilot a exécuté — ils peuvent lire le JSON des paramètres et vérifier la grille, l'indicatif et le type CoT avant de regarder la carte. Deuxièmement, elle fournit un journal d'audit horodaté complet qui persiste dans l'historique de la session de chat. La révision après action peut reconstituer exactement ce qui a été placé, quand, par quel opérateur, en utilisant quelle entrée en langage naturel, et avec quelle latence d'exécution. Le format d'entrée du journal — « utilisateur : sgt_kovalenko via TAKpilot — action : create_mission — entrée : 'créer une mission logistique pour le 3e Peloton URGENTE' » — préserve l'attribution de l'opérateur de bout en bout, distinguant les actions assistées par l'IA des actions directes dans l'interface CloudTAK.

Porte Approuver/Refuser sur les opérations destructives

TAKpilot catégorise toutes les opérations CloudTAK en deux classes : additives (placer un marqueur, créer une mission, s'abonner à un canal, créer un paquet de données) et destructives (supprimer une mission, retirer un suivi, vider un canal, supprimer un paquet de données). Les opérations additives s'exécutent immédiatement après la confirmation de symbole le cas échéant — l'opérateur peut les annuler avec une commande de suivi, qui passe elle-même par la porte destructive. Les opérations destructives sont interceptées avant exécution et nécessitent une autorisation explicite de l'opérateur.

La porte d'approbation affiche la portée complète de l'action destructive en attente : pour une commande « supprimer toutes les missions du secteur ALPHA », l'opérateur voit une liste de chaque mission qui sera supprimée, affichée avec son symbole NATO, son nom de mission, son indicatif assigné, sa priorité et son horodatage de dernière modification. La liste n'est pas un compte abstrait — ce sont les enregistrements réels, affichés avec le même langage visuel que l'opérateur utilise sur la carte. Les opérateurs reconnaissent leurs propres données de mission plus rapidement au format annoté de symboles que dans une liste en texte brut, ce qui réduit la charge cognitive de la décision de confirmation et abaisse le taux de fausse confirmation.

L'exécution nécessite soit de taper « confirmer » dans le chat, soit de cliquer sur le bouton de confirmation explicite dans la carte de porte. Fermer la carte ou envoyer un autre message annule l'opération en attente. La porte n'a pas de délai d'expiration — si l'opérateur ne confirme pas, l'opération ne s'exécute jamais, quelle que soit la façon dont l'IA a interprété la commande initiale.

Point clé : TAK Server ne dispose pas d'annulation native pour la plupart des opérations de données. Une suppression en masse exécutée sans confirmation n'a pas de chemin de récupération au-delà d'une restauration de sauvegarde de base de données. La porte Approuver/Refuser n'est pas une préférence d'expérience utilisateur — c'est une exigence stricte de sécurité opérationnelle pour un système où l'IA génère des appels API structurés à partir d'une entrée en langage naturel qui peut être ambiguë, mal entendue ou envoyée par erreur.

Déploiement opérationnel avec les forces de défense ukrainiennes

TAKpilot a été déployé opérationnellement avec des unités des forces de défense ukrainiennes utilisant CloudTAK pour la gestion de la COP. Le contexte de déploiement fournit un test concret des affirmations fondamentales du produit dans des conditions — pression du temps, stress de communication, opération multi-plateforme sur ATAK Android, WinTAK et CloudTAK — qui ne peuvent pas être pleinement reproduites dans un environnement d'entraînement.

Le principal bénéfice opérationnel signalé par les unités déployées est la réduction du temps de mise sur carte des informations SITREP reçues des observateurs avancés. Les SITREP verbaux par radio sont transcrits directement dans le chat TAKpilot ; les SITREP en imagerie sont traités via la chaîne de vision. Dans les deux cas, l'information atteint la COP plus rapidement que par saisie manuelle, et la porte de confirmation intercepte les erreurs de transcription avant qu'elles ne deviennent des erreurs de carte. Les unités signalent également l'utilisation de TAKpilot pour la gestion des abonnements aux canaux — en particulier lorsque les zones de responsabilité opérationnelle se déplacent et que les opérateurs doivent reconfigurer rapidement leur ensemble de canaux.

Le déploiement a également validé l'architecture indépendante du modèle. Les unités ukrainiennes opérant dans des zones à connectivité fiable utilisent Claude Sonnet via l'API d'Anthropic. Les unités en positions d'avant-garde sans connexion Internet fiable ont testé des modèles Llama 3.3 et Qwen 2.5 hébergés localement sur du matériel tactique. Le passage d'un backend de modèle à l'autre est un changement de configuration, et non un redéploiement du système — le service TAKpilot redémarre en pointant vers un endpoint de modèle différent et continue de fonctionner avec la même bibliothèque d'outils et le même comportement de confirmation.

Architecture open source et déploiement

TAKpilot est publié sous AGPL-3.0. Le code source complet — service Node.js, extension d'interface CloudTAK, définitions de la bibliothèque d'outils, configuration du modèle et documentation de déploiement — est fourni avec le paquet de distribution TAKpilot. La licence AGPL garantit que toute modification déployée en tant que service reste ouverte, ce qui s'aligne sur le rôle prévu du produit dans les écosystèmes de défense où l'interopérabilité et l'auditabilité sont des exigences institutionnelles.

La conception indépendante du modèle est mise en œuvre via une couche d'abstraction d'endpoint compatible OpenAI. Tout modèle qui implémente l'API de complétions de chat OpenAI avec appel de fonctions — les modèles d'Anthropic via leur endpoint de compatibilité, les modèles hébergés localement servis par Ollama ou vLLM, ou les modèles hébergés sur AWS Bedrock ou Google Vertex AI — peut être configuré comme backend de TAKpilot sans modification du code. Cela permet aux déploiements isolés sur réseaux classifiés, où les données ne peuvent pas quitter l'enclave, d'exécuter TAKpilot avec un modèle hébergé localement tout en maintenant la parité fonctionnelle avec les configurations connectées au cloud.

Pour les unités partenaires NATO et les intégrateurs de défense qui construisent par-dessus l'écosystème TAK, la base de code open source de TAKpilot fournit un point de départ pour des bibliothèques d'outils personnalisées — verbes API CloudTAK supplémentaires, intégration avec des flux de capteurs externes ou automatisation de flux de travail propres à l'unité. Le format de définition d'outil est un schéma JSON standard ; ajouter une nouvelle capacité nécessite de définir le schéma et d'implémenter le gestionnaire d'exécution. Le support commercial, le développement d'intégration sur mesure et la formation des opérateurs sont disponibles auprès de Corvus Intelligence à corvusintell.com/takpilot.

Comment déployer TAKpilot aux côtés de CloudTAK

Les étapes suivantes résument le processus de déploiement pour une installation CloudTAK standard. La documentation complète se trouve dans le README du dépôt et le répertoire docs/.

  1. Obtenir le paquet de distribution — Obtenez le paquet de distribution TAKpilot et décompressez-le sur l'hôte CloudTAK. Vérifiez Node.js 20 LTS. Exécutez npm install.
  2. Configurer le backend du modèle — copiez .env.example vers .env. Définissez votre clé API Anthropic et MODEL=claude-sonnet-4-6 pour un déploiement cloud, ou définissez OPENAI_BASE_URL sur un endpoint d'inférence local pour une opération isolée.
  3. Pointer vers CloudTAK — définissez CLOUDTAK_BASE_URL sur votre instance CloudTAK. Aucun compte de service requis — TAKpilot utilise le jeton de session de l'opérateur pour tous les appels API.
  4. Démarrer le servicenpm start. Vérifiez CloudTAK connection verified dans le journal de démarrage.
  5. Injecter le panneau de chat — suivez docs/cloudtak-integration.md pour ajouter la barre latérale TAKpilot à l'interface CloudTAK. L'icône de chat apparaît dans la barre d'outils après l'injection.
  6. Vérifier avec une commande de test — connectez-vous à CloudTAK, ouvrez le panneau TAKpilot et envoyez « lister toutes les missions actives ». Confirmez qu'une carte d'outil apparaît et que les résultats sont renvoyés correctement.
  7. Configurer la porte Approuver/Refuser et le modèle par nœud — examinez config/gates.json, confirmez que les opérations destructives sont soumises à une porte, et définissez le modèle approprié pour chaque type de nœud dans votre SOP d'unité.

Questions fréquemment posées

+Quelles opérations CloudTAK peuvent être effectuées via l'interface de chat de TAKpilot ?

TAKpilot expose les verbes opérationnels essentiels de CloudTAK en langage naturel : placer et mettre à jour des marqueurs de carte avec la symbologie MIL-STD-2525/APP-6, créer et clore des missions avec catégorie et priorité, lister les suivis actifs avec filtrage facultatif par secteur, s'abonner et se désabonner de canaux de données, créer et distribuer des paquets de données, et interroger le statut des unités et les dernières positions connues. Les opérations complexes en plusieurs étapes — par exemple, créer une mission CAS et notifier un canal simultanément — sont exécutées sous forme d'appels d'outils enchaînés, chacun visible comme une carte distincte dans le chat.

+Comment TAKpilot gère-t-il les commandes ambiguës ou sous-spécifiées ?

Lorsqu'une commande est ambiguë — par exemple, « placer un contact à Alpha » sans grille précise — TAKpilot pose une question de clarification avant de générer tout appel d'outil. Le modèle est invité à demander uniquement l'information manquante dont il a besoin pour compléter l'opération, et non à faire des suppositions sur les coordonnées, les types d'unités ou les indicatifs. Si le modèle génère malgré tout un appel d'outil avec des paramètres incomplets, la couche de validation le rejette et redemande plutôt que d'exécuter avec des valeurs par défaut qui pourraient placer des objets de manière incorrecte sur la carte.

+Que se passe-t-il si l'IA commet une erreur — peut-elle être corrigée ?

Les opérations additives — placer un marqueur, créer une mission — peuvent être immédiatement annulées par une commande de suivi : « supprimer le marqueur que je viens de placer » ou « supprimer la mission que nous venons de créer ». TAKpilot traduit ces commandes d'annulation en appels d'outils de suppression correspondants, qui passent par la confirmation Approuver/Refuser standard des opérations destructives. Les opérations destructives sont toujours soumises à une porte avant exécution, de sorte que les erreurs de cette classe sont interceptées avant qu'elles ne causent une perte de données. La carte d'outil en streaming de chaque action montre exactement ce qui a été exécuté, fournissant un journal d'audit lisible par l'opérateur pour la révision après action.

+Les données de l'opérateur sont-elles privées — TAKpilot envoie-t-il les données de carte à des fournisseurs d'IA externes ?

TAKpilot n'envoie au modèle d'IA que le message en langage naturel de l'opérateur et le résultat structuré de l'appel d'outil — il ne transmet pas les données brutes de carte, les listes de suivis ou les enregistrements de mission à des fournisseurs externes. Le modèle reçoit l'historique de la conversation et les schémas des outils disponibles ; les données réelles de COP sont récupérées par la couche d'exécution de TAKpilot après que le modèle a sélectionné un outil, et seul le résultat d'exécution est réinjecté dans la conversation. Les fichiers téléchargés sont traités une seule fois, leurs données structurées extraites sont ajoutées au contexte, et le fichier brut est supprimé immédiatement. Pour les déploiements isolés (air-gapped), les modèles hébergés localement garantissent qu'aucune donnée ne quitte le réseau.

+Comment TAKpilot est-il déployé aux côtés d'une installation CloudTAK existante ?

TAKpilot s'exécute comme un service Node.js sur le même hôte ou segment de réseau local que CloudTAK. Il se connecte à l'API REST existante de CloudTAK en utilisant les identifiants de session de l'opérateur — aucun nouveau port TAK Server, aucun changement de fédération, aucune modification de schéma de base de données. Le déploiement implique de cloner le dépôt AGPL-3.0, de configurer la clé API du modèle (ou l'endpoint du modèle local) et de pointer TAKpilot vers l'URL de base de CloudTAK. L'interface CloudTAK est étendue avec un panneau de chat qui communique avec le service TAKpilot via WebSocket.