mcpField
T
thinking-feedback-loops

thinking-feedback-loops

github.com/tjboudreaux生产力1.7k129 次安装12 周前更新
代码仓库

关于 thinking-feedback-loops

用于分析系统动态行为的思考技能,帮助识别强化回路、平衡回路及延迟如何造成增长、振荡或停滞。适合分析系统行为随时间变化的问题,并据此寻找干预方向。

主要功能

  1. 01区分强化回路与平衡回路
  2. 02绘制变量间的因果联系
  3. 03识别造成振荡的延迟
  4. 04判断当前主导回路
  5. 05从回路结构寻找干预方向

适用场景

  1. 01分析系统为何持续增长或衰退
  2. 02排查系统围绕目标反复振荡
  3. 03理解变更为何遭遇阻力
  4. 04解释快速修复为何适得其反

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tjboudreaux/cc-thinking-skills --skill thinking-feedback-loops

安装后在 Claude Code 中输入/thinking-feedback-loops确认已加载。

详细介绍

反馈回路分析

概述

反馈回路分析(Donella Meadows,《Thinking in Systems》)用于解释动态系统如何随时间变化。回路要么放大变化(增强回路),要么使系统趋于目标并保持稳定(调节回路);因果之间的延迟会导致振荡。当系统不受控制地增长、崩溃、振荡或拒绝改变时,原因就在于回路结构。

核心原则: 系统行为源自反馈结构。要改变行为,就要改变回路。

触发卡片

当系统呈现动态行为(失控增长、振荡、抗拒改变)时:

  1. 判断行为类型: 增长/崩溃 → 查找增强回路;振荡 → 查找带有延迟的调节回路;停滞 → 查找占主导地位的调节回路。
  2. 追踪回路: 哪个变量会反馈并影响自身?绘制因果连接并标注方向(+/-)。
  3. 找到杠杆点: 缩短延迟、改变回路的增益,或为失控的增强回路添加调节回路。

如果没有动态行为(状态静止,或由一次性原因造成),请跳过——直接修复问题。要绘制整体系统图,请使用 thinking-systems。要选择在已绘制的回路中介入的位置,请使用 thinking-leverage-points。

适用情况

  • 系统出现失控增长或崩溃(怀疑存在占主导地位的增强回路)
  • 系统围绕目标振荡,而非逐渐稳定下来(怀疑调节回路存在延迟)
  • 系统停滞/抗拒改变(怀疑存在占主导地位的调节回路)
  • 某个“显而易见”的修复措施适得其反,你想弄清原因
System behavior is puzzling or problematic?
  → Is it growing/shrinking unexpectedly?   → Look for REINFORCING LOOPS
  → Is it oscillating around a target?      → Look for DELAYS in BALANCING LOOPS
  → Is it stuck/resistant to change?        → Look for dominant BALANCING LOOPS

不适用情况

  • 需要绘制整体系统结构(组件、存量、流量、跨服务原因)——请改用 thinking-systems。反馈回路分析聚焦于驱动行为的特定动态回路;系统思维会先绘制完整的全貌。
  • 想要确定在已绘制的系统中进行干预的位置——请使用 thinking-leverage-points(Meadows 的 12 级层次结构)。反馈回路会告诉你哪个回路占主导地位;杠杆点会告诉你应在回路中的哪个位置采取行动。
  • 症状只有单一静态原因,且不存在回路(例如固定的 Bug、一次性错误配置)→ 直接修复。
  • 行为不会随时间变化——没有可建模的动态过程。

核心概念

1. 增强回路(正反馈)

增强回路会沿同一方向放大变化——无论是增长还是衰退。它们会产生指数级行为:拥有得越多,得到(或失去)的也越多。

结构: A → B 增加 → A 增加(或者:A → B 减少 → A 减少)

┌─────────────────────────────────────────────────────────┐
│              REINFORCING LOOP (R)                       │
│                                                         │
│         ┌──────────┐         ┌──────────┐              │
│         │  Users   │───(+)──▶│  Content │              │
│         └──────────┘         └────┬─────┘              │
│              ▲                    │                     │
│              │                   (+)                    │
│              │                    │                     │
│              └────────────────────┘                     │
│                                                         │
│   More users → More content → More users (Growth)      │
│   OR: Fewer users → Less content → Fewer users (Death) │
└─────────────────────────────────────────────────────────┘

特征:

  • 指数级增长或崩溃
  • 自我实现的预言
  • “强者愈强”的动态
  • 良性循环(有益时)
  • 恶性循环(有害时)

软件示例:

Retry Storm Loop:
Service slow → Clients retry → More load → Service slower → More retries
(Vicious cycle toward outage)

Technical Debt Loop:
Shortcuts → Bugs → Firefighting → Less time → More shortcuts
(Vicious cycle toward collapse)

Cache Stampede Loop:
Cache miss → Backend load → Slower fills → More misses → More load
(Reinforcing under expiry)
2. 调节回路(负反馈)

