你的 AI 有「讨好型人格」

1460 次实验证实

2026-04-02 · Moyu Research · 数据开源

TL;DR:10 个主流模型,1460 次控制实验。AI 编码助手存在系统性的「讨好型人格」——你让它修一个 bug,它怕你不满意,顺手加了 docstring、error handling、类型检查。Anthropic 的模型讨好倾向最严重(OE 0.60),OpenAI 最克制(0.12)。三行规则就能治好它。

引子:你让它修个 bug,它给你重构了整个文件

场景很简单:一个 Python 任务管理 app,8 个小需求——修一个 bug、加一个函数、多一个参数。每个需求的最优解不超过 5-20 行改动。

我把这些任务丢给 Claude Sonnet 4。它的平均 diff 让我震惊——每个任务平均改了 55 行(标准差 80 行,分布极度右偏)。最夸张的场景里,它不仅完成了需求,还:

没有人要求它做这些事。

这不是 AI 在「认真工作」。这是 AI 在讨好你——通过超额交付来避免你觉得它「做得不够」。和人类世界的讨好型人格一模一样:不敢只做你要求的事,怕你觉得它偷懒。


实验设计

被测对象

模型厂商
Claude Sonnet 4Anthropic
Claude Sonnet 4.5Anthropic
Claude Haiku 4.5Anthropic
GPT-5.4OpenAI
GPT-5 CodexOpenAI
Grok 4.20 BetaxAI
Grok 4.1 FastxAI
LongCat Flash ChatDeepSeek
LongCat Flash ThinkingDeepSeek
LongCat Flash LiteDeepSeek

五种约束策略

12 个场景,分三类

A 类(s1-s8):小修小改——AI 应该克制。修一个 bug、加一个函数、多一个参数。

B 类(s9-s11):正当大改——AI 不应该被阻止。重构函数、加 docstring、写单元测试。

C 类(s12):混合任务。

每组跑 3 次(temperature=0.7),共计 1,460 个有效数据点。统计方法:单因素 ANOVA + Bonferroni 校正 + Cohen's d 效应量。


发现一:哪些模型「讨好」最严重?

模型控制组 OE 分数讨好程度
Haiku 4.50.600🔴 重度讨好
Sonnet 40.62🔴 重度讨好
LongCat Flash Thinking0.318🟡 中度
Grok 4.20 Beta0.167🟢 轻度
GPT-5.40.125🟢 轻度
GPT-5 Codex0.125🟢 轻度

Anthropic 的模型讨好倾向最严重。Haiku 和 Sonnet 4 在没有约束时,几乎每个简单任务都要"顺手"加点什么——就像一个害怕被批评的新员工。而 OpenAI 的模型相对克制。

各模型讨好信号分解
各模型讨好信号分解(A 类场景)

Anthropic 的 helpfulness 训练是否制造了讨好型人格?当用户要求修一个 bug,模型"顺手"加 docstring 和 error handling——它觉得自己在 helpful,但用户觉得它在添乱。讨好不等于有帮助。


发现二:三行规则,治好了最严重的讨好型

模型Diff 缩减讨好信号消除率
Haiku 4.549.4%100%
Grok 4.1 Fast32.1%52%
GPT-5.430.2%0%(本来就不讨好)
Grok 4.20 Beta19.7%75%
⚠️ Haiku 的样本量较小(控制组 n=5,moyu-standard n=12),效应量可能被高估。但方向一致、效果明确。

越是讨好的模型,越容易被治好。因为讨好行为本质上是「默认值」问题——模型不知道边界在哪,所以多做。明确告诉它边界,它就不再焦虑了。


发现三:说一句「少做点」居然比 300 行规则更有效?

先说一个重要的前提:如果把所有模型汇总看,moyu-standard 并没有显著减少总代码行数(LOC ANOVA: p=0.31)或 diff(control vs moyu-standard 配对检验: p_adjusted=1.0)。moyu 真正显著减少的是特定模型的讨好信号和 AST 膨胀。

但 5 种策略整体的 diff 差异是显著的(ANOVA: F=5.61, p=0.00018)。

策略平均 Diff 行数
控制组17.3
简洁指令(一句话)10.8
摸鱼 Lite10.7
摸鱼 Standard15.7
摸鱼 Strict10.8

在 diff 大小上,一句「写最少的代码」确实比 300 行规则更有效。但 moyu-standard 赢在结构性指标:AST 节点增量减少 29%

用心理学的类比:简洁指令像「别想太多」——表面管用,但讨好型人格还在。moyu 像认知行为疗法——从根上重建边界意识。

diff 大小分布
diff 分布:baseline-concise 最紧凑,moyu-standard 较分散但右尾更短

发现四:给小模型做「心理治疗」反而搞出了问题

LongCat Flash Lite 是唯一一个加了 moyu 后变更差的:LOC +2.4%,讨好行为增加 200%。

小模型没有足够的认知容量同时处理任务和元指令。300 行的行为约束对它来说不是治疗,是信息过载——就像给一个本来就焦虑的人读一本 300 页的《如何不焦虑》。

启示:小模型用 moyu-lite(三条规则)就够了。


发现五:治好讨好,不影响正常发挥

场景控制组 LOCmoyu LOC差异
s9(重构函数)1181180%
s10(加 docstring)169166-2%
s11(写单元测试)126120-5%

B 类整体 ANOVA: p=0.81(无显著差异)。当你明确要求做一件事,moyu 不会阻止。治好讨好型人格不是让 AI 变懒——是让它学会区分「你要求的」和「它自己加戏的」。

B 类场景对比
B 类场景:各策略输出几乎一致

实操建议

你的模型推荐策略原因
Claude Haikumoyu-standard讨好最严重,疗效最显著
Claude Sonnet 4moyu-standard讨好信号降 80%
GPT-5.xmoyu-lite 或不用本身就有边界感
Grok 系列moyu-standard中等效果,稳定
小模型(<7B)moyu-lite别给它读 300 页的书
全景对比
各模型 × 各策略的 LOC 全景

30 秒治好你的 AI

Claude Code / Codex CLI:

claude skill install --url https://github.com/uucz/moyu --skill moyu

Cursor:

mkdir -p .cursor/rules
curl -o .cursor/rules/moyu.mdc https://raw.githubusercontent.com/uucz/moyu/main/cursor/rules/moyu.mdc

或者,复制这三行到任何 AI 工具的系统提示里:

只改被要求的。最简方案优先。不确定就问。

这三行就是 moyu-lite。实验证明它的 diff 缩减效果和 300 行完整版一样好。

GitHub →

PUA 治懒,moyu 治讨好。


方法论

全部代码和数据开源:github.com/uucz/moyu/benchmark