Uso do Kshana a partir de um agente de IA
Para um agente (ou a pessoa que o dirige): qual ferramenta chamar para qual pergunta, o que as ferramentas farão e não farão, e o que manter com cada resposta. Superfícies e as células que não estão disponíveis em uma dada superfície: SURFACES.md.
Conectar#
npx -y kshana-mcp@0.37.0 # or: uvx kshana-mcp==0.37.0, brew, scoop, winget, cargo, docker
Um trecho que nomeia clientes de IA de terceiros foi omitido aqui; ele está em docs/AGENTS.md no GitHub.
A regra para toda resposta#
Execute o motor; não adivinhe os números. Informe o que uma ferramenta retornou com sua unidade e seu nível de evidência (VALIDATED contra 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 as ressalvas próprias de cada resultado junto dele.
Qual ferramenta para qual pergunta#
| A pergunta | Ferramenta (MCP) | Comando de barra |
|---|---|---|
| Executar ou explicar um cenário PNT (órbitas, GNSS, temporização, fusão, lunar, enlaces ópticos, ...) | 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 log de receptor, ou o NMEA desta embarcação, era confiável, e quando deixou de ser? | assess_receiver_log (qualquer formato de log), assess_vessel_log (NMEA de embarcação, em lote), assess_vessel_stream (trecho limitado) |
/kshana-assess-receiver |
| Preciso de NMEA sintético com um evento de jamming, arrasto de posição, falsificação de tempo ou replay para treinamento | generate_training_nmea |
/kshana-training-scenario |
| Mostrar a pontuação de confiança de uma embarcação em formatos de monitoramento ou SIEM (Prometheus, CEF, LEEF, OTLP) | trust_telemetry |
/kshana-trust-telemetry |
| Pontuar um log de receptor contra o cronograma publicado do Jammertest (latência de detecção, alarmes perdidos, alarmes falsos, tempo de recuperação), ou transformar esse plano em eventos | jammertest_score, jammertest_import |
/kshana-jammertest |
| Criar um registro com evidência de adulteração do que o motor informou sobre uma janela do log de uma embarcação, ou verificar um | create_evidence_pack, verify_evidence_pack, attach_evidence_timestamp |
/kshana-evidence-pack |
| Dados de navegação de quais satélites Galileo este fluxo de receptor 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 horários de eventos de um cenário para reproduzir em um simulador GNSS de laboratório | export_test_bench |
/kshana-bench-export |
| Para quais linhas de requisitos de referenciais públicos estas execuções fornecem evidências em apoio, e qual é a lacuna? | compliance_report (a partir do texto de resultado), compliance_mapping (as tabelas, sem execuções) |
/kshana-compliance-report |
| Executar um pacote de normas pontuado (perfis de teste do DHS RPCF, IMO MSC.1/Circ.1575, ICAO Doc 9849 Apêndice F) contra limiares declarados antes da execução? | list_standards_packs, run_standards_pack (passe o relatório a compliance_report para obter as linhas) |
|
| Verificar o LunaNet Augmented Forward Signal (códigos, SB1, formato de quadro) contra o 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 dos subquadros 2 a 4 não são verificados |
|
| Vincular uma execução de laboratório (cenário, condições de teste declaradas, log de receptor, pontuação) em um único pacote assinado? | create_round_trip_pack após export_test_bench (docs/spec/TEST-CONDITIONS.md) |
|
| Pontuar uma submissão de detecção ou de holdover contra um arquivo de verdade do kshana-bench, ou renderizar arquivos de resultado como a página do leaderboard? | 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 |
| Quais satélites um usuário em uma rua, um porto, um fiorde ou um terminal de contêineres enxerga, e quais são o DOP e a elipse de erro? | sky_geometry (uma requisição, ou um skyline_preset); a seção [skyline] de um cenário por meio de run_scenario (orbit e integrity precisam de user_site) |
/kshana-run |
| Onde o GNSS apareceu degradado, e quanto desta rota está nessa condição? | build_interference_map, depois route_exposure |
/kshana-interference-map |
| Gravações IQ GNSS (cena, aquisição, rastreamento, front-end, campanhas) | iq_signals primeiro, depois as ferramentas iq_* |
/kshana-iq |
As skills 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 skills.
O que cada ferramenta não fará#
- Ler ou gravar arquivos. O conteúdo é embutido: as entradas são texto na requisição, limitado a 4 MiB, e um campo de cenário que nomeia um arquivo é recusado. Apenas as ferramentas
iq_*tocam uma pasta, e somente a nomeada porKSHANA_MCP_IQ_DIR, com todo caminho confinado a ela. - Verificar o OSNMA. Não há ferramenta MCP: a entrada é um fluxo bruto longo de receptor (páginas I/NAV ou uma captura UBX), que convém à CLI e ao Python, e uma ferramenta que a recebesse acrescentaria uma grande superfície de entrada sem benefício. Encaminhe o usuário a
kshana osnma verify <file> --public-key ... --json(ou aoosnma_verifydo Python). Seja qual for a saída, mantenha o aviso consultivo literalmente: apenas estado de autenticação, não um serviço de integridade de navegação, não um equipamento de navegação homologado, e sem nenhuma afirmação de desempenho antispoofing; um resultado só tem significado com uma raiz de Merkle ou chave pública que o usuário obteve por outra via. - Executar um processo.
receiver-trust livecomo fluxo em execução (com um portão e--listen), os exportadores de telemetria (trust-telemetry: Prometheus, syslog, OTLP) e o envio em fluxo de NMEA de treinamento a um endereço existem apenas na linha de comando.assess_vessel_streampontua um trecho com o mesmo motor e não grava em nenhuma porta. As ferramentas de trecho retornam o esquema JSON-lines live 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 traz a mesma declaração, de modo que se deve lê-lo com uma opção de comentário.--udpe--listen tcp:usam o endereço de loopback, a menos que se determine outro. - Gravar um sinal.
export_test_benchretorna o movimento do veículo e intervalos de eventos rotulados como texto; nada do que retorna é, modela ou comanda um sinal de radiofrequência ou de banda base, e um evento não é uma receita para produzir interferência. Forneça seunoticejunto com os arquivos; o simulador e seu operador são responsáveis por executá-los apenas onde for permitido. - Dizer mais do que o mapeamento diz.
compliance_reportinforma para quais linhas de referenciais um conjunto de execuções fornece evidências em apoio, com a lacuna de cada linha. Ele nunca diz que um referencial é atendido nem que um produto foi classificado ou aprovado; mantenha seustatementliteralmente e diga "fornece evidências em apoio de", nada mais forte. Ele lê o texto de resultado e de cenário que você passa, nunca um caminho. - Buscar dados. O download de polígonos de terra existe apenas na linha de comando e precisa de
--allow-network. Passe o arquivo de terra, se desejado, como texto. Use apenas dados que o usuário tenha licença para usar. - Transmitir qualquer coisa ou sintetizar RF. O gerador de treinamento grava texto NMEA; a camada IQ grava arquivos de amostras para receptores por software.
O que manter junto com a resposta#
| Saída | Manter |
|---|---|
| Geometria de satélites e classes de dedução (0,36) | Informe a geometria ao lado da pontuação e a classe de cada dedução como retornadas: geometry significa o céu (uma declaração sobre o céu, e não uma constatação de que nenhum ataque ocorreu), environment o ambiente de sinal, inconsistency evidência semelhante a ataque. Diga "geometria desconhecida" quando o estado for unknown (sem GSV nem GSA no log); não a infira. Os limiares são MODELLED com procedência declarada. |
| Pontuação de confiança do receptor | Consultivo: não é um equipamento de navegação homologado (IEC 61108, IEC 61162); o operador continua 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 alta não é prova de uma posição genuína; as verificações não conseguem ver um spoofer consistente com todos os outros sensores. |
| Pacote de evidências | Um registro técnico, e não um parecer jurídico, uma constatação de fato ou uma aprovação. Verifique com a chave pública do signatário obtida por outra via; sem ela o veredito é intact-signer-not-pinned, que prova apenas a integridade em relação à chave que o próprio pacote nomeia: diga "íntegro, signatário não estabelecido", nunca "verificado". Nunca retorne, registre nem peça uma semente de assinatura em uma conversa se a chave importar: use a CLI. |
| NMEA de treinamento | Somente texto, para treinamento e teste, nunca para os sistemas de navegação em operação de uma embarcação. Retorne a semente e o log do instrutor. |
| Mapa de interferência, exposição de rota | O modo como os códigos de exatidão são lidos e a geometria da grade e da rota são VALIDATED contra bibliotecas independentes em entradas sintéticas; os limiares do método permanecem MODELLED, e que uma célula degradada seja interferência não é verificado: uma célula degradada não identifica interferência como a causa. Uma célula não observada não é evidência de uma rota livre. Relatórios passados, não uma previsão. Apenas agregado: não tente recuperar identificadores. Os mapas ADS-B e AIS permanecem separados. |
Região do emissor (interference-map locate) |
MODELLED: uma região viável sob linha de visada de rádio, não uma posição determinada. Informe a região no nível de confiança declarado, com o centroide e sua 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). Redaçã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, horizonte | Geometria MODELLED sob um modelo de erro declarado, apenas linha de visada: sem difração, multipercurso nem recepção sem linha de visada. As predefinições são REPRESENTATIVE, e não levantamentos; mantenha a procedê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 enlace óptico (optical-atmosphere, 0,37) |
MODELLED, consultivo. Os climas de nuvens são entradas declaradas, não um conjunto de dados, e nenhum registro de disponibilidade medida foi comparado: diga "sob estas premissas", nunca "a disponibilidade naquele local". Mantenha o teto do local (availability_ceiling_pct: o que nenhuma margem eleva) ao lado de sua disponibilidade, e diga quais ganhos de técnica são entradas (o Kshana não modela uma malha de óptica adaptativa). A numérica é conferida contra um programa independente, o que confere a implementação das fórmulas e não a atmosfera. |
Teste de holdover (holdover-test, 0,38) |
MODELLED, consultivo. Diga "medido contra a máscara", nunca que um relógio ou sistema atende a uma Recomendação ou é aprovado em relação a ela. Os dois horários (GNSS removido, GNSS restaurado) são a declaração do operador: o Kshana não removeu nem restaurou nada e não pode verificá-los, portanto cite-os como declarados. Uma máscara para a qual o registro é curto demais é INCOMPLETE, nunca um sucesso. Um log de servo (linuxptp, chrony) é o erro sob controle de servo, e não uma medição independente contra o UTC; diga de qual registro vêm as figuras. Veja docs/TIMING-HIL.md. |
| Qualquer resultado de cenário | O figure_tiers ou o label que ele declara, e a linha de procedência. |
Limites#
Use dados sintéticos ou os próprios dados do usuário. Não nomeie pessoas, embarcações nem organizações em saídas que não estavam na entrada do usuário. O Kshana é uma ferramenta de análise e treinamento, e não um produto de voo ou de navegação.