调节回路会抵消变化,推动系统朝目标或均衡状态发展。它们会产生目标导向行为。

结构: 实际状态与目标之间的差距 → 纠正措施 → 差距缩小

┌─────────────────────────────────────────────────────────┐
│              BALANCING LOOP (B)                         │
│                                                         │
│   ┌──────────┐                    ┌──────────┐         │
│   │   Goal   │                    │  Actual  │         │
│   │  State   │                    │  State   │         │
│   └────┬─────┘                    └────┬─────┘         │
│        │                               │                │
│        └──────────┬────────────────────┘                │
│                   ▼                                     │
│             ┌──────────┐                               │
│             │   Gap    │                               │
│             └────┬─────┘                               │
│                  │                                      │
│                 (-)                                     │
│                  ▼                                      │
│           ┌────────────┐                               │
│           │ Corrective │                               │
│           │   Action   │────────▶ Closes gap           │
│           └────────────┘                               │
└─────────────────────────────────────────────────────────┘

特征:

  • 目标导向行为
  • 抗拒改变
  • 稳定性(运行良好时)
  • 振荡(存在延迟时)

软件示例:

Auto-scaling Loop:
Load increases → Gap from target → Scale up → Load per instance decreases
(Goal: maintain target response time)

Backpressure Loop:
Queue depth rises → Producers throttled → Arrival rate drops → Queue drains
(Goal-seeking to bounded queue)

Circuit Breaker Loop:
Error rate exceeds threshold → Breaker opens → Load sheds → Service recovers
(Goal: maintain availability)
3. 延迟

延迟是因果之间的时间差,是系统中产生振荡和不稳定的主要来源。

┌─────────────────────────────────────────────────────────┐
│                   DELAY EFFECTS                         │
│                                                         │
│   Action ───────[DELAY]─────────▶ Effect               │
│                                                         │
│   Short delay: System responds smoothly                 │
│   Long delay: Overshoot and oscillation                │
│                                                         │
│   Examples:                                             │
│   • Code deploy → [Cache TTL] → Users see change       │
│   • New hire → [Ramp-up time] → Productivity impact    │
│   • Feature ship → [Adoption] → Metric movement        │
│   • Training → [Skill development] → Performance gain  │
└─────────────────────────────────────────────────────────┘

延迟导致振荡的原因:

Without delay:
  Gap detected → Correction → Gap closes → Done

With delay:
  Gap detected → Correction → [DELAY] → Gap persists →
  More correction → [DELAY] → Original correction arrives →
  Overshoot → Gap in opposite direction → Oscillation

经典示例:淋浴水温

Too cold → Turn hot → [Delay: water travels through pipes] →
Still cold → Turn hotter → Hot water arrives → Too hot! →
Turn cold → [Delay] → Still hot → Turn colder →
Cold water arrives → Too cold! → Oscillation continues

常见系统模式

模式 1:指数级增长

结构: 单个占主导地位的增强回路

┌─────────┐      ┌─────────┐
│ Revenue │─(+)─▶│ Invest- │
│         │      │  ment   │
└────▲────┘      └────┬────┘
     │                │
    (+)              (+)
     │                │
     └────────────────┘
         Growth

行为: J 曲线式增长(反向运行时则为崩溃)

示例:

  • 初创公司的高速增长阶段
  • 病毒式传播
  • 复利增长
  • 技术债累积

干预: 在失控发生前找到或建立调节回路

模式 2:目标寻求(伴随振荡)

结构: 存在显著延迟的平衡回路

┌────────┐      ┌────────┐
│  Goal  │      │ Actual │
└───┬────┘      └───┬────┘
    │               │
    └───────┬───────┘
            ▼
         [Gap]
            │
           (-)
            │
            ▼
    ┌────────────┐
    │ Correction │───[DELAY]───▶ Effect
    └────────────┘

行为: 围绕目标振荡,振幅取决于延迟时长

示例:

  • 库存管理(牛鞭效应)
  • 招聘周期(过度招聘 → 裁员 → 人手不足 → 过度招聘)
  • 功能优先级的反复调整
  • 性能优化迭代

干预: 缩短延迟,减小纠正幅度,接受更长的稳定时间

模式 3:增长极限

结构: 增强回路最终遇到平衡约束

    ┌─────────────────────────────────────┐
    │                                     │
    ▼                                     │
┌────────┐                          ┌─────┴────┐
│ Growth │──(+)──▶ Success ──(-)──▶│ Resource │
│ Effort │                          │  Limit   │
└────────┘                          └──────────┘
    │
    └──(+)──▶ Results (initially)

行为: S 曲线——增长、趋于平稳,然后停滞或衰退

示例:

  • 市场饱和
  • 团队扩张限制
  • 系统容量限制
  • 功能耗尽

干预: 在触及约束之前识别并解决它

模式 4:转移负担

