| name | aviation-fmea-graphrag |
| description | 面向中文问答的航空故障诊断 FMEA GraphRAG 技能。用于根据用户提出的航空故障、失效模式、事故链、维修检查、管理原因、风险传播、整改建议、相似案例等问题,在技能内打包的航空 FMEA 图谱中检索相关节点、边、案例与证据,并用中文给出带图谱引用的专业回答。遇到需要输出 ASCII 因果链、FMEA 表格、案例对照时使用。 |
航空 FMEA GraphRAG
用于中文航空故障诊断问答。输入可能来自用户文字,也可能来自上游已经转成文本的图片、截图、报告片段或附件内容。
何时使用
出现以下情况时使用本技能:
- 用户询问某种航空故障现象可能的原因、后果或建议措施
- 用户询问某次事故/征候的因果链、失效模式或风险传播路径
- 用户要求基于已有图谱给出相似案例
- 用户要求用更结构化、更专业的方式解释故障链
- 用户希望看到图谱化引用,而不是泛泛而谈
不适用场景:
- 纯开放式闲聊
- 与航空故障、维修、飞控、结构、推进、管理风险无关的问题
- 明确要求只做外部联网检索、而不是用本地图谱时
技能内打包资源
本技能按闭环方式打包,默认不依赖 skill 目录外的其他文件。
- 图谱 JSON:
assets/graph.json
- 图谱可视化:
assets/graph.html
- 查询脚本:
scripts/query_graph.py
如果 skill 被整体复制到任意支持 skill 的 agent 环境,只要目录结构保持不变,就应当可以直接运行。
工作流程
1. 先把用户问题规范化成检索词
先用中文理解问题,再生成一组短检索词,优先采用:
- 中文术语
- 对应英文术语
- 系统域词
- 故障现象词
- 结果/风险词
检索词数量控制在 4-10 个,不要把整段自然语言直接丢给脚本。
示例:
- 用户问题:
重落地后结构损伤为什么会长期没有被发现?
- 建议检索词:
重落地 结构损伤 检查未触发 上报机制 SMS hard landing structural damage inspection reporting
2. 先查图谱,再决定是否补看抽取明细
优先运行:
uv run python scripts/query_graph.py --query "<检索词>"
如果查询结果里的证据不足,优先基于 matched_nodes、subgraph_nodes、subgraph_edges 和 case_ids 收敛回答,不要假设你还能访问 skill 外部的抽取工程目录。
3. 回答时按图谱链条组织,不要散文化堆砌
优先围绕以下主线组织答案:
现象 -> 失效模式 -> 直接原因 -> 深层原因 -> 后果 -> 控制/建议
如果用户问“相似案例”,则按:
当前问题
命中案例
共同失效模式
差异点
可迁移经验
4. 明确区分“图谱已有结论”和“你的推断”
必须显式区分:
不要把推断包装成既有调查结论。
输出要求
回答必须全部使用中文。
默认输出结构:
1. 结论
先用 2 到 4 句给出直接结论。
2. 图谱命中
列出:
- 命中的核心失效模式
- 命中的原因节点
- 命中的后果节点
- 命中的案例
3. ASCII 因果链
必须尽量给出 ASCII 艺术画,不要只给项目符号。优先使用框线字符。
推荐模板:
┌──────────────┐
│ 现象 / 输入问题 │
└──────┬───────┘
▼
┌──────────────┐
│ 失效模式 │
└──────┬───────┘
▼
┌──────────────┐
│ 直接原因 │
└──────┬───────┘
▼
┌──────────────┐
│ 深层原因 │
└──────┬───────┘
▼
┌──────────────┐
│ 后果 / 风险 │
└──────┬───────┘
▼
┌──────────────┐
│ 建议措施 │
└──────────────┘
如果存在分支,使用分叉结构:
┌────────────────┐
│ 组织/管理原因 │
└──────┬─────────┘
▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 现象 │ → │ 失效模式 │ → │ 安全后果 │
└──────────────┘ └──────┬───────┘ └──────────────┘
▲
┌────────┴────────┐
│ 技术/维修原因 │
└─────────────────┘
4. FMEA 表格
尽量给出精简 FMEA 表:
| 项目 | 内容 |
|---|
| 功能 | ... |
| 失效模式 | ... |
| 失效影响 | ... |
| 直接原因 | ... |
| 深层原因 | ... |
| 现有控制 | ... |
| 建议措施 | ... |
5. 图谱引用
至少引用:
1-3 个节点名
1-3 个案例 source_id
1-3 条证据或调查发现
引用时优先写成:
案例:ntsb_usair1549_2009
节点:Dual-engine thrust loss after bird ingestion
证据:What We Found - probable cause ...
质量约束
- 必须优先依据 skill 内打包图谱数据作答
- 不要编造不存在的节点、边或案例
- 如果图谱命中弱,要明确说“当前图谱证据不足”
- 如果用户问题非常宽泛,先收敛到一个或两个主链条
- 如果用户问的是中文,也必须坚持中文回答
- 不要输出“我无法访问图谱”这类与当前环境不符的话
推荐命令
基础查询:
uv run python scripts/query_graph.py --query "<检索词>"
如果要看更完整的命中结果:
uv run python scripts/query_graph.py --query "<检索词>" --top-nodes 12 --max-neighbors 24
何时读取附加参考
默认情况下,不需要额外读取其他文件。