Kshana gebruiken vanuit een AI-agent
Voor een agent (of degene die er een aanstuurt): welk hulpmiddel u voor welke vraag aanroept, wat de hulpmiddelen wel en niet doen en wat u bij elk antwoord moet bewaren. Onderdelen en de cellen die op een bepaald onderdeel niet beschikbaar zijn: SURFACES.md.
Verbinden#
npx -y kshana-mcp@0.37.0 # or: uvx kshana-mcp==0.37.0, brew, scoop, winget, cargo, docker
Een passage die AI-clients van derden noemt, is hier weggelaten; ze staat in docs/AGENTS.md op GitHub.
De regel voor elk antwoord#
Laat de engine draaien; raad de getallen niet. Rapporteer wat een hulpmiddel teruggaf met zijn eenheid en zijn bewijsniveau (VALIDATED aan een externe onafhankelijke referentie, of MODELLED), het scenario, de seed en de engineversie, zodat de run kan worden herhaald. Bewaar de eigen kanttekeningen van elk resultaat erbij.
Welk hulpmiddel voor welke vraag#
| De vraag | Hulpmiddel (MCP) | Slash-opdracht |
|---|---|---|
| Een PNT-scenario uitvoeren of uitleggen (banen, GNSS, tijdsynchronisatie, fusie, maan, optische verbindingen, ...) | list_scenario_kinds, list_example_scenarios, get_example_scenario, validate_scenario, run_scenario, report_scenario, animate_scenario, export_sp3, export_omm, export_oem, export_interop, list_export_formats, export_table_csv |
/kshana-run |
| Was dit ontvangerlog, of de NMEA van dit vaartuig, betrouwbaar, en wanneer hield dat op? | assess_receiver_log (elk logformaat), assess_vessel_log (NMEA van een vaartuig, batch), assess_vessel_stream (begrensd fragment) |
/kshana-assess-receiver |
| Ik heb synthetische NMEA nodig met een jamming-, drag-off-, tijd-spoof- of replay-gebeurtenis voor training | generate_training_nmea |
/kshana-training-scenario |
| Toon de vertrouwensscore van een vaartuig in monitoring- of SIEM-formaten (Prometheus, CEF, LEEF, OTLP) | trust_telemetry |
/kshana-trust-telemetry |
| Score een ontvangerlog aan de hand van het gepubliceerde Jammertest-schema (detectielatentie, gemiste alarmen, valse alarmen, hersteltijd), of zet dat plan om in gebeurtenissen | jammertest_score, jammertest_import |
/kshana-jammertest |
| Een fraudebestendig record maken van wat de engine zei over een venster van het log van een vaartuig, of er een controleren | create_evidence_pack, verify_evidence_pack, attach_evidence_timestamp |
/kshana-evidence-pack |
| Voor welke Galileo-satellieten authenticeert deze ontvangerstroom de navigatiegegevens (OSNMA)? | geen: niet op MCP. Gebruik kshana osnma verify (CLI), kshana.osnma_verify (Python) of osnma_verify (WASM, de OSNMA-kaart van Studio) |
geen slash-opdracht |
| Ik heb de voertuigbeweging en gebeurtenistijden van een scenario nodig om af te spelen via een GNSS-simulator in het laboratorium | export_test_bench |
/kshana-bench-export |
| Voor welke eisenrijen van publieke raamwerken leveren deze runs bewijs, en wat is de lacune? | compliance_report (uit resultaattekst), compliance_mapping (de tabellen, geen runs) |
/kshana-compliance-report |
| Een gescoord standaardenpakket (testprofielen van DHS RPCF, IMO MSC.1/Circ.1575, ICAO Doc 9849 Appendix F) uitvoeren tegen drempels die vóór de run zijn vastgelegd? | list_standards_packs, run_standards_pack (geef het rapport aan compliance_report voor de rijen) |
|
| Het LunaNet Augmented Forward Signal (codes, SB1, frameformaat) controleren aan de hand van LNIS V5 / LSIS-AFS V1.0, of een symboolstroom controleren? | lunanet_afs_check (mode spec, symbols of generate); LDPC en CRC-24Q van subframes 2 tot en met 4 zijn niet geverifieerd |
|
| Een laboratoriumrun (scenario, vermelde testomstandigheden, ontvangerlog, score) koppelen in één ondertekend pakket? | create_round_trip_pack na export_test_bench (docs/spec/TEST-CONDITIONS.md) |
|
| Een detectie- of holdover-inzending scoren tegen een kshana-bench-referentiebestand, of resultaatbestanden tonen als de ranglijstpagina? | score_benchmark, render_leaderboard |
— |
| Ik heb een scenario nodig dat een GeoJSON-route vliegt (terrain-nav, terrain-slam, gravity-map, combined-altpnt) | import_route |
/kshana-import-route |
| Welke satellieten ziet een gebruiker in een straat, een haven, een fjord of een containerterminal, en wat zijn de DOP en de foutellips? | sky_geometry (een verzoek, of een skyline_preset); de sectie [skyline] van een scenario via run_scenario (orbit en integrity hebben user_site nodig) |
/kshana-run |
| Waar leek GNSS verslechterd, en hoeveel van deze route valt daarbinnen? | build_interference_map, daarna route_exposure |
/kshana-interference-map |
| GNSS-IQ-opnamen (scene, acquisitie, tracking, front-end, campagnes) | eerst iq_signals, daarna de hulpmiddelen iq_* |
/kshana-iq |
De skills vessel-receiver-trust, training-nmea-scenario, trust-telemetry, compliance-mapping, test-bench-export, gnss-iq en interference-map-route-exposure bevatten de onderstaande regels voor agenten die skills laden.
Wat elk hulpmiddel niet doet#
- Bestanden lezen of schrijven. De inhoud staat inline: invoer is tekst in het verzoek, begrensd op 4 MiB, en een scenarioveld dat een bestand noemt wordt geweigerd. Alleen de hulpmiddelen
iq_*raken een map, en alleen die welke doorKSHANA_MCP_IQ_DIRwordt genoemd, waarbij elk pad daartoe beperkt blijft. - OSNMA verifiëren. Er is geen MCP-hulpmiddel: de invoer is een lange ruwe ontvangerstroom (I/NAV-pagina's of een UBX-opname), wat past bij de CLI en Python, en een hulpmiddel dat die aanneemt zou een groot invoeroppervlak toevoegen zonder voordeel. Verwijs de gebruiker naar
kshana osnma verify <file> --public-key ... --json(of Pythonosnma_verify). Wat de uitvoer ook zegt, neem de adviserende verklaring letterlijk over: alleen authenticatiestatus, geen navigatie-integriteitsdienst, geen typegoedgekeurde navigatieapparatuur en geen bewering over anti-spoofingprestaties; een resultaat is alleen betekenisvol met een Merkle-root of publieke sleutel die de gebruiker langs een andere weg heeft verkregen. - Een proces starten.
receiver-trust liveals lopende stroom (met een gate en--listen), de telemetrie-exporters (trust-telemetry: Prometheus, syslog, OTLP) en het streamen van trainings-NMEA naar een adres zijn alleen via de opdrachtregel mogelijk.assess_vessel_streamscoort een fragment met dezelfde engine en schrijft naar geen enkele poort. De fragmenthulpmiddelen geven live JSON-lines-schema 1,3 terug (eenadvisory-verklaring en de satelliet-geometrybij elke epoch, eenclassbij elke afleiding); de CSV van een vaartuigrun begint met een commentaarregel met#die dezelfde verklaring bevat, dus lees hem met een commentaaroptie.--udpen--listen tcp:binden het loopback-adres tenzij anders is opgegeven. - Een signaal schrijven.
export_test_benchgeeft voertuigbeweging en benoemde gebeurtenisintervallen als tekst terug; niets wat het teruggeeft is, modelleert of stuurt een radiofrequent of basisbandsignaal, en een gebeurtenis is geen recept om interferentie te veroorzaken. Geef denoticeervan mee met de bestanden; de simulator en zijn exploitant zijn ervoor verantwoordelijk ze alleen te laten lopen waar dat is toegestaan. - Meer zeggen dan de koppeling zegt.
compliance_reportgeeft aan voor welke rijen van raamwerken een reeks runs bewijs levert, met de lacune van elke rij. Het zegt nooit dat een raamwerk is gehaald of dat een product is beoordeeld of goedgekeurd; neem destatementervan letterlijk over en zeg „levert bewijs voor”, niets sterkers. Het leest resultaat- en scenariotekst die u aanlevert, nooit een pad. - Gegevens ophalen. De download van landpolygonen is alleen via de opdrachtregel mogelijk en vereist
--allow-network. Geef het landbestand, indien gewenst, als tekst door. Gebruik alleen gegevens die de gebruiker mag gebruiken. - Iets uitzenden of RF synthetiseren. De trainingsgenerator schrijft NMEA-tekst; de IQ-laag schrijft samplebestanden voor software-ontvangers.
Wat u bij het antwoord moet bewaren#
| Uitvoer | Bewaren |
|---|---|
| Satellietgeometrie en afleidingsklassen (0,36) | Rapporteer de geometrie naast de score en de klasse van elke afleiding zoals teruggegeven: geometry betekent de hemel (een uitspraak over de hemel, geen bevinding dat er geen aanval was), environment de signaalomgeving, inconsistency aanvalsachtig bewijs. Zeg „geometrie onbekend” wanneer de status unknown is (geen GSV of GSA in het log); leid er geen af. Drempels zijn MODELLED met vermelde herkomst. |
| Vertrouwensscore van de ontvanger | Adviserend: geen typegoedgekeurde navigatieapparatuur (IEC 61108, IEC 61162); de exploitant blijft verantwoordelijk. MODELLED. Leg de grenzen van het vaartuig vóór de run vast en stem een drempel niet af op een resultaat. Een hoge score is geen bewijs van een echte positiebepaling; de controles kunnen een spoofer niet zien die consistent is met elke andere sensor. |
| Bewijspakket | Een technisch record, geen juridisch oordeel, geen vaststelling van feiten en geen goedkeuring. Verifieer met de publieke sleutel van de ondertekenaar die u langs een andere weg hebt verkregen; zonder die sleutel is het oordeel intact-signer-not-pinned, wat alleen integriteit bewijst ten opzichte van de sleutel die het pakket zelf noemt: zeg „intact, ondertekenaar niet vastgesteld”, nooit „geverifieerd”. Geef, log of vraag nooit een ondertekeningsseed in een gesprek als de sleutel ertoe doet: gebruik de CLI. |
| Trainings-NMEA | Alleen tekst, voor training en testen, nooit voor de live navigatiesystemen van een vaartuig. Geef de seed en het instructeurslog terug. |
| Interferentiekaart, routeblootstelling | Hoe de nauwkeurigheidscodes worden gelezen en de geometrie van raster en route zijn VALIDATED aan onafhankelijke bibliotheken op synthetische invoer; de drempels van de methode blijven MODELLED, en dat een verslechterde cel interferentie is, wordt niet gecontroleerd: een verslechterde cel wijst interferentie niet aan als oorzaak. Een cel die niet is waargenomen is geen bewijs voor een vrije route. Rapporten uit het verleden, geen voorspelling. Alleen geaggregeerd: probeer geen identificatoren te herstellen. ADS-B- en AIS-kaarten blijven gescheiden. |
Zendergebied (interference-map locate) |
MODELLED: een haalbaar gebied onder radiolijnzicht, geen positiebepaling. Geef het gebied weer met het vermelde betrouwbaarheidsniveau, met het zwaartepunt en zijn ellips, nooit het zwaartepunt alleen; zeg unconstrained wanneer de data het niet verder beperken; zeg dat het afhangt van het model (alleen op synthetische data gecontroleerd; de vooraf vastgelegde Jammertest-vergelijking is eenmaal uitgevoerd en was NOT ASSESSABLE voor beide bronnen, dus er is niets extern getoetst). Neutrale formulering: "geschat zendergebied"; noem of suggereer nooit wie of wat achter een bron, een staat, een macht of een bedoeling zit. Alleen geaggregeerd; probeer geen identificatoren te herleiden. Het publiceren van zendergebieden in het openbare observatorium staat uit. |
| Hemelgeometrie, skyline | MODELLED geometrie onder een vermeld foutmodel, alleen zichtlijn: geen diffractie, multipath of ontvangst zonder zichtlijn. Voorinstellingen zijn REPRESENTATIVE, geen opmetingen; neem de herkomst van de voorinstelling mee. Voorinstellingsconstellaties zijn een representatieve hemel, niet de hemel van een bepaalde datum. De ellips schaalt een vermelde UERE: geen gemeten nauwkeurigheid en geen integriteitsgrens. Bewaar de advisory. |
Beschikbaarheid van optische verbindingen (optical-atmosphere, 0,37) |
MODELLED, adviserend. De wolkenklimaten zijn vermelde invoeren, geen dataset, en er is geen gemeten beschikbaarheidsrecord vergeleken: zeg „onder deze aannames”, nooit „de beschikbaarheid op die locatie”. Bewaar het plafond van de locatie (availability_ceiling_pct: wat geen enkele marge verhoogt) naast haar beschikbaarheid, en zeg welke winsten van technieken invoeren zijn (Kshana modelleert geen adaptieve-optiekregelkring). De numerieke waarden zijn gecontroleerd tegen een onafhankelijk programma, wat de implementatie van de formules controleert en niet de atmosfeer. |
Holdover-test (holdover-test, 0,38) |
MODELLED, adviserend. Zeg „gemeten tegen het masker”, nooit dat een klok of systeem aan een Recommendation voldoet of ertegen is goedgekeurd. De twee tijdstippen (GNSS weggenomen, GNSS hersteld) zijn de verklaring van de exploitant: Kshana heeft niets weggenomen of hersteld en kan ze niet verifiëren, dus citeer ze zoals vermeld. Een masker waarvoor het record te kort is, is INCOMPLETE, nooit een geslaagd resultaat. Een servolog (linuxptp, chrony) is de fout onder servoregeling, geen onafhankelijke meting tegen UTC; zeg uit welk record de cijfers komen. Zie docs/TIMING-HIL.md. |
| Elk scenarioresultaat | De figure_tiers of label die het vermeldt, en de herkomstregel. |
Grenzen#
Gebruik synthetische gegevens of de eigen gegevens van de gebruiker. Noem in uitvoer geen personen, vaartuigen of organisaties die niet in de invoer van de gebruiker stonden. Kshana is een analyse- en trainingshulpmiddel, geen vlucht- of navigatieproduct.