LLM 抬高能力下限
陌生语法、样板代码、常规写作和信息整理变得更容易,普通用户可以迅速得到“看起来可用”的产物。
LLM 能把多数人提升到“可用的通才基线”,却不会自动补齐对目标、约束、异常信号和质量标准的理解。真正拉开差距的不是提示词长度,而是人能否把模糊任务压缩成正确的问题,并持续判断模型正在接近答案,还是只是生成了看起来合理的内容。
陌生语法、样板代码、常规写作和信息整理变得更容易,普通用户可以迅速得到“看起来可用”的产物。
专家知道哪部分值得追问、哪条建议违背系统现实,以及何时应该换表示、换工具或停止生成。
模型最危险的输出不是明显错误,而是局部合理、整体失配,并且刚好超出使用者的识别能力。
Sean Goedecke 的核心主张是:提示效果最重要的变量,是使用者在目标领域中的真实理解。Addy Osmani 将其概括为“力量倍增器”——模型能放大已有能力,但不能凭空创建基础力量。两者都把重点从“提示词技巧”移向人类的领域模型与工程判断。
| 层级 | 可以成立的表述 | 不宜直接推出 |
|---|---|---|
| 作者主张 | 领域知识能让人更有效地引导同一个 LLM。 | 所有专家在所有任务上都一定比新手获得更高效率。 |
| 实证研究 | AI 的平均收益为正,但跨任务、场景和人群差异很大。 | 任何单一实验都能代表全部软件开发活动。 |
| 综合推论 | 专家优势主要集中在问题建模、约束发现和结果判断。 | 只要拥有知识,就不需要良好工具、上下文工程与自动化测试。 |
“为什么重试后出现重复入账?”比“支付有 bug 怎么办?”携带更多结构。前者隐含了事件重复、幂等边界与状态写入顺序,模型可以更快定位到有限的候选原因。
“方案增加了分布式锁,但现有 outbox 已能提供一次提交边界”比“方案不好”更接近优化器需要的梯度:指出偏差、给出约束、暗示更短路径。
Sean 以数学家 Terence Tao 与 ChatGPT 讨论 Jacobian Conjecture 反例的对话为例。表面上,Tao 的输入很短;实质上,每句话都建立在对数学结构、已有路线和异常复杂度的深刻理解上。
| 可观察行为 | 背后的专业能力 | 不能机械模仿的原因 |
|---|---|---|
| 回复短、直接抓主线 | 能从长推导中识别决定性的数学对象与关系 | 新手通常不知道哪一段是主线 |
| 感觉方案“比预期复杂” | 拥有问题复杂度的先验与审美标准 | 没有基线,就无法把复杂度当作异常信号 |
| 主动提出改写与替代方向 | 掌握多个等价表示和可迁移工具 | 提示模板不能凭空生成候选表示 |
| 不照单全收模型的下一步 | 有独立研究路线,可以把模型当作搜索协作者 | 缺少路线时,只能跟随模型的叙事惯性 |
这一案例也有重要边界:它展示了专业协作的过程,不单独证明所有高水平模型成果都必须由专家写出初始提示。Sean 在补充说明中也指出,模型可以提出新发现,但专家仍参与筛选、判断与纠错。OpenAI 在 2026 年公开数学进展时,同样强调人类整理、形式化证明与正确性责任的重要性。
在软件开发里,领域专业能力不仅是掌握 Java、Python 或设计模式,更重要的是理解这一个系统为何这样工作。Sean 借用 Peter Naur 的 Theory Building 观点:工程师的核心资产不是写出的字符,而是脑中关于系统目标、机制与约束的理论。
例如幂等、缓存、事件驱动和分层架构。这些知识适合提出候选方案,也适合新项目的铺路设计。
例如当前服务已有 outbox、消费者允许重复投递、订单状态只能单向推进。真实约束通常比通用模式更能决定实现。
LLM 每次进入代码库,都需要从文件、文档、工具输出和对话中临时重建局部理论。专家的优势在于:知道哪些细节决定方案,能快速发现模型心智模型缺了哪一块,并把团队长期积累的知识转成可复用上下文。
| 协作环节 | 低专业度模式 | 高专业度模式 |
|---|---|---|
| 定义任务 | 描述想要的表面功能 | 给出目标、不变量、非目标和完成证据 |
| 提供上下文 | 把大量文件全部交给模型 | 先定位决策链,再补充最小充分上下文 |
| 选择方案 | 接受模型列出的主流最佳实践 | 根据代码库现状、迁移成本和故障模式筛选 |
| 处理异常 | 看到能运行就认为任务完成 | 主动寻找静默失败、并发、恢复与回滚问题 |
| 反馈模型 | “不对”“再优化一下” | 指出被违反的约束,并提供反例或运行证据 |
| 接受结果 | 依赖解释是否自信、代码是否整齐 | 依赖测试、差异、指标和可重复实验 |
现有研究更支持“条件性放大”,而不是“AI 对所有人、所有任务等比例提效”。模型能力边界、任务类型、工作环境、专业程度和使用方式会共同改变结果。
边界内的 18 项任务中,AI 组完成更多、速度更快、质量也更高;面对刻意选在能力边界外的复杂任务,AI 反而降低正确率。专业能力的重要作用之一,就是识别任务处在边界哪一侧,并调整自动化强度。
METR 的早期 2025 随机对照实验中,开发者原本预期提速,实际却在熟悉的大型代码库中变慢。模型生成、等待、阅读和修正的成本,可能高于专家直接完成任务的成本。该结果只代表特定时间、工具与场景。
METR 在 2026 年更新中认为,后续工具可能已经带来提速迹象,但任务选择、参与者选择以及并行 Agent 的计时方式造成严重偏差,因此无法可靠估计幅度。这一变化说明:模型杠杆是移动边界,不是固定常数。
一项覆盖 23 项研究、27 个效应量的元分析发现:编程生产力的总体效应为中等正向(Hedges’ g = 0.33),但场景异质性很高;学习结果效应 g = 0.14,置信区间跨过零,未达到统计显著。
微软研究对 319 名知识工作者收集 936 个实例,发现更信任 GenAI 与更少批判性思考相关;更相信自身能力与更多批判性思考相关。思考重点从搜集与执行,迁移到信息判断、结果整合和任务负责。
帮我修复支付回调重复处理的问题,代码要优雅,测试要完整。
问题在于:没有说明“重复”的业务含义、当前事务边界、允许的状态转换,也没有定义什么证据能证明修复成立。
目标
修复支付平台重复投递 webhook 时,同一支付单可能重复入账的问题。
当前链路
WebhookController → PaymentService.confirm → LedgerService.credit
消息允许至少一次投递;数据库为 MySQL;confirm 与 credit 当前不在同一事务。
不可破坏的不变量
1. 同一 provider_event_id 最多产生一条账本入账记录。
2. 已成功订单不能回退状态。
3. 回调返回超时时,支付平台会重试;不能简单拒绝所有重复请求。
4. 不引入分布式锁;优先复用现有唯一索引与 outbox 模式。
执行方式
先定位当前幂等键、事务边界和已有 outbox 实现,列出证据与不确定点。
再给出不超过两个候选方案,比较失败模式和迁移成本。
确认方案后再修改代码,并补充并发重复投递测试。
完成证据
给出修改文件、关键 diff、执行的测试命令、测试结果,以及仍未覆盖的风险。
根据日志、调用链和最近变更:
1. 列出三个最可能原因;
2. 每个原因给出支持/反对证据;
3. 提出最小区分实验;
4. 暂不修改代码。
把我视为该模块的新成员。
先说明这个改动最容易违反的
三个本项目惯例,并给出文件证据。
标记任何需要领域负责人确认的假设,
不要用通用最佳实践代替项目事实。
AI 可以加速产出,却不会自动带来学习。训练目标应从“得到答案”改为“构建能够预测、解释和纠错的领域模型”。
在询问模型前,先写下自己的原因判断、方案骨架或失败测试。模型返回后比较差异,才能把“阅读流畅”转换成可修正的认知误差。
不以模型解释结束,而以运行证据、源码定位、实验或权威资料结束。记录“为什么错”,比收集更多万能提示词更能积累长期优势。
| 需要积累的能力 | 可观察训练产物 | 判断是否进步 |
|---|---|---|
| 领域建模 | 状态图、不变量、边界词汇表 | 能预测改动会影响哪些业务路径 |
| 代码库理论 | 调用链、数据流、历史决策记录 | 能用项目事实排除通用但不合适的方案 |
| 问题分解 | 阶段任务、依赖与完成条件 | Agent 失败时能定位是哪一层定义错误 |
| 验证设计 | 反例、测试、指标、回滚方案 | 能发现“能运行但不正确”的结果 |
| 反馈控制 | 约束型反馈与失败模式日志 | 后续轮次明显减少无效搜索 |
| 不充分指标 | 更接近真实价值的指标 |
|---|---|
| 生成代码行数、Agent 调用次数 | 从需求到稳定上线的周期、返工率、逃逸缺陷 |
| 首次运行成功率 | 关键不变量覆盖、恢复与回滚成功率 |
| 个人主观提速 | 按任务类型记录的实际完成时间与等待/修正成本 |
| PR 数量 | 变更吞吐、可维护性、团队知识扩散与事故影响 |