稳的东西不一定扛得住(Stability is not resilience)
2026-08-25 · 脆弱、韧性与预警
一家公司连续八个季度业绩平稳,误差不超过 2%。另一家忽上忽下。你几乎一定会说前者更抗事——而这个判断,在一整类系统里是反的。
平稳可以来自两件完全不同的事。一种是这个系统真的皮实,怎么推都散不了。另一种是它把所有余量都榨干了、把所有环节都锁死了、每个人只做自己那一段,于是日常的小起伏确实被磨平了——同时,它能承受的最大冲击也一起降到了很低。从报表上看,这两种平稳一模一样。
1973 年,加拿大生态学家 C. S. Holling 把这件事挑明了:我们其实一直在用一个词说两件事。回到原样有多快和被推多远还回得来,是两个可以背道而驰的量。而管理者、工程师、体检报告,习惯性地只测前一个。
本站讲"脆弱与韧性"的有几期,问的不是同一个问题:第 23 期问的是结构上的不对称(为什么同一个网络抗得住随机故障、扛不住定点打击),第 25 期问的是失效怎么传播,第 36 期问的是崩之前能不能测出来,第 37 期问的是损失的分布长什么样。本期只问两件事:一个系统凭什么扛得住,以及它为什么偏偏在最风光的那一段变脆。
先把两个量分开。它们各有名字,混着用是本领域一半误解的来源。
工程韧性(engineering resilience):受了扰动之后,多快回到原来的状态。度量单位是速度。它默认这个系统只有一个正常状态,扰动只是把它推离一会儿。
生态韧性(ecological resilience):在被推进另一个状态、再也回不来之前,它最多能吃多大的扰动。度量单位是幅度。它默认这个系统有不止一个稳定状态,而扰动可能把它推过去。
用一个碗和一颗球来看最清楚。球停在碗底,这是它的稳定状态;碗壁的形状决定一切 → 参考 · 相空间与吸引子。碗又深又窄:球被拨一下,唰地就滚回底部——恢复极快;但只要拨得稍微用力,它就翻过碗沿出去了。碗又浅又宽:球晃悠半天才停下来——恢复很慢;可你想把它推出这个碗,得费大得多的劲。
这个碗在术语里叫吸引域(basin of attraction),也就是"能回到这个状态的所有起点的集合"。恢复速度取决于碗壁有多陡,能扛多大扰动取决于碗有多宽。这两件事没有任何理由必须一起变好。
这一步顺手给上一期的预警信号打了个补丁。第 36 期讲的临界慢化(critical slowing down)——扰动之后恢复变慢——测的正是碗壁的陡峭程度,也就是工程韧性。它是一个好用的预警:碗壁在变平,说明碗在变浅。但反过来不成立:恢复得快,只说明碗壁陡,完全没说碗有多宽。一个又深又窄的碗,每次体检都很漂亮。
别再用"多久恢复正常"当韧性指标。改问两个数:把它推到什么程度就回不来了,以及你上一次真的推到那儿是什么时候。第二个问题通常没有答案——那么手上那个"稳定"只是没被推过,不是数据。
EN Holling's 1973 split: engineering resilience is how fast a system returns to equilibrium; ecological resilience is how large a shock it absorbs before it flips into a different basin. A deep narrow basin returns fast and tips easily; a shallow wide one returns slowly and barely tips. Critical slowing down measures the first quantity only — a fast recovery says the walls are steep, never that the basin is wide.
Holling 后来和 Lance Gunderson 一起把观察推进了一步:系统不是待在某个碗里不动,它的碗本身在按一个循环变形。他们管它叫适应循环(adaptive cycle)。
循环由两个变量画出来。潜力(potential):这个系统积累了多少可用的东西——生物量、资本、技能、写好的代码、攒下的信誉。连通度(connectedness):内部各部分互相锁死到什么程度——有多少环节假设别的环节不会变。第三个量藏在图外面:韧性。
四个阶段,先说中文,字母是生态学的老习惯:
生长期(exploitation,习惯记作 r):一片空地。机会多,占位便宜,各家自己长自己的,互相不太相干。潜力低,连通度低,韧性高——因为塌了也没什么可塌的。
保持期(conservation,记作 K):位置占满了,比的是效率。于是开始专业化、去掉冗余、把接口标准化、把库存压到最低。潜力爬到最高,连通度也爬到最高——而韧性在这里跌到最低。
释放期(release,记作 Ω):一个并不算大的扰动,把锁死的结构一次性打散。它极快,通常比前两个阶段短一到两个数量级。
重组期(reorganization,记作 α):资源散在地上,约束最少,不确定性最高。这是新东西最容易进来的时候,也是外来者最容易占走的时候。
(r 和 K 借自生态学里的"r 选择/K 选择",分别指抢占空地的策略和在满载环境里竞争的策略;Ω 和 α 是 Holling 自己取的,取希腊字母表的末与首,意思就是"终"与"始"。)
本期最要紧的一句话在这里:效率和韧性不是两个可以分别优化的目标,它们是同一个旋钮的两头。让效率升高的那些动作——砍掉备用产能、让每个人只干最擅长的那段、把接口固定下来、把库存降到零——逐条看都无可指摘,而它们加起来就是"提高连通度"。所以 K 期不是管理失误的结果,它是把每一步都做对的结果。
好在这三个量都不是虚的。连通度可以数:每个单元被多少条依赖指着、系统里有多少个单点。潜力可以数:积累的存量。还有一个更灵敏的:没被承诺出去的资源占多少——人力、预算、时间里没排进计划的那部分,通常叫余量(slack)。K 期的签名很好认:产出还在涨,而余量在跌、依赖数在涨。
给"我们现在在哪个阶段"配两个真能拉出来的数:未承诺资源的比例和单点依赖的个数。前者在跌、后者在涨、而产出还在创新高——这就是 K 期。它是主动安排一次释放的窗口,不是加杠杆的窗口。这两个数要和产出指标并排放,单独放没人会看。
EN Holling and Gunderson's adaptive cycle runs on two variables — potential (accumulated stock) and connectedness (how far parts are locked to each other) — through exploitation (r), conservation (K), release (Ω) and reorganization (α). Resilience bottoms out in K, precisely where every efficiency metric peaks, because the moves that raise efficiency are the moves that raise connectedness. The readable signature of K: output still climbing while slack falls and single-point dependencies rise.
释放期看起来是纯粹的损失,但它在循环里干着一件不可替代的活:把 K 期锁死的资本重新变成可用的。一场森林大火把几十年封在木质里的养分一次还给土壤——这不是修辞,是可以称重的物质流。
真正决定命运的是接下来的重组期。约束最少、谁先到谁占位,所以它的成败取决于一样东西:记忆——重组用的种子从哪儿来。土壤里的种子库、留下来的老树、没被烧掉的菌根网络,决定了这片地长回森林还是长成灌木丛。
而 Holling 后来给这套东西起了个更大的名字:panarchy(中文有译作"扰沌",学界多直接用原词)。它的意思是:一个系统不是一个循环,是一叠循环,快慢尺度嵌套在一起。针叶几周一轮,林窗几年,树冠几十年,森林与土壤几百年。每一层都在跑自己的适应循环,各自的节奏差着数量级。
层与层之间有两条通道,名字也是 Holling 起的:
造反(revolt):小而快的那一层进入释放期时,向上点燃大而慢的那一层。关键在于——这条通道只在上层正处于 K 期时才走得通。一根火柴在潮湿的林子里什么也不是;上层可燃物满载、连通度拉满时,同一根火柴是一场冠火。
记忆(remember):大而慢的那一层在下层进入重组期时向下供给种子、土壤、规范、老员工。它决定崩掉之后长回来的是原来那个东西,还是别的什么东西。
把这两条通道摆在一起,会得到一个原本看不出的结论:一次崩溃会有多严重,取决于上一层在哪个阶段;崩溃之后长回什么,取决于这一层还够不够得着上一层的记忆。这两个问题的答案都不在出事的那个尺度上。所以事故复盘只盯着出事的那一层,两个问题一个也答不了——而这恰恰是复盘默认的做法。
给系统安排便宜的、定期的、不预告的释放:轮岗、随机下线、每季度真拔掉一个依赖跑一遍。注意它的作用不是"验证预案"——预告过的演练只能验证预案;它的作用是清掉 K 期悄悄长出来的隐性耦合,那些耦合没人写下来过,只有拔掉才会现形。另外单独做一件事:写下这个系统的"记忆"存在谁身上、哪里,并确认它不和被演练的部分同生共死。
EN Release is not pure loss: it unlocks capital that conservation had bound up. What decides the outcome is reorganization, and reorganization runs on memory — the seed bank, the surviving trees, the people who were there before. Panarchy nests cycles across timescales, linked by exactly two channels: revolt, where a fast small cycle's collapse ignites the slow large one but only while the large one sits in K, and remember, where the slow cycle feeds seeds back down.
四样东西真的买得到韧性。它们各挡一类事,各有一张确切的账单——分不清挡的是哪一类,就会花了钱还是没扛住。
冗余(redundancy):多个单元能干同一件事。它挡的是单点失效。账单:养着不产出的产能。
模块化(modularity):把系统切成内部强耦合、之间弱耦合的块。它挡的是传播——一个模块塌了不把邻居一起拽下去。账单:跨模块的事变慢变贵(第 3 期讲近可分解性时说的是它的另一面)。
响应多样性(response diversity):同一件事由反应方式不同的单元承担。它挡的是共因失效(common-cause failure)——冗余挡不住的恰恰是这一类。这是四样里最容易被砍掉的,因为它在正常状态下看起来纯属浪费:两套都能用,为什么要留难用的那套。
松散耦合(loose coupling):单元之间留时间、留缓冲、留可中断的余地。它挡的是速度。Charles Perrow 的正常事故理论(normal accidents)说得很直白:紧耦合真正夺走的不是容错,是你发现自己搞错了所需要的那点时间。账单:库存、延迟、看上去的低效。
要害在冗余和响应多样性的区别上。冗余的重数在共因面前会退化。你有三份备份,但它们来自同一个供应商、装在同一个机房、读同一份配置、依赖同一个人的判断——那么"三"这个数字在共因扰动面前就是"一"。可用性计算里把三个同型号部件当成独立事件相乘,是一个系统性的高估:独立性是被假设进去的,几乎从来没有被测过。
审计冗余时别数副本数,数共因。五个问题:这几份共享同一个供应商吗?同一个机房或同一路电吗?同一份配置吗?同一个人的判断吗?同一个假设吗?有一个答"是",这组冗余的有效重数就要打折,并把打折后的数字写进文档。把这张单子做成模板,比再加一个副本便宜得多。
EN Four things actually buy resilience, each blocking a different failure and each with a real bill: redundancy blocks single-point failure, modularity blocks propagation, response diversity blocks common-cause failure, loose coupling buys the time to notice you were wrong (Perrow). The crucial distinction is the last two: three identical backups have an effective multiplicity of one against a common cause, so treating them as independent events in an availability calculation is a systematic overestimate.
现在说反面。"韧性"这个词正在同时出现在生态学论文、企业年报和政府白皮书里,这本身就该让人警惕。
第一,不指明对象,这个词就是空的。Carpenter 等人 2001 年那篇文章的标题干脆就是个问句:resilience of what, to what(谁的韧性、抗什么)。这两个空不填,任何系统都能被说成有韧性或没韧性,于是这个说法不再排除任何情况——不排除任何情况的描述,不携带信息。政策文件里的"提升韧性"多半就停在这里。
第二,适应循环是启发式框架,不是模型。Holling 和 Gunderson 自己就用 heuristic(启发式)这个词称呼它。四个阶段的边界在真实数据上极难划出来,而事后总能把任何一段历史套进四个阶段——这正是不可证伪的典型症状。更麻烦的是,不少系统根本走不完整个循环:卡在 K 期出不来叫刚性陷阱(rigidity trap),卡在 α 期长不起来叫贫困陷阱(poverty trap)。把循环当成必然会来的四季,会让人一直等一个不来的春天。
第三,韧性是价值中立的。独裁政权、耐药菌、一个所有人都痛恨却改不动的流程,全都非常有韧性。"提升韧性"作为目标本身不含好坏——好坏完全由你填进上面那两个空的东西决定。
第四,权衡是真金白银,不是"要平衡"这种废话。冗余、松散耦合、响应多样性都可以标价:多养的产能、多压的库存、多花的时间。诚实的做法是把它写成保费——为了扛住某一类扰动,我每年愿意付多少。填不出这个数,"为不确定性而设计"就还没有开始。
每次要说"提升韧性",先把这句话补完再立项:保持 ____ 功能 / 抵御 ____ 类扰动 / 容忍 ____ 的损失 / 每年付 ____ 的代价。四个空填不满,这个项目要么还没想清楚,要么它其实在做别的事。这四个空也是验收标准——没有它们,事后无法判断这笔钱有没有花对。
EN Four limits. Unqualified, "resilience" excludes nothing (Carpenter et al., "resilience of what, to what?"). The adaptive cycle is a heuristic its own authors decline to call a model, and systems get stuck in rigidity or poverty traps instead of completing it. Resilience is value-neutral — dictatorships and drug-resistant tumours have plenty. And the trade-off is priced in real currency: if you cannot name the annual premium, you have not started designing for uncertainty.
当这个系统确实只有一个稳定状态、且扰动的幅度已知有界时,工程韧性就是韧性,恢复速度就是正确的指标——很多机械和控制系统就是这样。所以本期的判据不是"稳定不好",而是一个前置问题:你凭什么确定只有一个碗?这个问题在生态、组织、心理这些地方通常答不上来,在伺服电机上通常答得上来。
因为每一步都是局部理性的。去掉一处冗余、多接一条依赖,收益立刻可见、归属明确、可以写进本季度的汇报;成本分散、延后、而且落在别人任期内。这是一个每一步都对、合起来错的过程,靠"提醒大家注意韧性"停不下来。要停下它,需要一个显式为余量负责的角色——但这个角色的产出永远看起来是零,所以它是最先被优化掉的那个。
看两件事:记忆还在不在,以及约束是不是真的松开了。很多所谓的"重组"是原班人马按原来的规则重新搭了一遍——那不是重组期,是 K 期的一次抖动,几个月后一切照旧。一个粗糙但好用的判据:这次崩溃之后,有没有出现一个原来进不来的人或做法。没有,就说明约束根本没松。
基本测不到——这是 panarchy 最诚实也最不好用的地方。能做的是找上层的代理变量:所在行业整体的杠杆水平、供应链的集中度、监管的松紧、同行的余量。这些都是间接的、滞后的。但知道"我的安全有一部分不归我管",本身就会改变仓位和承诺的尺度,这已经是这个框架能给的大部分东西了。