Usar o Kshana a partir de um agente de IA
Para um agente (ou a pessoa que o dirige): que ferramenta chamar para que pergunta, o que as ferramentas farão e não farão, e o que manter com cada resposta. As superfícies e as células que não estão disponíveis numa dada superfície: SURFACES.md.
Ligar#
npx -y kshana-mcp@0.37.0 # or: uvx kshana-mcp==0.37.0, brew, scoop, winget, cargo, docker
Uma passagem que nomeia clientes de IA de terceiros é omitida aqui; está em docs/AGENTS.md no GitHub.
A regra para cada resposta#
Execute o motor; não adivinhe os números. Reporte o que uma ferramenta devolveu com a sua unidade e o seu nível de evidência (VALIDATED face a uma referência independente externa, ou MODELLED), o cenário, a semente e a versão do motor, para que a execução possa ser repetida. Mantenha com cada resultado as suas próprias ressalvas.
Que ferramenta para que pergunta#
| A pergunta | Ferramenta (MCP) | Comando de barra |
|---|---|---|
| Executar ou explicar um cenário PNT (órbitas, GNSS, temporização, fusão, lunar, ligações óticas, ...) | 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 |
| Este registo de recetor, ou o NMEA desta embarcação, era fiável, e quando deixou de o ser? | assess_receiver_log (qualquer formato de registo), assess_vessel_log (NMEA de embarcação, em lote), assess_vessel_stream (excerto limitado) |
/kshana-assess-receiver |
| Preciso de NMEA sintético com um evento de jamming, arrastamento de posição, spoofing de hora ou repetição para formação | generate_training_nmea |
/kshana-training-scenario |
| Mostrar a pontuação de confiança de uma embarcação em formatos de monitorização ou SIEM (Prometheus, CEF, LEEF, OTLP) | trust_telemetry |
/kshana-trust-telemetry |
| Pontuar um registo de recetor face ao calendário publicado do Jammertest (latência de deteção, alarmes em falta, falsos alarmes, tempo de recuperação), ou transformar esse plano em eventos | jammertest_score, jammertest_import |
/kshana-jammertest |
| Criar um registo com deteção de adulteração do que o motor disse sobre uma janela do registo de uma embarcação, ou verificar um | create_evidence_pack, verify_evidence_pack, attach_evidence_timestamp |
/kshana-evidence-pack |
| Os dados de navegação de que satélites Galileo é que este fluxo do recetor autentica (OSNMA)? | nenhuma: não está no MCP. Use kshana osnma verify (CLI), kshana.osnma_verify (Python) ou osnma_verify (WASM, o cartão OSNMA do Studio) |
não é um comando de barra |
| Preciso do movimento do veículo e dos instantes dos eventos de um cenário para os repetir através de um simulador GNSS de laboratório | export_test_bench |
/kshana-bench-export |
| Para que linhas de exigências de referenciais públicos estas execuções fornecem elementos de prova em apoio, e qual é a lacuna? | compliance_report (a partir do texto de resultados), compliance_mapping (as tabelas, sem execuções) |
/kshana-compliance-report |
| Executar um pacote de normas pontuado (perfis de ensaio DHS RPCF, IMO MSC.1/Circ.1575, ICAO Doc 9849 Apêndice F) face a limiares declarados antes da execução? | list_standards_packs, run_standards_pack (entregue o relatório a compliance_report para obter as linhas) |
|
| Verificar o LunaNet Augmented Forward Signal (códigos, SB1, formato de trama) face à LNIS V5 / LSIS-AFS V1.0, ou verificar um fluxo de símbolos? | lunanet_afs_check (mode spec, symbols ou generate); o LDPC e o CRC-24Q das subtramas 2 a 4 não são verificados |
|
| Ligar uma execução de laboratório (cenário, condições de ensaio declaradas, registo do recetor, pontuação) num único pacote assinado? | create_round_trip_pack após export_test_bench (docs/spec/TEST-CONDITIONS.md) |
|
| Pontuar uma submissão de deteção ou de holdover face a um ficheiro de referência do kshana-bench, ou gerar ficheiros de resultados como a página de classificação? | score_benchmark, render_leaderboard |
— |
| Preciso de um cenário que percorra uma rota GeoJSON (terrain-nav, terrain-slam, gravity-map, combined-altpnt) | import_route |
/kshana-import-route |
| Que satélites vê um utilizador numa rua, num porto, num fiorde ou num terminal de contentores, e quais são o DOP e a elipse de erro? | sky_geometry (um pedido, ou um skyline_preset); a secção [skyline] de um cenário através de run_scenario (orbit e integrity precisam de user_site) |
/kshana-run |
| Onde o GNSS tem aparecido degradado, e que parte desta rota está nessas zonas? | build_interference_map, depois route_exposure |
/kshana-interference-map |
| Gravações IQ GNSS (cena, aquisição, seguimento, front-end, campanhas) | iq_signals primeiro, depois as ferramentas iq_* |
/kshana-iq |
As competências vessel-receiver-trust, training-nmea-scenario, trust-telemetry, compliance-mapping, test-bench-export, gnss-iq e interference-map-route-exposure trazem as regras abaixo para agentes que carregam competências.
O que cada ferramenta não fará#
- Ler ou escrever ficheiros. O conteúdo é em linha: as entradas são texto no pedido, limitado a 4 MiB, e um campo de cenário que indique um ficheiro é recusado. Só as ferramentas
iq_*tocam numa pasta, e apenas na indicada porKSHANA_MCP_IQ_DIR, com todos os caminhos confinados a ela. - Verificar OSNMA. Não existe nenhuma ferramenta MCP: a entrada é um fluxo bruto longo de recetor (páginas I/NAV ou uma captura UBX), que se adequa à CLI e ao Python, e uma ferramenta que a recebesse acrescentaria uma superfície de entradas grandes sem benefício. Envie o utilizador para
kshana osnma verify <file> --public-key ... --json(ou para oosnma_verifydo Python). Seja qual for o resultado, leve o aviso consultivo textualmente: apenas estado de autenticação, não é um serviço de integridade de navegação, não é um equipamento de navegação homologado e não é uma alegação de desempenho anti-spoofing; um resultado só é significativo com uma raiz de Merkle ou uma chave pública que o utilizador tenha obtido por outra via. - Executar um processo.
receiver-trust livecomo fluxo em execução (com um gate e--listen), os exportadores de telemetria (trust-telemetry: Prometheus, syslog, OTLP) e a transmissão de NMEA de formação para um endereço existem apenas na linha de comandos.assess_vessel_streampontua um excerto com o mesmo motor e não escreve em nenhuma porta. As ferramentas de excertos devolvem o esquema JSON-lines em tempo real 1,3 (uma declaraçãoadvisorye ageometryde satélites em cada época, umaclassem cada dedução); o CSV de uma execução de embarcação começa com uma linha de comentário#que leva a mesma declaração, pelo que deve lê-lo com uma opção de comentário.--udpe--listen tcp:ligam ao endereço de loopback, salvo indicação em contrário. - Escrever um sinal.
export_test_benchdevolve o movimento do veículo e intervalos de eventos rotulados como texto; nada do que devolve é, modela ou comanda um sinal de radiofrequência ou de banda de base, e um evento não é uma receita para produzir interferência. Indique o seunoticecom os ficheiros; o simulador e o seu operador são responsáveis por os executar apenas onde for permitido. - Dizer mais do que o mapeamento diz.
compliance_reportindica para que linhas de referenciais um conjunto de execuções fornece elementos de prova em apoio, com a lacuna de cada linha. Nunca diz que um referencial é satisfeito nem que um produto é classificado ou aprovado; leve o seustatementtextualmente e diga "fornece elementos de prova em apoio de", nada mais forte. Lê texto de resultados e de cenários que lhe passe, nunca um caminho. - Obter dados. A transferência dos polígonos de terra existe apenas na linha de comandos e precisa de
--allow-network. Passe o ficheiro de terra, se desejado, como texto. Use apenas dados que o utilizador tenha licença para usar. - Transmitir seja o que for ou sintetizar RF. O gerador de formação escreve texto NMEA; a camada IQ escreve ficheiros de amostras para recetores de software.
O que manter com a resposta#
| Saída | Manter |
|---|---|
| Geometria de satélites e classes de dedução (0,36) | Reporte a geometria junto da pontuação e a classe de cada dedução tal como devolvidas: geometry significa o céu (uma declaração sobre o céu, e não uma conclusão de que não ocorreu nenhum ataque), environment o ambiente de sinal, inconsistency indícios semelhantes a um ataque. Diga "geometria desconhecida" quando o estado é unknown (sem GSV nem GSA no registo); não infira uma. Os limiares são MODELLED com proveniência declarada. |
| Pontuação de confiança do recetor | Consultivo: não é um equipamento de navegação homologado (IEC 61108, IEC 61162); o operador continua a ser responsável. MODELLED. Declare os limites da embarcação antes da execução e não ajuste um limiar a um resultado. Uma pontuação elevada não é prova de uma posição genuína; as verificações não conseguem ver um spoofer coerente com todos os outros sensores. |
| Pacote de evidências | Um registo técnico, que não é um parecer jurídico, uma constatação de facto nem uma aprovação. Verifique com a chave pública do signatário obtida por outra via; sem ela o veredicto é intact-signer-not-pinned, que prova apenas a integridade face à chave que o próprio pacote indica: diga "íntegro, signatário não estabelecido", nunca "verificado". Nunca devolva, registe nem peça uma semente de assinatura numa conversa se a chave importar: use a CLI. |
| NMEA de formação | Apenas texto, para formação e ensaio, nunca para os sistemas de navegação em funcionamento de uma embarcação. Devolva a semente e o registo do instrutor. |
| Mapa de interferência, exposição da rota | O modo como os códigos de exatidão são lidos e a geometria da grelha e da rota são VALIDATED face a bibliotecas independentes com entradas sintéticas; os limiares do método continuam MODELLED, e que uma célula degradada seja interferência não é verificado: uma célula degradada não identifica a interferência como causa. Uma célula não observada não é prova de uma rota limpa. Relatórios passados, não uma previsão. Apenas agregado: não tente recuperar identificadores. Os mapas ADS-B e AIS mantêm-se separados. |
Região do emissor (interference-map locate) |
MODELLED: uma região viável sob linha de vista de rádio, não uma posição determinada. Indique a região no nível de confiança declarado, com o centroide e a respetiva elipse, nunca o centroide isolado; diga unconstrained quando os dados não a restringem; diga que ela depende do modelo (verificada apenas com dados sintéticos; a comparação com o Jammertest, fixada antecipadamente, foi executada uma vez e foi NOT ASSESSABLE para as duas fontes, portanto nada foi testado externamente). Formulação neutra: "região estimada do emissor"; nunca nomeie nem insinue quem ou o que está por trás de uma fonte, um Estado, uma força ou uma intenção. Apenas agregados; não tente recuperar identificadores. A publicação de regiões de emissores no observatório público está desativada. |
| Geometria do céu, linha de horizonte | Geometria MODELLED sob um modelo de erro declarado, apenas com linha de vista: sem difração, multipercurso nem receção sem linha de vista. As predefinições são REPRESENTATIVE, não levantamentos; leve a proveniência da predefinição. As constelações predefinidas são um céu representativo, não o céu de uma data. A elipse escala um UERE declarado: não é uma exatidão medida nem um limite de integridade. Mantenha o advisory. |
Disponibilidade de ligações óticas (optical-atmosphere, 0,37) |
MODELLED, consultivo. Os climas de nuvens são entradas declaradas, não um conjunto de dados, e não foi comparado nenhum registo de disponibilidade medida: diga "sob estes pressupostos", nunca "a disponibilidade nesse local". Mantenha o teto do local (availability_ceiling_pct: o que nenhuma margem eleva) junto da sua disponibilidade, e diga quais os ganhos de técnica que são entradas (o Kshana não modela uma malha de ótica adaptativa). Os cálculos são verificados face a um programa independente, o que verifica a implementação das fórmulas e não a atmosfera. |
Teste de holdover (holdover-test, 0,38) |
MODELLED, consultivo. Diga "medido face à máscara", nunca que um relógio ou sistema satisfaz ou é aprovado face a uma Recomendação. Os dois instantes (GNSS removido, GNSS restaurado) são a declaração do operador: o Kshana não removeu nem restaurou nada e não os pode verificar, pelo que os cite como declarados. Uma máscara para a qual o registo é demasiado curto é INCOMPLETE, nunca um resultado positivo. Um registo de servo (linuxptp, chrony) é o erro sob controlo do servo, não uma medição independente face ao UTC; diga de que registo provêm os valores. Ver docs/TIMING-HIL.md. |
| Qualquer resultado de cenário | O figure_tiers ou label que declara, e a linha de proveniência. |
Limites#
Use dados sintéticos ou do próprio utilizador. Não nomeie pessoas, embarcações ou organizações nas saídas que não constassem da entrada do utilizador. O Kshana é uma ferramenta de análise e formação, não um produto de voo ou de navegação.