Elke tactische omgeving is anders. Sommige eenheden opereren met permanente, breedbandige connectiviteit naar een geclassificeerde cloud-enclave; andere rukken op naar gebieden waar het enige netwerk de mesh-radio in de rugzak van de soldaat is. AI-copiloten die alleen werken wanneer de sterren op één lijn staan — volledige connectiviteit, commerciële cloudtoegang, geen classificatiebeperkingen — zijn geen nuttige hulpmiddelen voor militaire operaties. TAKpilot, de AI-chatcopiloot van Corvus Intelligence voor CloudTAK, is gebouwd rond een modelonafhankelijke architectuur die commandanten en systeemintegrators een echte keuze geeft: draai Claude Opus 4.7 tegen de Anthropic API voor topanalyseprestaties, of implementeer Llama 3.3 70B op een ruggedized GPU-server zonder enige internetafhankelijkheid. Dit artikel behandelt hoe die architectuur werkt, hoe u het juiste model voor een bepaalde missiecontext selecteert en hoe u TAKpilot stap voor stap configureert voor air-gapped edge-implementaties.

Waarom modelonafhankelijkheid belangrijk is voor defensie-implementaties

Commerciële AI-producten hardcoderen doorgaans één enkele aanbieder. Die aanpak creëert een harde afhankelijkheid van internetconnectiviteit, beschikbaarheid van commerciële API's en de gegevensverwerkingsvoorwaarden van de aanbieder — beperkingen die vaak onverenigbaar zijn met geclassificeerde of operationeel gevoelige omgevingen. De architectuur van TAKpilot lost dit op door modeltoegang te abstraheren achter één enkele interface: de OpenAI-compatibele API-specificatie. Elk model dat dit protocol spreekt — of het nu wordt gehost door Anthropic, AWS, Google of een lokale inferentieserver die op hetzelfde rack draait als de CloudTAK-node — is een geldige TAKpilot-backend.

Dit is geen theoretische flexibiliteit. TAKpilot is operationeel geïmplementeerd bij de Oekraïense strijdkrachten, waar netwerkomstandigheden, connectiviteitsbeperkingen en classificatievereisten aanzienlijk variëren binnen de strijdmacht. Een hoofdkwartierelement met betrouwbare connectiviteit gebruikt Claude Sonnet 4.6 via de Anthropic API. Een naar voren geplaatste eenheid met alleen tactische radioconnectiviteit draait Llama 3.3 8B op een lokale inferentienode. Beide eenheden gebruiken dezelfde TAKpilot-interface; alleen de backend verschilt.

Belangrijk inzicht: TAKpilot hardcodeert geen enkele AI-aanbieder. Modelselectie is een runtime-configuratiebeslissing die door de implementeerder wordt genomen — geen productbeperking. Eén enkele TAKpilot-installatie kan worden verplaatst van een cloudbackend naar een air-gapped lokaal model door twee omgevingsvariabelen te wijzigen en het proces opnieuw te starten.

Modelselectiegids: capaciteit afstemmen op missiecontext

TAKpilot ondersteunt drie niveaus van Claude-modellen via de Anthropic API, plus het volledige scala aan open modellen via de OpenAI-compatibele interface. De keuze daartussen omvat afwegingen tussen redeneerdiepte, latentie, operationele kosten en connectiviteitsvereisten.

Claude Opus 4.7: complexe meerstaps-analyse

Opus 4.7 is het Claude-model met de hoogste capaciteit en de juiste keuze voor taken die aanhoudend meerstaps-redeneren vereisen: het synthetiseren van ISR-rapporten uit meerdere bronnen, het genereren van gedetailleerde missieorders uit fragmentarische instructies, of het analyseren van dubbelzinnige sensorgegevens waarbij valse positieven ernstige operationele gevolgen hebben. De afweging is latentie — Opus 4.7 produceert tokens langzamer dan Sonnet of Haiku, en de kosten per token zijn hoger. Voor analysewerk op hoofdkwartierniveau (S2 en S3) waarbij de responstijd in minuten in plaats van seconden wordt gemeten, is Opus 4.7 de juiste keuze. Het vereist connectiviteit met de Anthropic API of met AWS Bedrock / Google Vertex met het Opus-model ingeschakeld.

