机器翻译,未经母语人士审校。以英文版为准。

API与集成在GitHub上编辑来源:docs/AGENTS.md

从AI智能体使用Kshana

面向智能体(或指挥智能体的人):什么问题调用哪个工具,这些工具会做什么、不会做什么,以及每个回答须附带保留什么。各入口,以及在某个入口上不可用的单元:SURFACES.md。

连接#

npx -y kshana-mcp@0.37.0            # or: uvx kshana-mcp==0.37.0, brew, scoop, winget, cargo, docker

此处省略了一段提及第三方AI客户端的内容;它见于GitHub上的docs/AGENTS.md。

适用于每个回答的规则#

运行引擎;不要猜数字。报告工具返回的内容时,须附带其单位和证据等级(对照外部参考基准的VALIDATED,或MODELLED)、场景、随机种子和引擎版本,使运行可以重复。每个结果自身的注意事项须与它一并保留。

什么问题用哪个工具#

问题 工具(MCP) 斜杠命令
运行或解释某个PNT场景(轨道、GNSS、授时、融合、月球、光链路等) 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
这份接收机日志,或这艘船的NMEA,是否可信,又是从何时起不再可信? assess_receiver_log(任何日志格式)、assess_vessel_log(船舶NMEA,批量)、assess_vessel_stream(有界摘录) /kshana-assess-receiver
我需要带有压制干扰(jamming)、阻力关闭、时间欺骗或重放事件的合成NMEA,用于训练 generate_training_nmea /kshana-training-scenario
以监控或SIEM格式(Prometheus、CEF、LEEF、OTLP)显示船舶的信任度 trust_telemetry /kshana-trust-telemetry
对照已发布的Jammertest时间表为接收机日志评分(检测延迟、漏报、虚警、恢复时间),或将该计划转换为事件 jammertest_score, jammertest_import /kshana-jammertest
对引擎就船舶日志某一时间窗口所作的输出生成防篡改记录,或核验这样的记录 create_evidence_pack, verify_evidence_pack, attach_evidence_timestamp /kshana-evidence-pack
本接收机所传输的导航数据,其中哪些Galileo卫星的导航数据经过认证(OSNMA)? 无:MCP上没有。请使用kshana osnma verify(命令行)、kshana.osnma_verify(Python)或osnma_verify(WASM,Studio的OSNMA卡片) 不是斜杠命令
我需要某个场景的载体运动和事件时间,以便在实验室GNSS模拟器中回放 export_test_bench /kshana-bench-export
这些运行为公开框架中的哪些要求行提供证据支持(supports evidence for),差距是什么? compliance_report(依据结果文本)、compliance_mapping(各表,不运行) /kshana-compliance-report
按运行前已声明的判据,运行带评分的标准包(DHS RPCF测试剖面、IMO MSC.1/Circ.1575、ICAO Doc 9849附录F)? list_standards_packs、run_standards_pack(把报告交给compliance_report以得到各要求行)
对照LNIS V5 / LSIS-AFS V1.0检查LunaNet增强前向信号(码、SB1、帧格式),或检查一个符号流? lunanet_afs_check(mode为spec、symbols或generate);子帧2至4的LDPC和CRC-24Q未经核验
把一次实验室运行(场景、已声明的测试条件、接收机日志、评分)关联到一个带签名的包中? 在export_test_bench之后使用create_round_trip_pack(docs/spec/TEST-CONDITIONS.md)
对照kshana-bench真值文件为检测或守时(holdover)提交结果评分,或把结果文件渲染为排行榜页面? score_benchmark, render_leaderboard —
我需要让一个场景沿GeoJSON路线飞行(terrain-nav、terrain-slam、gravity-map、combined-altpnt) import_route /kshana-import-route
位于街道、港口、峡湾或集装箱码头的用户能看到哪些卫星,DOP和误差椭圆是多少? sky_geometry(一个请求,或一个skyline_preset);通过run_scenario使用场景的[skyline]部分(orbit和integrity需要user_site) /kshana-run
GNSS在哪些地方表现出降级,这条路线有多少处于其中? build_interference_map,然后route_exposure /kshana-interference-map
GNSS IQ记录(场景、捕获、跟踪、前端、测评活动) 先用iq_signals,再用iq_*工具 /kshana-iq

技能vessel-receiver-trust、training-nmea-scenario、trust-telemetry、compliance-mapping、test-bench-export、gnss-iq和interference-map-route-exposure为加载技能的智能体提供下列规则。

