对抗 AI 讨好型人格的“双向钢人论证”
模型答非所问、只会顺着你说——AI 的讨好型人格怎么治?本文从逻辑学中的钢人论证出发,提出双向钢人决策测试:让 AI 同时扮演最坚定的支持者与最尖锐的反对者,在极限对抗中逼出真实结论,并讨论了为何不宜把整套规则写进全局 AGENTS.md。

在日常使用各类大语言模型时,许多人经常会陷入一种诡异的舒适区:你抛出一个并不成熟的想法,AI 往往第一句就是“这是一个非常棒的视角!”,随后给出一堆四平八稳、放之四海而皆准的分析。
这种现象在学界被称为 AI 的谄媚偏差(Sycophancy)。大模型在强化学习(RLHF)训练机制下极易演化出“讨好型人格”——倾向于顺着用户的假设说话,扮演绝不犯错但毫无增量的中央空调。

不久前 Reddit 上疯传过一段让模型深度思考的 Prompt,核心是通过“指出未说出的假设、缺少的信息、常犯的错误并提问”来避免泛泛而谈。
但这套逻辑如果缺少了对论点本质的极限对抗,依然难以彻底解决模型的迎合惯性。要真正逼出深度答案,必须引入逻辑学中最具对抗性的思维模型——钢人论证(Steelman Argument)。
从“稻草人”到“双向钢人”
辩论学中有一个著名的逻辑谬误叫稻草人谬误(Straw Man Fallacy):故意曲解或削弱对方的观点,树立一个弱不禁风的“稻草人”再将其击倒。
而钢人论证(Steelman)则是它的完全反面:在反驳一个观点前,必须先站在对方立场,把对方的论点修补完整,找出最合理、最深刻、甚至对方自己都没意识到的底层逻辑,将其锻造成一个难以击败的“钢铁巨人”。
哲学家约翰·斯图尔特·密尔曾说:“一个人如果只知道自己这一边的论点,那他对自己这一边其实也知之甚少。”
所谓的“双向钢人论证”,就是让 AI 充当双向极限裁判:
- 正向钢人化:替你把当前的设想推演到极致,找出最强支撑依据;
- 反向钢人化:站在极度敏锐的反对者立场,把反对你的理由强化到无懈可击。
当正反双方都被塑造成“钢铁巨人”时,表面的敷衍与虚假共识将被彻底撕碎,决策的核心矛盾才会真正浮出水面。
提示词模板:双向钢人决策测试
这套提示词融合了论文中的抗谄媚机制(Anti-Sycophancy)、事前验尸法(Pre-mortem Analysis)与交互式决策收敛,文字自然通透,可以直接复制使用:
请帮我把关下面这个决策/想法。
【核心原则】:
严禁迎合我的倾向,拒绝任何“各有优劣/视情况而定”的模棱两可回答。请对该问题执行一次深度的“双向钢人论证”:
1. 【穿透表象】:用一句话点破我表面问题背后,真正纠结或害怕的核心矛盾(重构真实命题)。
2. 【双向钢人极限博弈】:
– 正向钢人:用最严密、最有力的逻辑,把支持我当前想法的最强理由推演出来(甚至讲得比我更好)。
– 反向钢人:假设一位极度懂行且尖锐的批判者全盘否定我,列出反对该想法最难被反驳的理由、隐藏假设的漏洞及潜在代价。
3. 【锁定决策支点】:剥离次要干扰项,提炼出决定该决策走向的 1~2 个关键核心变量。
4. 【终极拷问与闭环】:此时【不要】急于下定论,请只向我提出 1 个最直击本质的关键问题。等我回复后,你再给出明确的取舍建议与第一步行动清单。
【我的具体问题与初步设想】:
[在此处详细粘贴你的背景信息、面临的具体困惑以及你目前的初步想法]
审视:为什么不能一股脑塞进 AGENTS.md?
随着“双向钢人”展现出惊人的思辨深度,很多开发者产生了一个强烈的冲动:为什么不直接把这段规则写进全局的 AGENTS.md 或者写成一个 Skill,让 Agent 在每次任务中都强制执行?
这看似能一劳永逸地解决 AI 的讨好问题,但在实际工程架构中,直接把“双向钢人”写入全局 AGENTS.md 往往是一场设计灾难。
你真正要解决的,不是“在 AGENTS.md 里增加一段双向钢人提示词”,而是要让 Agent 在重大判断时具备一种稳定的思考纪律:既能充分理解并推进你的原始方向,也能主动构造足够强的反对理由,避免因为迎合、路径依赖或过早收敛而把未经检验的想法写成结论。
同时,这个机制必须符合现有的系统设计原则:全局规则易读、项目规则可路由、复杂流程按需加载、后续可测试和可沉淀。否则它会沦为又一段“写了但不触发”的死文本。
- 任务适配错配:将低摩擦操作变成重型泥潭若把它作为所有任务的固定步骤,系统会变得迟缓且冗长。修一个样式 Bug、查找一个文件路径、执行已经确认的代码重构,根本不需要正反双方辩论。有些任务本质上不是“价值取舍”,而是“事实核验、故障排查或权限确认”。对这些任务强行要求双向钢人,不仅浪费 Token 和推理时间,更会把本应直接验证的事实变成虚妄的哲学辩论。
- 形式主义陷阱:伪造“没有信息量的反方”“正反各写一段”极容易沦为空泛格式。当缺乏明确的上下文、证据来源、触发条件和退出机制时,Agent 会为了满足 Prompt 的指令硬憋出一些貌似平衡、实则毫无深度的“稻草人反对意见”,反而稀释了核心信息的密度。
- 规则架构劣化:破坏上下文路由与维护性在 Agent 架构中,AGENTS.md 是全局性的元规则与路由索引。如果将重型推演流程硬塞进全局文件,会导致全局指令越来越膨胀,使得轻量任务的上下文窗口被严重污染。最终的结果是:全局文件变成重型流程手册,降低了真实场景中的命中率与触发精度。
从全局死规矩到“动态决策门槛”
双方真正的分歧,不在于“是否应该批判性思考”,而在于双向钢人应是:
一项覆盖所有任务的默认思考原则(低效且易形式化);还是只对特定类型的重大决策生效的、可验证的工作流门槛(工程化正解)。
要让这套逻辑真正发挥威力,最可能改变结论并决定落地方案的变量有四个:
- 触发范围:明确哪些决定(如架构变更、核心数据模型重构、产品方向、全局规则升级)必须进入此流程;
- 证据要求:正反论证是否都必须基于已读代码、历史决策、真实数据或外部权威文档,杜绝凭空脑补;
- 输出强度:日常交互中不必每次都打印冗长的正反大论,内部完成碰撞后,只需输出核心分歧、关键变量与 1 个决策问题;
- 沉淀方式:推演结论应条件化地写入项目决策记录(如 ADR),沉淀出“为何选 A、为何不选 B,以及什么条件出现时应改选 B”,并配置测试用例验证触发。
保持清醒的唯一方式,就是主动引入最坚硬的“钢铁论证”作为逻辑陪练。但比起无节制地将其泛化为全局规则,以按需挂载、条件触发、动态检验的方式将它嵌入工程体系,才能真正榨干大模型的思考力,把未经检验的冲动变成经得起推敲的坚实决策。
本文由人人都是产品经理作者【龙国富】,微信公众号:【龙国富】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于 CC0 协议。
- 目前还没评论,等你发挥!

起点课堂会员权益