Claude Sonnet 4.6: gebalanceerde prestaties voor dagelijks COP-beheer

Sonnet 4.6 is het standaard aanbevolen model voor actieve operaties waarbij operators conversationele COP-commando's geven — markeringen plaatsen, eenheidsposities opvragen, datapakketten bouwen, zich op kanalen abonneren. Het biedt sterk instructievolgvermogen en nauwkeurigheid in toolgebruik bij lagere latentie dan Opus, waardoor het responsief genoeg is voor interactief gebruik zonder de kostenoverhead van het draaien van Opus voor elke kaartmarkeringsplaatsing. Sonnet 4.6 is het model dat in de operationele implementatie van TAKpilot bij de Oekraïense strijdkrachten wordt gebruikt als de basisconfiguratie voor verbonden elementen.

Claude Haiku 4.5: snelheid-eerst voor hoogfrequente taken

Haiku 4.5 is geoptimaliseerd voor latentie en doorvoer. Het is de juiste keuze voor hoogfrequente, goed gestructureerde commando's — huidige tracks opvragen, missies opsommen, positiegegevens voor specifieke roepnamen ophalen — waarbij de taak routinematig genoeg is dat maximale redeneercapaciteit niet nodig is. Haiku reageert sneller dan Sonnet en tegen aanzienlijk lagere kosten per token, wat van belang is in omgevingen waar TAKpilot een hoog volume aan operatorquery's over meerdere gelijktijdige sessies verwerkt. Het is ook zinvol als fallbackmodel tijdens perioden van API-snelheidsdruk.

Open modellen voor air-gapped omgevingen

Wanneer cloudconnectiviteit niet beschikbaar is of classificatievereisten externe API-aanroepen verbieden, routeert TAKpilot de inferentie naar een lokaal gehost model via het OpenAI-compatibele endpoint. Drie modellen zijn gevalideerd voor de toolgebruikspatronen van TAKpilot:

  • Llama 3.3 70B — Meta's 70B instructie-afgestemde model biedt de sterkste nauwkeurigheid in toolgebruik onder de open modellen die met TAKpilot zijn gevalideerd. In 4-bits kwantisatie (Q4_K_M) past het op een dual-GPU-server of één enkele A100 en levert het 25–40 tokens per seconde — voldoende voor conversationele COP-interacties. Dit is de aanbevolen air-gapped standaard voor goed uitgeruste edge-implementaties.
  • Qwen 2.5 72B — Alibaba's Qwen 2.5 met 72B parameters presteert vergelijkbaar met Llama 3.3 70B op gestructureerde toolaanroepen en heeft sterkere meertalige prestaties, wat waardevol kan zijn voor coalitieoperaties of niet-Engelssprekende eenheden. De hardwarevereisten zijn vergelijkbaar.
  • Mistral Large — Mistral's instructie-afgestemde model is beschikbaar als lokale implementatieoptie en presteert goed op classificatie- en routeringstaken. Het is een redelijke keuze wanneer een kleinere footprint vereist is en de commandoworkload relatief gestructureerd is.
  • Llama 3.3 8B — Voor ernstig hardwarebeperkte omgevingen (één enkele consumenten-GPU, 8–12 GB VRAM) biedt de 8B-variant in 4-bits kwantisatie acceptabele prestaties voor eenvoudige COP-query's. Complexe meerstaps-toolsequenties zullen verslechteren ten opzichte van het 70B-model, dus operators moeten rekening houden met explicietere instructieformulering.

Belangrijk inzicht: De betrouwbaarheid van toolgebruik neemt af met de modelgrootte. De 70B-klasse modellen (Llama 3.3 70B, Qwen 2.5 72B) handhaven acceptabele nauwkeurigheid in toolaanroepen voor de CloudTAK API-aanroepen van TAKpilot. Modellen onder de 13B parameters vertonen aanzienlijk hogere percentages misvormde toolaanroepen en moeten worden gevalideerd tegen uw specifieke COP-commandoworkload vóór operationeel gebruik.

