📐 思维模型手册/马尔可夫链与 AI 状态转换
2 分钟阅读11 天内

马尔可夫链与 AI 状态转换

#mental-models#probability#state-machines#ai-systems𝕏 分享

马尔可夫链描述一类特殊的随机过程:下一个状态只取决于当前状态,与历史无关(马尔可夫性质)。

数学定义:

P(Xₙ₊₁ = s | X₁, X₂, ..., Xₙ) = P(Xₙ₊₁ = s | Xₙ)

为什么 LLM 本质上是马尔可夫的:

Transformer 在生成每个 token 时,理论上看到了所有历史(attention 全局覆盖),但在实践中: - 越远的历史,attention 权重越低 - Context window 是硬截断 - 模型倾向于"就近依赖"

这意味着你的对话历史越长,早期的指令越容易被"遗忘"。

工程启示一:重要指令要近

坏:session 开头说"永远用 Go 风格",之后写了 3000 token 的对话
好:在每次关键请求前重申约束,或者放在 CLAUDE.md 里(每次都在最前面加载)

工程启示二:状态机建模 Agent

用马尔可夫链设计 Agent 状态转换:

[IDLE] → [PLANNING] → [EXECUTING] → [VERIFYING] → [DONE]
                                  ↓
                              [ERROR] → [REPLANNING]

每个状态只需要知道当前状态和输入,不需要记录完整历史。这使得 Agent 系统更容易调试和恢复。

工程启示三:检测"状态漂移"

当 Claude 在长对话中开始产出与早期指令矛盾的内容,你遇到了状态漂移。

处理方式: - /compact:压缩历史,但保留核心约束 - 重新注入 system prompt 的关键部分 - 新开 session,附上精简的上下文

对比:HMM(隐马尔可夫模型)

如果把 Claude 的"真实状态"(理解层次、推理模式)看作隐状态,我们只能观测到它的输出(可见状态),这就是 HMM。

这解释了为什么 Claude 有时候"看起来理解了"但实际上没有——它的输出符合表面模式,但内部状态不是我们期望的。

调试方法:让 Claude 先输出推理过程(chain-of-thought),暴露隐状态,再得出结论。

← 上一篇阻抗匹配 · Impedance Matching下一篇 →涌现与 AI 能力的非线性增长