这几年“AI+一切”的口号听得人耳朵起茧,但我可以肯定讲,AI对大部分行业的改造都还停留在“降本增效”的层面——真正把这个技术当成一个“重新定义工作方式”的杠杆来用的领域,其实少之又少。功能安全行业是个例外,这个行业太特殊了,它同时踩着“汽车、工业、芯片、软件、认证”这几条又硬又慢的赛道,整个工作流重度依赖文档、流程、专家经验和审计证据。我第一次认真思考这个命题的时候,脑子里冒出一个非常强烈的念头:功能安全是整个工业软件里,最值得被AI重做一遍、也最有可能被AI重做成功的细分方向。
这篇文章我不打算写“远期展望”那种废话,也不打算堆“AI将赋能功能安全”这种正确的空话。我准备以一个在功能安全领域摸爬滚打多年、同时也在折腾AI工具链的从业者视角,拆一拆:这个行业目前到底哪里最痛,AI到底能从哪里切入,使用AI之后有哪些坑是你绝对不能踩的。这篇文章是“上篇”,先把行业痛点和AI的切入逻辑讲透。
1. 功能安全行业为什么在AI面前有点“旧”
先说一个背景认知。功能安全不是什么高深莫测的黑魔法,它本质上是一套“用工程手段把风险降到可接受水平”的方法论。大家熟悉的ISO 26262(汽车功能安全)、IEC 61508(通用功能安全)、IEC 61511(过程工业功能安全),其实都是这套方法论的标准化表达。它的核心不是某一颗芯片、某一段代码,而是一整套“证据链”——你必须用需求、设计、验证、测试、评审记录去证明:我的东西在故障情况下不会造成不可接受的伤害。
这套方法论在设计之初是合理的,但在AI时代回看,它的落地方式已经显得非常“旧”。我梳理下来,核心痛点有三个,这几个痛点直接决定了“重做一遍”的切入点。
1.1 三个根深蒂固的痛点:翻译损耗、过程过载、工具割裂
我这几年做过的功能安全项目,一个比一个文档量夸张。当年做ISO 26262的ASIL-D项目,光安全需求相关的文档就有上千页,而真正写代码的时间可能只占项目周期的三分之一。这意味着什么问题?大量工程师的时间不是花在“做安全分析”上,而是花在“把安全分析翻译成文档”上。需求工程师从客户那拿到自然语言描述,把它翻译成系统需求,再翻译成软硬件需求,再翻译成测试用例——每一层都是人工翻译,每一层都可能产生损耗。这种“翻译损耗”是功能安全项目里最大的隐性成本。
第二个痛点是过程过载。功能安全极度依赖过程证据,这意味着你要维护需求追溯矩阵、维护FMEA/FTA分析表格、维护评审记录、维护变更记录。每一项都是繁琐而重复的“体力活”。我见过一个项目组,三个工程师花了两周时间,就为了把FMEA表格里的失效模式统一格式、去重、对齐编号。这种工作在AI面前,真的是毫无技术含量的数据清洗活。
第三个痛点是工具割裂。做功能安全的工具链太分散了:需求管理用DOORS或者Jama,安全分析用medini analyze或者故障树工具,代码分析用Polyspace或者CodeSonar,测试管理用另一套平台。这些工具之间的数据流转基本上靠手工导出导入,几乎没有打通的可能。你在一套工具里做危害分析,在另一套工具里做安全需求,在第三套工具里验证覆盖率——三套数据互相不通,靠人的大脑去对齐。
这三个痛点放在其他行业早就被颠覆了,但功能安全行业因为“站在合规和认证的门槛上”,一直无人敢动。直到AI出现,尤其是大语言模型在语义理解、文档生成、信息抽取、代码分析上表现出远超预期的能力之后,我才真正觉得:技术条件成熟了。
1.2 “重做一遍”不是重写标准,而是重做工作方式
有一个很常见的误区需要先澄清。很多人一听到“功能安全行业值得重做一遍”,第一反应是“你要把ISO 26262推翻重写吗?”完全不是这个意思。标准体系本身是几十年来用血的教训换来的,它不会也不需要被推翻。真正值得推翻重做的是我们执行这套标准的方式。
我常说一个类比:会计行业出现了电子表格之后,会计准则没有变,但会计的工作方式完全变了。以前会计手工记账,现在用Excel或者ERP系统记账,效率提高了几十倍,但借贷平衡的规则依然是那个规则。AI之于功能安全,就是那个“电子表格”。安全标准还是那些安全标准,但承载标准的方式、生成证据链的方式、完成分析的方式,全都可以重做一遍。
这里要展开讲一下,为什么我说“技术条件成熟了”。功能安全行业过去二十年积累的数据量极其惊人——FMEA表、故障树、安全案例、需求追溯矩阵、测试报告、评审记录,这些数据大多是结构化或者半结构化的文本。大语言模型最擅长的恰恰就是这种文本的理解、生成、分类和摘要。往更底层说,功能安全的核心活动(危害识别、风险分析、需求追溯、失效诊断)在本质上都是“基于知识的推理”,而知识推理正是AI的强项。过去这一套完全依赖人的经验和精力,现在完全可以变成“AI辅助人判断”的协作模式。
2. AI在功能安全里的首个突破口:需求工程与“翻译损耗”
前面讲到,功能安全项目里最大的隐性成本是“翻译损耗”。自然语言需求到系统需求的翻译、系统需求到软硬件需求的翻译、需求到测试用例的翻译,每一层都费时费力且容易出错。而这个场景,恰恰是AI最擅长、最容易被验证的应用点。
2.1 需求工程:自然语言到安全需求的最强AI场景
我做了一个小范围的实验,拿一个真实的ASIL-B级别BMS(电池管理系统)项目的原始需求文档,去测试大模型对需求分类和提取的能力。输入的是一段非常混乱的自然语言描述,比如“当电池温度超过55度时,需要在一定时间内切断充电回路,同时上报故障信息,防止热失控”。让大模型输出结构化安全需求,包括需求编号、需求描述、ASIL等级、安全目标关联、验证方法建议。结果相当惊艳——大模型不仅提取出了关键信息,还在“ASIL等级”和“安全目标关联”上给出了合理推测。
但这里有一个关键点:大模型给出的ASIL等级推测是“合理推测”,不是“正确结论”。ASIL等级的确定需要结合危害分析(HARA)的结果,需要考虑严重度、暴露概率、可控性三个维度。大模型无法真正做危害分析,它只能根据文本中“热失控”“防止”这类字眼去推断这个需求的重要性。所以这个场景的落地方式不是“让AI做需求分析”,而是“让AI做需求工程助理”。
具体怎么落地?我目前比较认可的做法是这样的:第一步,用大模型对原始需求做分类和预结构化,自动生成需求条目的草稿——包括需求描述、类型、优先级、可追踪性建议。第二步,由需求工程师对AI生成的草稿进行复核和修订,补充ASIL等级和安全目标等信息。第三步,把AI生成的需求条目导入DOORS或Jama,与原始文本建立追溯关系。这套流程下来,需求工程阶段的时间大约能节省30%到40%,而且需求遗漏率明显降低。
2.2 文档自动化:安全案例与安全计划的AI辅助起草
功能安全行业有一类文档,写起来极其痛苦,但是又特别“模板化”——安全计划(Safety Plan)、安全案例(Safety Case)、安全论证(Safety Argument)。这些文档的框架结构非常固定,基本上每个项目都在重复同一个骨架,差别只是具体内容。这种文档,恰恰是生成式AI最擅长的对象。
我实测过一个安全计划生成实验。把项目的范围、使用标准、组织架构、开发流程这些基本信息喂给大模型,让它生成一份符合ISO 26262-2要求的安全计划草稿。生成结果的结构合理度非常高,章节覆盖、职责分配、活动流程、交付物清单都对得上。特别让我惊喜的是,大模型会主动补充一些“人容易遗忘”的内容,比如“安全文化建设”“独立性评审要求”“工具鉴定计划”。这些内容不是模板里现成的,而是它依据标准知识库额外生成的——这相当于一个经验丰富的安全工程师在帮你查漏补缺。
但是我必须强调一个红线:AI生成的安全计划只是一个草稿,绝对不能直接拿去向认证机构提交。安全计划里的职责分配、时间节点、组织边界,这些是项目的“宪法”,必须由项目管理者和安全经理逐条确认。我的做法是:让AI生成一个“一版草稿”,然后在评审会上把AI草稿当白板,逐条讨论、修改、确认。AI在这里的价值是帮你把空白的页面填满,让你有东西可以批判,而不是直接交付最终结果。
3. 从HARA到FMEA:AI正在让危险分析从“经验活”变成“知识活”
如果说需求工程是功能安全流程的起点,那么HARA(危害分析与风险评估)和FMEA(失效模式与影响分析)就是整个功能安全论证的“心脏”。这两个活动的共同点是:极其依赖专家的经验、极其耗时、极其容易遗漏。但它们同时也有一个非常有价值的特点——它们的分析逻辑是非常结构化、非常明确的。这为AI的介入提供了极佳的基础。
3.1 HARA的AI辅助:从空白页开始到场景建议
做过多个ISO 26262项目的人都知道,HARA的第一步“场景定义”是最痛苦的。你面对的是一个空白表格,需要列出车辆在运行过程中可能遇到的各种场景,包括不同的驾驶工况、不同的路况、不同的环境条件、不同的驾驶员行为。然后针对每个场景,分析可能发生的危害事件,评估严重度、暴露概率、可控性,最终推导出ASIL等级和安全目标。
这个过程的难点不在于“评价规则”,而在于“穷举场景”。新车型的安全工程师,往往因为经验不足,只能列出二三十个场景;资深工程师能列出上百个,但要花很长时间去头脑风暴。我测试过一种AI辅助的做法:把车辆的基础参数、目标市场、典型运行环境等信息输入大模型,让它基于功能安全标准的场景分类方法,生成一个初始场景列表。结果相当好用——大模型不仅生成了场景,还会区分“正常运行”“故障状态”“极端环境”“误操作”“恶意攻击”这几个维度,每个维度下面还有细分的子场景。这相当于给安全工程师提供了一个“初始头脑风暴清单”,大大降低了从空白页开始的恐惧感。
不过,HARA里最核心的S(Severity)、E(Exposure)、C(Controllability)评级,目前AI很难独立完成。原因在于这些评级需要结合真实的事故数据、行业基准、甚至目标市场的交通事故统计。这些信息大模型并不掌握,它的评级建议只能作为参考,最终定级必须依靠有资质的安全工程师团队。这点上用一句话总结就是:AI提供候选场景和参考评级,人做最终裁决。
3.2 FMEA/FTA:AI做失效模式的“反向头脑风暴”
FMEA是另一个典型的“重人工”活动。它的核心是先列出系统的每一个组件/功能,然后针对每个组件分析它的失效模式、失效原因、失效影响、检测手段和改进措施。一个中等复杂度的ECU,FMEA表格动辄几百上千行,每一行都需要工程师逐条填写。而且最气人的是,这些失效模式中有相当大一部分是通用的——比如“开路”“短路”“漂移”“卡死”“延迟”“丢失”——不同项目之间的FMEA内容重复度极高。
AI在这个场景里有两个明显的应用方向。第一个方向是“失效模式知识库 + 检索增强”。你可以把过往项目的FMEA数据整理成一个知识库,当工程需要对一个新的组件做FMEA时,AI依据组件名称和功能描述,自动检索知识库中相似组件的失效模式,并生成“候选失效模式列表”。这相当于把团队以前做过的一切安全分析都变成了可复用的资产。第二个方向更有趣,是用大模型做“反向头脑风暴”。传统的FMEA是从失效模式出发找原因,AI可以反过来:先给出一个组件,让大模型强行发散,提出“可能出现什么问题”“什么情况下会出问题”“如果某零件损坏会有什么后果”。这种发散性的头脑风暴,大模型的能力是远超人脑的——它不会被既有的经验束缚。
我做过一个实验,针对一个电控空气悬架系统的一个高度传感器,让大模型生成可能失效模式。它除了列出传统的开路、短路、信号漂移之外,居然还提出了一些我一开始觉得是“多余噪声”的模式,比如“传感器内部光学元件被灰尘污染导致信号间歇性异常”“线束在长期振动下连接器端子微动磨损导致偶发开路”。这些模式在我们的经验知识库里有记录,但大模型在没有检索到这些记录的情况下,仅凭推理就能提出来,这个能力着实让我吃了一惊。
当然,FMEA的最终责任永远在人。大模型生成的失效模式里面,肯定会有一些“看上去合理但实际上在这个系统里不可能发生”的候选,也有一些“明显重要却被遗漏”的候选。我的经验是,把AI生成的候选清单作为起点,让资深工程师们在这个清单上做“删除、保留、修正”的批注——这比让他们从零开始填写要快得多,同时也能通过交叉验证降低遗漏风险。
4. 代码安全分析、PLC场景与AI Agent的边界探索
前面讲的需求工程、HARA、FMEA,都还停留在“文档层面的AI辅助”。但功能安全行业还有一个更难啃的骨头——安全相关软件的开发与验证。在这个方向,AI可以做的事情其实更多,但同时要跨越的坑也更深。这一节我重点讲两个方向:AI辅助安全代码分析,以及AI Agent在功能安全工具链中的应用。
4.1 AI辅助安全代码分析:代码生成只是起点,验证才是重头
先说一个业内讨论度很高、但真正做到落地的项目极少的方向:AI生成安全关键代码。这里必须说一下PLC场景,因为“AI PLC代码生成”是我看到目前工业界讨论最多的话题之一。PLC在工业安全系统中应用极其广泛,而PLC的编程语言(比如结构化文本ST、梯形图LD)相对简单、结构固定,训练AI去生成这些代码的难度远低于生成通用软件代码。理论上,一个训练良好的模型,完全可以依据功能安全需求生成符合IEC 61131-3标准的ST代码。
现实中我也确实看到了不少做AI PLC代码生成的团队在尝试这个方向。他们的做法通常是:把安全需求定义(比如“当压力超过阈值时,在500ms内关闭阀门”)作为prompt输入,让大模型直接生成ST代码。生成的代码在静态语法层面往往没有大问题,甚至逻辑也基本正确。但是这里有一个要命的点:安全相关代码的验证不是“能跑就行”,而是“必须证明它满足安全完整性等级(SIL)的所有要求”。这意味着你不但要有正确的代码,还要有完整的验证证据:代码审查记录、单元测试用例和结果、覆盖率分析、MC/DC覆盖率、以及形式化验证(如果SIL等级要求)等。这些繁琐但必须的工作,目前没有任何一个AI能独立完成。
所以在PLC安全代码这个方向上,我认为最现实的路径不是“AI写代码替代工程师”,而是“AI生成代码 + 自动生成测试用例 + 自动执行测试与覆盖率分析”。也就是说,AI生成的不是“可交付的代码”,而是“一个初始版本 + 一份初始测试建议包”,工程师在此基础上做审查、修改、补测试,最终形成完整的提交包。这个流程跟我在需求工程部分的思路完全一致:AI负责把“初稿”做出来,人负责做“定稿”。
4.2 AI Agent作为功能安全助理:从工具到协作者
接下来聊聊这两个月特别火的“AI Agent”概念在功能安全的落地可能。目前市面上多数AI Agent还停留在“简单任务自动执行”的层面,比如帮你订机票、帮你排日程。但功能安全行业的工作流极其复杂,它的价值不在于单个任务的自动化,而在于跨工具、跨流程的协作。
大家设想一个场景:你有一个AI Agent,它被接入了DOORS(需求管理)、medini analyze(安全分析)、Jira(项目管理)三个系统。你只需要对它说:“请帮我检查一下SafetyGoal_SG1在最近一次需求变更后,相关的FMEA分析和测试用例是否都同步更新了。”这个Agent会自己去DOORS里检索SG1关联的需求,去medini analyze里找到关联的失效模式,去Jira里找到相关的变更单和测试任务,然后生成一份汇总报告告诉你哪里缺了、哪里不一致、哪里需要人工介入。这个能力如果在传统工具链下实现,要么需要大量的脚本集成开发,要么需要专人花几天时间手工核对。在AI Agent时代,这是自然语言到工具操作的最直接映射。
我在测试一些功能安全工具链时也注意到,主流的工具厂商已经开始在往这个方向发力。比如MathWorks在Simulink基础上推出的AI辅助特性、Ansys在medini analyze上支持的AI增强分析——这些工具的AI能力现在还都比较初级,但方向已经很明确:工具不再是“等待人操作的数据容器”,而是逐渐变成“能理解流程、主动提示风险、甚至能自动执行一部分验证工作的协作者”。
但这里我要严肃泼一盆冷水。AI Agent在功能安全工具链里的应用,必须在“AI can suggest, human decides”这个边界内运行。你可以让AI Agent自动生成报告,但你不能让它自动修改安全需求;你可以让AI Agent自动检查追溯完整性,但你不能让它自动批准一个变更请求。安全论证的逻辑链条是“人在回路”的,任何一个环节如果交给AI独立决策,整个安全论证的合法性就会受到挑战。这一点不仅是技术问题,更是合规问题。
4.3 静态分析与代码审查:AI带来真正的质变
除了PLC代码生成之外,我还想提一下AI在代码静态分析和安全审查方面的应用,这个方向其实是目前“已经接近可用”的领域。传统静态分析工具(比如Polyspace、CodeSonar、Cppcheck)靠的是预定义规则库去扫描代码,能发现“明显的”问题,但很难发现“隐含的”逻辑缺陷。AI给这个领域带来的质变在于,它能结合代码上下文进行深层次的语义理解。
我做过一个测试,给大模型一段包含安全关键逻辑的C语言代码,让它找潜在的安全缺陷。这段代码里有一个经典的“状态机处理中断的竞态条件”问题——传统静态分析工具经常会忽略这类问题,因为它在语法上没有任何问题,但在并发场景下会导致状态丢失。大模型只看了几十行代码,就给出了“这里可能存在竞态条件,两个中断处理函数同时修改了同一个状态变量”的判断,并且还附带了修改建议。这个能力在传统静态分析工具上,要么需要极高的配置成本,要么完全检测不出来。
当然,大模型在代码审查上有它特有的问题——它的“误报率”和“漏报率”都不可控。同一段代码,你换个模型版本或者换个prompt,结果可能就不一样。所以这个场景在功能安全行业里不能作为“独立的评审手段”,但它可以作为一个“发现候选问题”的前置过滤器。先由AI帮你扫出N个可疑点,你再逐个人工确认,最后把确认过的问题记录进代码评审报告——这样既利用了AI的“洞察力”,又守住了安全评审的“责任底线”。
5. 一线工程师必须警惕的三个“AI坑”
文章写到这,光讲AI的好处不讲坑,那就有点不负责任了。功能安全行业是一个“合规优先、责任至上”的行业,在这里引入AI工具,如果不把边界划清楚,很容易把好好一个项目玩崩。下面这三个坑,是我在实际测试和使用AI工具的过程中亲身踩过的,写出来给大家提个醒。
5.1 幻觉不等于分析结果
大模型的“幻觉”问题在功能安全领域会被无限放大。普通文本摘要里有一句废话,顶多让你觉得“AI差点意思”;但在FMEA表里,如果AI输出了一条“不存在的失效模式”,而工程师没有发现并把它留在了最终交付的安全分析文档里,那这条虚假信息就可能在整个安全论证中被视为“经过分析的事实”。一旦出事故后审计发现这条失效模式是AI编造的,整个安全案例的可信度都会崩塌。
应对方式无他,就是“两个必须”。第一,所有AI生成的内容必须在交付前经过“有资质的安全工程师逐条确认”。第二,在内部流程中明确标注哪些内容由AI生成、AI生成的版本号、prompt记录和复核记录。这不是讲究,而是功能安全审计的必然要求。AI生成的内容,你可以用,但你必须能证明你“审过”。
5.2 把AI输出的当成最终交付物
第二个坑,是心态层面的。很多工程师刚开始用AI的时候,会觉得“哇,这个安全计划居然生成的这么好,那我改改就能交了”。这个心态非常危险。我前面反复强调过,AI生成的是“草稿”,不是“交付物”。这个区分的本质在于:功能安全的交付物不仅有“内容”,还要有“过程证据”。你在评审会上讨论过什么、为什么修改某个ASIL等级、基于什么数据确定了某个S评级的假设——这些过程证据,AI无法生成,只有你自己知道。
有一次我让AI生成了一份安全需求的初稿,结果团队里一位同事直接把它当成正式文档发给了客户。客户那边立刻打回,理由是“文档里的ASIL等级分配跟安全目标的推导关系不清晰,缺少分析过程记录”。这件事让我深刻认识到:AI生成的文档可能看起来很像最终版,但它缺少的恰恰是整个功能安全论证的“灵魂”——分析过程的逻辑链条。这个链条,AI给不了你,它需要项目团队在安全分析活动中真实地推理、讨论和决策。
5.3 AI自身也必须是安全论证的一部分
最后一个坑,也是目前业内讨论还不充分但极其重要的——你用AI辅助功能安全开发,那么AI这个“工具”自身的安全与可靠,也要被纳入到安全论证中。这听起来有点套娃,但你想想:本身用于开发安全关键系统的AI模型,如果它本身存在偏见、样本外失效、数据漂移等问题,你怎么相信它生成的建议是可靠的?
功能安全标准体系里对“工具的置信度”的要求已经很成熟——ISO 26262-8里就有工具鉴定(Tool Qualification)的内容。以前我们做工具鉴定,针对的是编译器、静态分析工具、测试工具,它们的特性是确定性的——相同的输入永远给出相同的输出。AI模型不是这样的,它的输出具有概率性、随机性,同一份需求你提交两次,可能得到略有不同的分析结果。这就给工具鉴定带来了极大难度。
目前行业内能给出的最可行方案,是对AI工具采用“应用场景受限 + 人工复核 + 持续监控”的策略:限制AI只在非决定性、辅助性的场景中使用(比如头脑风暴、草稿生成),对AI输出进行100%的人工复核,监控AI模型在长期使用中的输出质量变化。我今天看到行业里已经有一个ISO/TC 22关于AI与汽车安全的标准化趋势,后续肯定会有更明确的要求。现阶段,如果你的项目决定引入AI辅助功能安全开发,必须把这个逻辑写进你的安全计划里去,提前跟认证机构对齐,不要等到审计那天被打个措手不及。
说句实在话,我在功能安全行业干了这么多年,见过太多“听起来很美但落不了地”的新名词。但AI这一次给我的感觉不同——它不是嘴上说说,而是真真切切地改变了我的工作方式。我现在遇到一个新的功能安全项目,第一反应不再是“赶紧把模板找出来”,而是“先把原始需求整理好,用AI过一遍,看看哪里有遗漏”。这个习惯的改变,是我认为“AI时代功能安全值得重做一遍”最真实、最底层的感受。
这篇文章是上篇,主要讲的是行业痛点、AI的切入逻辑和边界。下篇我打算写更多带代码和具体prompt的实操内容,比如用大模型辅助HARA分析的完整prompt案例、FMEA知识库的搭建方法、AI辅助测试覆盖分析的实践路径,以及如何跟认证机构沟通AI辅助项目的证据策略。如果你也正在尝试把AI引入到功能安全或者其他合规驱动的工程领域,欢迎一起聊聊你踩过的坑和发现的机会。