Cloudbackends voor geclassificeerde omgevingen: AWS Bedrock en Google Vertex

Niet alle cloudimplementaties zijn equivalent vanuit een classificatie- en gegevensresidentieperspectief. De Anthropic API stuurt inferentieverkeer naar de infrastructuur van Anthropic. Voor omgevingen die vereisen dat gegevens binnen een specifieke cloud-enclave blijven — AWS GovCloud, Azure Government of een Google Workspace for Government-tenant — ondersteunt TAKpilot het routeren van Claude-modellen via AWS Bedrock en Google Vertex AI, die de modelhosting binnen de cloudgrens van de klant afhandelen.

AWS Bedrock stelt Claude Opus 4.7, Sonnet 4.6 en Haiku 4.5 beschikbaar via de standaard AWS SDK. Vanuit het perspectief van TAKpilot is de configuratiewijziging een verwisseling van de API-basis-URL en authenticatiemethode: vervang de Anthropic API-sleutel door AWS IAM-referenties (via omgevingsvariabelen of een instance-rol) en stel TAKPILOT_PROVIDER=bedrock in met de juiste AWS-regio. Dezelfde Claude-modellen zijn beschikbaar; inferentieverkeer blijft binnen de AWS-netwerkgrens en is onderworpen aan de AWS-gegevensverwerkingsovereenkomsten van de klant in plaats van de commerciële voorwaarden van Anthropic.

Google Vertex AI biedt dezelfde Claude-modeltoegang via Google's model garden. De configuratie volgt hetzelfde patroon: stel TAKPILOT_PROVIDER=vertex in met een GCP-project-ID en serviceaccountreferenties. Voor organisaties die al binnen Google's cloudaanbiedingen van defensiekwaliteit opereren, houdt dit al het inferentieverkeer binnen de bestaande beveiligingsperimeter.

Ondersteuning voor OpenAI-compatibele endpoints

Het air-gapped pad van TAKpilot gebruikt dezelfde OpenAI Chat Completions API-specificatie die de de facto standaard is geworden voor lokale modelinferentieservers. Dit betekent dat TAKpilot compatibel is met elke inferentieruntime die deze interface implementeert — Ollama, vLLM, llama.cpp server, LM Studio, Hugging Face TGI en elke aangepaste container die een model omhult met een OpenAI-compatibele REST-laag.

De configuratie is bewust minimaal. Twee omgevingsvariabelen zijn voldoende om TAKpilot om te leiden van de Anthropic API naar elk lokaal endpoint:

# Direct TAKpilot to a local Ollama inference server
TAKPILOT_API_BASE=http://192.168.1.50:11434/v1
TAKPILOT_MODEL=llama3.3:70b-instruct-q4_K_M
TAKPILOT_API_KEY=ollama

# Or to a vLLM server running Qwen 2.5
TAKPILOT_API_BASE=http://10.0.1.20:8000/v1
TAKPILOT_MODEL=Qwen/Qwen2.5-72B-Instruct
TAKPILOT_API_KEY=vllm-token

Wanneer TAKPILOT_API_BASE is ingesteld, probeert TAKpilot onder geen enkele omstandigheid de Anthropic API te bereiken. Er is geen fallback naar cloudmodellen als het lokale endpoint onbereikbaar is — TAKpilot retourneert een fout naar de operator in plaats van verkeer stilzwijgend naar een onbedoeld endpoint te routeren. Dit is opzettelijk veiligheidsgedrag voor geclassificeerde omgevingen.

Gegevenssandboxing per sessie

Ongeacht welke modelbackend wordt gebruikt, dwingt TAKpilot hetzelfde sessie-isolatiemodel af. Elke operatorverbinding creëert een in-memory sessiecontext die de conversatiegeschiedenis, openstaande toolaanroepen en alle COP-gegevens die tijdens de sessie uit CloudTAK zijn opgehaald, bevat. Deze context wordt nooit naar schijf geschreven, nooit gedeeld met andere sessies en nooit verzonden naar een ander endpoint dan de geconfigureerde modelbackend.