各工具不会做什么#

  • 读取或写入文件。内容为内联:输入是请求中的文本,上限为4 MiB,场景中指向文件的字段会被拒绝。只有iq_*工具会访问文件夹,而且只访问KSHANA_MCP_IQ_DIR所指定的那一个,所有路径都限制在其中。
  • 核验OSNMA。没有MCP工具:输入是很长的原始接收机数据流(I/NAV页或UBX捕获),适合用命令行和Python处理,而接受这类输入的工具会白白增加大输入的攻击面。请让用户使用kshana osnma verify <file> --public-key ... --json(或Python的osnma_verify)。无论其输出怎么说,都要原样附上咨询性声明:仅为认证状态,不是导航完好性服务,不是经型式认可的导航设备,也不声称具有任何抗欺骗性能;只有在用户通过其他途径获得Merkle根或公钥时,结果才有意义。
  • 运行进程。 把receiver-trust live作为持续运行的数据流(带门限和--listen)、遥测导出器(trust-telemetry:Prometheus、syslog、OTLP)以及向某个地址流式发送训练NMEA,都只能通过命令行完成。assess_vessel_stream用同一引擎为一段摘录评分,且不写入任何端口。摘录工具返回实时JSON-lines模式1.3(每个历元都带有advisory声明和卫星geometry,每项扣分都带有class);船舶运行的CSV以带有同一声明的#注释行开头,因此读取时请使用注释选项。除非另有指定,--udp和--listen tcp:绑定环回地址。
  • 写出信号。 export_test_bench以文本形式返回载体运动和带标签的事件区间;它返回的任何内容都不是、不模拟也不驱动射频或基带信号,事件也不是产生干扰的配方。请连同这些文件一并给出其notice;模拟器及其操作人员有责任只在获得授权的地方运行它们。
  • 说得比映射所说的更多。 compliance_report说明一组运行为哪些框架要求行提供证据支持(supports evidence for),并附每一行的差距。它从不说某个框架已被满足,也不说某个产品已被评级或认可;请原样附上其statement,并说“为……提供证据支持(supports evidence for)”,不要说得更强。它读取你传入的结果和场景文本,从不读取路径。
  • 获取数据。陆地多边形的下载只能通过命令行,并且需要--allow-network。如有需要,以文本形式传入陆地文件。只使用用户获准使用的数据。
  • 发射任何东西或合成射频。训练生成器写出NMEA文本;IQ层写出供软件接收机使用的采样文件。

随答案应保留的内容#

输出 保留
卫星几何与扣分类别(0.36) 将几何与评分并列报告,并按返回结果报告每项扣分的类别:geometry指天空(是关于天空的说明,不是认定没有发生攻击的结论),environment指信号环境,inconsistency指类似攻击的证据。当状态为unknown(日志中没有GSV或GSA)时,说“几何未知”;不要自行推断。阈值为MODELLED,并注明来源。
接收机信任度评分 咨询性(仅供参考):不是经型式认可的导航设备(IEC 61108、IEC 61162);操作人员仍须负责。MODELLED。运行前先声明船舶的限值,不要为迁就某个结果而调整阈值。高分不能证明定位是真实的;这些检查无法发现与所有其他传感器都一致的欺骗源。
证据包 这是一份技术记录,不是法律意见、事实认定或批准。请用通过其他途径获得的签名者公钥进行核验;没有公钥时,结论为intact-signer-not-pinned,它只证明相对于证据包自己指明的密钥而言是完整的:应说“完整,但未确立签名者”,绝不能说“已核验”。如果密钥重要,切勿在对话中返回、记录或索要签名种子:请使用命令行。
训练NMEA 仅限文本,用于训练和测试,绝不用于船舶的实时导航系统。返回随机种子(seed)和教员日志。
干扰地图、路线暴露 精度代码的读取方式,以及网格和路线几何,已在合成输入上对照独立库完成VALIDATED;该方法的阈值仍为MODELLED,而降级单元是否由干扰所致则未经检查:降级单元并不表明干扰是其原因。未观测到的单元不是路线畅通的证据。这是过往报告,不是预报。仅作汇总:不要试图还原标识符。ADS-B和AIS地图保持分开。
发射源区域(interference-map locate) MODELLED:无线电视距下的可行区域,不是定位结果。应以所述置信度报告该区域,并给出质心及其椭圆,绝不只报告质心;数据无法缩小范围时,应说unconstrained;应说明其以模型为条件(仅在合成数据上核对过;预先登记的Jammertest比较运行了一次,两个数据源均为 NOT ASSESSABLE,因此没有任何外部检验)。措辞保持中性:“估计发射源区域”;绝不点名或暗示某个来源背后是谁或是什么,无论是国家、某支力量还是某种意图。仅作汇总;不要试图恢复标识符。在公开观测站发布发射源区域的功能为关闭状态。
天空几何、天际线 在已声明的误差模型下的MODELLED几何,仅限视线:不含衍射、多路径或非视线接收。预设为REPRESENTATIVE的,不是实地勘测;请附上预设的来源。预设星座是具有代表性的天空,不是某一日期的天空。椭圆按已声明的UERE缩放:不是实测精度,也不是完好性界限。请保留advisory。
光链路可用性(optical-atmosphere,0.37) MODELLED,咨询性。云气候是已声明的输入,不是数据集,也没有与实测的可用性记录比较过:请说“在这些假设下”,不要说“该地点的可用性”。请把该地点的上限(availability_ceiling_pct:任何裕度都无法提高的部分)与其可用性并列保留,并说明哪些技术增益属于输入(Kshana不模拟自适应光学回路)。数值已对照独立程序检查,该检查核对的是公式的实现,而不是大气。
守时(holdover)测试(holdover-test,0.38) MODELLED,咨询性。请说“相对于模板测得”,绝不要说某个时钟或系统满足或已获批准符合某项建议书。两个时刻(GNSS移除、GNSS恢复)是操作人员的声明:Kshana并未移除或恢复任何东西,也无法核实,因此按所声明的引用。记录太短而无法对照的模板为INCOMPLETE,绝不算通过。伺服日志(linuxptp、chrony)反映的是伺服控制下的误差,不是相对于UTC的独立测量;请说明这些数据来自哪份记录。参见docs/TIMING-HIL.md。
任何场景结果 它所声明的figure_tiers或label,以及来源行。

边界#

使用合成数据或用户自己的数据。不要在输出中点名用户输入里没有出现的人员、船舶或组织。Kshana是分析与训练工具,不是飞行或导航产品。