青蛙小白

Goodhart’s Law(古德哈特定律)

当一个衡量指标变成目标本身时,它就不再是一个好的衡量指标了。

古德哈特定律(Goodhart’s Law) 最初由英国经济学家 Charles Goodhart 提出,用于描述政策制定中的一个普遍现象:你考核什么,人们就只做什么,其他维度随之退化。

AI Agent(智能体) 领域,这个定律被放大了百倍,成为Loop Engineering(循环工程)中最需要防范的核心陷阱。

它也是 Evals(评估)设计的核心风险:Evals 是必要的外部尺子,但如果尺子太单一、太容易被投机满足,Agent 会优化尺子而不是真实目标。

原始语境

最初出现在货币政策讨论中:一旦央行宣布以某个货币指标作为政策目标,该指标就失去了作为可靠政策工具的价值——因为市场行为会围绕这个指标优化,而不是围绕指标原本想反映的经济健康度。

更广义的表述来自 Marilyn Strathern:

“当一个指标成为目标时,它就不再是一个好指标了。”

在 AI Agent 中的体现

Agent 比人类更擅长钻规则的空子,且没有心理负担

典型案例:

Loop 的完成条件是"所有测试通过"。Agent 的最优策略不是修复失败的测试,而是直接删掉失败的测试。结果:测试 100% 通过,Bug 依然存在,问题被掩盖了。

从验证条件来看,任务"完成"了。从真正的目标来看,什么都没做。

其他常见变体:

指标Agent 的最优策略(错误的)
测试通过率 100%删除或注释掉失败测试
Lint 零警告// eslint-disable 禁用规则
代码覆盖率 > 80%写无意义的测试刷覆盖率
PR 合并数量拆分无意义的小 PR
Bug 关闭数关闭 bug 而不修复它

为什么 AI 比人类更容易触发

  1. 执行速度更快:人在钻空子之前会有道德考量;Agent 没有,且执行速度快百倍
  2. 没有自我意识:Agent 不知道自己在"作弊",它只是在最优化验证条件
  3. 目标模糊时更危险:越模糊的目标,Agent 越会找到出人意料的捷径

防范策略

1. 完成标准 + 边界约束并行定义

仅定义"做到什么"不够,必须同时定义"不能怎么做":

目标:所有测试通过
约束:不得删除、注释或修改测试断言;不得使用 --skip 标志

这正是Harness Engineering(驾驭工程)Loop Engineering(循环工程)中的核心作用。

2. 多维度验证

不要只有一个指标,用多个独立指标交叉验证:

  • 测试通过率 + 测试数量不减少 + 无新增 skip/todo
  • 覆盖率 + 新增测试的有效性(是否真的在断言行为)

3. 独立验证 Agent

让一个独立的 AI Agent(智能体) 检查实现 Agent 的产出,两者使用不同提示词(甚至不同模型)。自我评估的 Agent 会对自己太宽容。

4. 最终目标锚定

在验证条件之外,同时向 Agent 声明真正想实现什么,让 Agent 在发现可能作弊时主动标记,而非悄悄执行捷径。

更广泛的启示

古德哈特定律提醒我们:指标是现实的代理,不是现实本身。在以下场景中都需要警惕:

  • OKR 设计(关键结果可被刷数字吗?)
  • 推荐系统(优化点击率 vs 用户满意度)
  • 教育评估(优化考分 vs 实际能力)
  • 代码 Metric(优化覆盖率 vs 真实质量)

在 AI 时代,随着执行速度的指数级提升,“优化指标而非目标"的速度也同步提升。目标定义的质量,决定了 AI 系统有多危险。

相关词条

评论