Wanneer de operator de verbinding verbreekt — hetzij door het CloudTAK-chatpaneel te sluiten, hetzij na een configureerbare sessietime-out — wordt de sessiecontext uit het geheugen verwijderd. Er is geen sessiepersistentie tussen verbindingen. Een operator die opnieuw verbinding maakt, begint met een nieuwe context zonder kennis van de commando's of opgehaalde gegevens van de vorige sessie.

Belangrijk inzicht: De sessiesandbox van TAKpilot betekent dat zelfs in cloud-verbonden implementaties het blootstellingsvenster wordt begrensd door de sessieduur. Een sessie die één enkele tactische query verwerkt en sluit, heeft alleen de gegevens van die query blootgesteld aan de modelbackend. Er is geen accumulerende gegevensopslag die met het gebruik meegroeit.

Voor air-gapped implementaties is de sandboxinggarantie absoluut: de sessiecontext overschrijdt nooit een netwerkgrens, omdat de modelbackend zich op hetzelfde netwerksegment bevindt. Operators die geclassificeerde COP-gegevens verwerken, moeten de air-gapped modus gebruiken tegen een lokaal model — de sandbox per sessie zorgt ervoor dat geclassificeerde gegevens alleen door de lokale inferentienode worden verwerkt en worden verwijderd wanneer de sessie eindigt.

Hoe TAKpilot te implementeren met Llama 3.3 op air-gapped tactische hardware

De volgende procedure veronderstelt een TAKpilot Node.js-instantie die al is geïmplementeerd en verbonden met een CloudTAK-server. Voor de initiële CloudTAK-implementatie, zie de CloudTAK-serverimplementatiegids. De inferentieserver moet zich op hetzelfde tactische LAN bevinden als zowel CloudTAK als TAKpilot.

Stap 1: Voorzie een GPU-inferentieserver op het tactische LAN

Installeer Ollama op een Linux-server (Ubuntu 22.04 LTS aanbevolen) met ten minste één NVIDIA GPU. Verifieer GPU-herkenning:

curl -fsSL https://ollama.com/install.sh | sh
nvidia-smi   # should list GPU(s)
ollama --version

Wijs de server een statisch IP toe op het tactische LAN (bijv. 192.168.1.50). Zorg ervoor dat poort 11434 bereikbaar is vanaf de host van TAKpilot. Standaard bindt Ollama alleen aan 127.0.0.1 — om LAN-verbindingen te accepteren, stelt u OLLAMA_HOST=0.0.0.0 in in de Ollama-serviceomgeving.

Stap 2: Haal het Llama 3.3-model op

# 70B model — requires ~40 GB VRAM (dual GPU or A100)
ollama pull llama3.3:70b-instruct-q4_K_M

# 8B model — fits on a single 8 GB GPU
ollama pull llama3.3:8b-instruct-q4_K_M

Het pull-commando downloadt de modelgewichten via internet. Voor volledig air-gapped omgevingen waar zelfs deze initiële download verboden is, draagt u het modelbestand handmatig over: download het GGUF-bestand op een verbonden machine, kopieer het via verwisselbare media naar de server en importeer het met ollama create. De documentatie van Ollama behandelt de offline-importprocedure.

Stap 3: Verifieer het OpenAI-compatibele endpoint

# From the TAKpilot host
curl http://192.168.1.50:11434/v1/models
# Expected: {"object":"list","data":[{"id":"llama3.3:70b-instruct-q4_K_M",...}]}

Als het verzoek een time-out krijgt, controleer dan of Ollama gebonden is aan 0.0.0.0 en dat geen hostfirewall poort 11434 blokkeert.

Stap 4: Configureer de omgevingsvariabelen van TAKpilot

# .env or systemd service environment
TAKPILOT_API_BASE=http://192.168.1.50:11434/v1
TAKPILOT_MODEL=llama3.3:70b-instruct-q4_K_M
TAKPILOT_API_KEY=ollama