结构: 症状性解决方案会削弱根本性解决方案

                    ┌──────────────┐
                    │   Problem    │
                    │   Symptom    │
                    └──────┬───────┘
                           │
              ┌────────────┼────────────┐
              ▼            │            ▼
      ┌───────────┐        │    ┌───────────────┐
      │  Quick    │        │    │  Fundamental  │
      │   Fix     │        │    │   Solution    │
      └─────┬─────┘        │    └───────┬───────┘
            │              │            │
           (+)             │           (+)
            │              │            │
            ▼              │            ▼
    Symptom relief ────────┘    Root cause fixed
            │                          ▲
           (-)                         │
            ▼                          │
    Motivation to ─────────────────────┘
    fix root cause

行为: 对快速修复上瘾;根本能力逐渐萎缩

示例:

  • 英雄式救火与系统性可靠性
  • 加班与招聘/流程改进
  • 手动变通方案与自动化
  • 外部顾问与内部能力

干预: 有意识地投资于根本性解决方案,同时处理症状

模式 5:升级(军备竞赛)

结构: 两个相互竞争的增强回路

┌─────────┐      ┌─────────┐
│ Party A │──▶   │ Party B │
│ Action  │  ▲   │ Action  │
└────┬────┘  │   └────┬────┘
     │       │        │
    (+)      │       (+)
     │       │        │
     └───────┴────────┘
         Threat

行为: 相互升级,直到资源耗尽或采取干预

示例:

  • 竞争对手之间的功能竞赛
  • 会议不断增加
  • 流程/官僚机制不断累积
  • 告警疲劳螺旋

干预: 通过达成共识、设置约束或重新界定问题来打破回路

识别系统中的回路

步骤 1:绘制变量图

列出所有会随时间变化的相关量:

Team productivity system:
- Team size
- Individual workload
- Code quality
- Technical debt
- Bug rate
- Firefighting time
- Feature velocity
- Morale
步骤 2:绘制因果关系

针对每一对变量,询问:“A 会影响 B 吗?影响方向是什么?”

(+) Same direction: A increases → B increases, A decreases → B decreases
(-) Opposite direction: A increases → B decreases
步骤 3:追踪回路

沿箭头回到起点。计算负号的数量:

Even number of (-) = Reinforcing loop
Odd number of (-) = Balancing loop
步骤 4:识别主导回路

系统行为由当前的主导回路驱动:

  • 指数级增长?增强回路占主导
  • 振荡?存在延迟的平衡回路
  • 稳定?平衡回路运作良好
  • 衰退?增强回路反向运作

杠杆点

找到主导回路后,在你能够调整的最高杠杆点进行干预:改变延迟或回路增益,比调整参数更有效;改变规则则比这两者都有效。如需了解 Meadows 的完整 12 层级层次结构,请参阅 thinking-leverage-points——无需在此重新推导。

应用框架

分析问题系统
## Feedback Loop Analysis: [System Name]

### Current Behavior
[Describe: growing, declining, oscillating, stuck]

### Key Variables
- [List stocks and flows]

### Loop Diagram
[Draw or describe the loops]

### Identified Loops
| Loop Name | Type | Variables | Currently Dominant? |
|-----------|------|-----------|---------------------|
|           |      |           |                     |

### Delays Present
| Delay | Duration | Effect |
|-------|----------|--------|
|       |          |        |

### Leverage Points
| Level | Intervention | Expected Effect |
|-------|-------------|-----------------|
|       |             |                 |

### Recommended Intervention
[Highest-leverage, lowest-risk option]

与系统思维的整合

  • thinking-systems:绘制整体系统结构并追踪跨服务的成因
  • thinking-feedback-loops:识别并分析驱动动态行为的具体回路
  • thinking-leverage-points:选择干预位置(Meadows 的 12 层级层次结构)

验证清单

  • 已识别随时间变化的关键变量
  • 已绘制因果关系及其方向(+/-)
  • 已追踪至少一个增强回路
  • 已追踪至少一个平衡回路
  • 已识别显著延迟
  • 已确定当前的主导回路
  • 已识别多个层级的杠杆点
  • 已选择杠杆作用合适的干预措施
  • 已考虑干预措施可能产生的意外影响

关键问题

  • “这里有什么在反过来影响自身?”
  • “这是自我强化还是自我纠正?”
  • “这个系统试图实现什么目标?”
  • “延迟在哪里,持续多久?”
  • “当前哪个回路占主导?”
  • “什么因素会让另一个回路转而占据主导?”
  • “有哪些可用的最高杠杆干预措施?”
  • “如果我改变 X,会影响哪些回路?”

Meadows 的智慧

“我们无法控制系统,也无法弄清它们。但我们可以与它们共舞。”

“系统中最不显眼的部分——它的功能或目的——往往是决定系统行为的最关键因素。”

“关注重要的事物,而不只是可量化的事物。”

系统不是等待破解的谜题,而是需要理解并施加影响的模式。有效的干预需要对控制保持谦逊,并关注反馈。

评论

支持 Markdown