# Unset or leave empty — TAKpilot will not fall back to Anthropic
# ANTHROPIC_API_KEY=

Stap 5: Start TAKpilot en bevestig de modelroutering

Start het TAKpilot Node.js-proces en inspecteer het opstartlogboek op de modelbackend-regel. Stuur vervolgens een testcommando via de CloudTAK-chatinterface en bevestig dat er een respons wordt geretourneerd. Monitor het GPU-gebruik van de inferentieserver met nvidia-smi dmon om te verifiëren dat de inferentie lokaal draait.

Stap 6: Test toolgebruik met een COP-commando

Stuur een gestructureerd COP-commando: "Lijst alle actieve eenheden in Alpha Company op." TAKpilot moet de CloudTAK-tool list_units aanroepen en een opgemaakte respons retourneren. Als het model een platte-tekstantwoord retourneert zonder tools aan te roepen, geeft dit aan dat het instructievolgvermogen van het model onvoldoende is voor de toolaanroepschema's van TAKpilot — schakel over naar de 70B-variant of naar Qwen 2.5 72B.

Stap 7: Valideer dat er geen verkeer de netwerkgrens verlaat

# On the TAKpilot host — capture any traffic not destined for the LAN
tcpdump -i eth0 -n 'not net 192.168.1.0/24 and not net 10.0.0.0/8'

Stuur enkele TAKpilot-commando's en bevestig dat er geen pakketten verschijnen in de tcpdump-uitvoer. Al het modelinferentieverkeer moet binnen het tactische LAN blijven. Als er pakketten naar externe IP's worden waargenomen, audit dan de TAKpilot-omgevingsconfiguratie — zorg ervoor dat TAKPILOT_API_BASE correct is ingesteld en dat ANTHROPIC_API_KEY afwezig is in de omgeving.

Prestatieafwegingen voor veelvoorkomende COP-taken

De praktische prestatieverschillen tussen cloud- en edge-modellen worden snel duidelijk over het scala aan taken dat TAKpilot afhandelt. De volgende karakteriseringen zijn gebaseerd op waargenomen gedrag in TAKpilot-implementaties, niet op gepubliceerde benchmarks.

Markeringsplaatsing en eenheidsquery's zijn de meest voorkomende COP-interacties. Zowel Claude Haiku 4.5 als Llama 3.3 8B verwerken deze nauwkeurig en met lage latentie. De taak is goed gestructureerd — de operator zegt waar een markering te plaatsen, TAKpilot roept de CloudTAK API aan — en vereist minimaal redeneren. Beide modellen zijn geschikt. Voor de 8B-variant verbeteren expliciete coördinaatformaten (decimale graden of MGRS) de nauwkeurigheid; het model kan moeite hebben met dubbelzinnige locatieverwijzingen.

Meerstaps-missiebeheer — een missie aanmaken, groepen toewijzen, een datapakket bijvoegen en het resultaat bevestigen — vereist dat het model context behoudt over meerdere toolaanroepen heen. Claude Sonnet 4.6 verwerkt dit betrouwbaar. Llama 3.3 70B verwerkt het met acceptabele nauwkeurigheid. Llama 3.3 8B heeft moeite met sequenties langer dan drie toolaanroepen en mag niet worden gebruikt voor complexe missiebeheerworkflows.

Document- en beeldintelligentie — het verwerken van PDF's, afbeeldingen en inlichtingenrapporten die naar de TAKpilot-sessie zijn geüpload — profiteert aanzienlijk van grotere modellen. Claude Opus 4.7 en Sonnet 4.6 bieden de meest coherente synthese van meerpaginadocumenten. Op visie gebaseerde taken (het analyseren van PNG/JPG-bijlagen) vereisen een model met visiecapaciteit; Llama 3.3 is alleen tekst. Voor visietaken in air-gapped omgevingen zou LLaVA of een Qwen-VL-variant nodig zijn.

Veelgestelde vragen

+Welke AI-modellen ondersteunt TAKpilot standaard?

TAKpilot wordt geleverd met ondersteuning voor de volledige Claude-modelfamilie — Opus 4.7, Sonnet 4.6 en Haiku 4.5 — via de Anthropic API of AWS Bedrock en Google Vertex AI. Het ondersteunt ook elk model dat bereikbaar is via een OpenAI-compatibel endpoint, wat Llama 3.3, Qwen 2.5, Mistral Large en elk ander open model dat door Ollama, vLLM, llama.cpp of een aangepaste inferentiecontainer wordt geserveerd, omvat. Het actieve model wordt geselecteerd via de omgevingsvariabelen TAKPILOT_MODEL en TAKPILOT_API_BASE — geen codewijzigingen vereist.

+Kan TAKpilot werken zonder internetverbinding?

Ja. Het air-gapped implementatiepad van TAKpilot routeert alle modelinferentie naar een lokale OpenAI-compatibele inferentieserver die draait op hetzelfde tactische LAN of op dezelfde fysieke host. Er verlaat geen verkeer het netwerk. Operators voorzien een model zoals Llama 3.3 70B of Qwen 2.5 72B op een ruggedized GPU-server, stellen het beschikbaar op een privé-endpoint (bijv. http://192.168.1.50:11434/v1) en stellen TAKPILOT_API_BASE in op dat adres. TAKpilot maakt er op identieke wijze verbinding mee als met een cloudaanbieder — de transportlaag is het enige verschil.

+Hoe zorgt TAKpilot ervoor dat operatorgegevens het netwerk niet verlaten?

TAKpilot dwingt een sandbox per sessie af voor alle operatorgegevens. Elke operatorsessie krijgt een geïsoleerde context die nooit naar schijf wordt geschreven of tussen sessies wordt gedeeld. Wanneer de operator de verbinding verbreekt, wordt de sessiecontext — inclusief alle berichten, toolaanroepresultaten en COP-referenties — uit het geheugen verwijderd. Voor cloud-gehoste modellen (Claude via Anthropic API) gelden de enterprise-gegevensbeleidsregels van Anthropic; voor air-gapped implementaties met lokale modellen verlaten gegevens nooit het tactische LAN omdat het inferentie-endpoint lokaal is. Operators die geclassificeerde workloads uitvoeren, moeten TAKpilot altijd in air-gapped modus implementeren tegen een lokaal gehost model.

+Wat zijn de hardwarevereisten voor het draaien van Llama 3.3 70B op een tactische edge-server?

Llama 3.3 70B in 4-bits kwantisatie (GGUF Q4_K_M) vereist ongeveer 40 GB VRAM. Eén enkele NVIDIA RTX 4090 (24 GB) is onvoldoende bij volledige precisie; een dual-GPU-opstelling of een server-grade A100/H100 wordt aanbevolen voor volledige 70B-parameterinferentie. Voor meer beperkte tactische hardware bieden Llama 3.3 8B (Q4_K_M, ~5 GB VRAM) of Qwen 2.5 7B acceptabele prestaties op één enkele consumenten-GPU. De inferentiesnelheid op 70B op een A100 is ongeveer 25–40 tokens per seconde, wat voldoende is voor conversationele COP-interacties met acceptabele latentie.

+Kan TAKpilot tijdens een operatie van model wisselen zonder de server opnieuw te starten?

Modelselectie in de huidige TAKpilot-release wordt bij het opstarten ingesteld via omgevingsvariabelen en geldt voor alle sessies. Hot-switching van modellen zonder serverherstart wordt niet ondersteund in de basisconfiguratie. Omdat TAKpilot echter open source is onder AGPL-3.0, kunnen implementeerders die per sessie modelselectie nodig hebben de configuratie-API uitbreiden. Een veelgebruikt patroon voor multi-classificatieomgevingen is het draaien van twee TAKpilot-instanties op afzonderlijke poorten — één verbonden met een cloud-Claude-endpoint voor ongeclassificeerd werk, één verbonden met een lokaal Llama-endpoint voor geclassificeerde operaties — en operators via een reverse proxy naar de juiste instantie routeren.