技术学习文档 · AI 辅助工程

LLM 为什么奖励专业能力

LLM 能把多数人提升到“可用的通才基线”,却不会自动补齐对目标、约束、异常信号和质量标准的理解。真正拉开差距的不是提示词长度,而是人能否把模糊任务压缩成正确的问题,并持续判断模型正在接近答案,还是只是生成了看起来合理的内容。

Domain Expertise Codebase Theory Agentic Coding Verification Learning Loop
00

核心结论:AI 放大的是判断闭环

一句话理解 专业能力不是让提示词显得更专业,而是让人能够选择正确上下文、缩小解空间、识别异常、给出有效反馈,并对结果负责。
Floor

LLM 抬高能力下限

陌生语法、样板代码、常规写作和信息整理变得更容易,普通用户可以迅速得到“看起来可用”的产物。

Ceiling

专业知识抬高产出上限

专家知道哪部分值得追问、哪条建议违背系统现实,以及何时应该换表示、换工具或停止生成。

Risk

流畅不等于正确

模型最危险的输出不是明显错误,而是局部合理、整体失配,并且刚好超出使用者的识别能力。

Sean Goedecke 的核心主张是:提示效果最重要的变量,是使用者在目标领域中的真实理解。Addy Osmani 将其概括为“力量倍增器”——模型能放大已有能力,但不能凭空创建基础力量。两者都把重点从“提示词技巧”移向人类的领域模型与工程判断。

01

两篇原文真正讨论的是什么

Sean Goedecke

同一个模型,不代表同一种能力

  • LLM 让更多人具备跨领域的基础执行能力。
  • 专家能从长回答中抓取关键结构,而不是逐句被模型带着走。
  • 专家会主动提出替代表示、反例和更简单的路径。
  • 有效提示来自对问题的理解,而不是模仿专家的短句风格。
Addy Osmani

模型杠杆依赖人的基础力量

  • 领域知识越扎实,通常越能从模型中提取高价值结果。
  • 人可能成为系统瓶颈:不知道想要什么,就无法定义正确目标。
  • AI 辅助开发的稀缺能力正在从输入代码转向设计、引导与判断。
  • “会用 AI”不能替代对软件工程本身的掌握。
三层表述

避免把观点误写成定律

层级可以成立的表述不宜直接推出
作者主张领域知识能让人更有效地引导同一个 LLM。所有专家在所有任务上都一定比新手获得更高效率。
实证研究AI 的平均收益为正,但跨任务、场景和人群差异很大。任何单一实验都能代表全部软件开发活动。
综合推论专家优势主要集中在问题建模、约束发现和结果判断。只要拥有知识,就不需要良好工具、上下文工程与自动化测试。
02

放大机制:专业能力如何进入模型回路

有效产出 ≈ 模型能力 × 问题表述 × 有效上下文 × 引导强度 × 证据反馈 概念模型,用于说明变量之间的共同约束,不是经过统计估计的计算公式。
01
问题表征
把“做一个功能”转换成目标、状态、边界和失败条件。
02
上下文选择
提供决定答案的代码、约定和历史,而不是无差别堆满窗口。
03
搜索空间压缩
用不变量、接口限制和既有模式排除大量错误方案。
04
异常识别
从“太复杂”“不像本项目”“遗漏状态”中发现方向偏差。
05
反馈控制
给出能改变下一轮搜索的具体信号,而不是笼统要求“再优化”。
06
结果负责
用测试、运行证据和回滚方案决定是否接受,而不是依赖语气。
Information Gain

专家的问题信息密度更高

“为什么重试后出现重复入账?”比“支付有 bug 怎么办?”携带更多结构。前者隐含了事件重复、幂等边界与状态写入顺序,模型可以更快定位到有限的候选原因。

Error Gradient

专家能提供方向性误差信号

“方案增加了分布式锁,但现有 outbox 已能提供一次提交边界”比“方案不好”更接近优化器需要的梯度:指出偏差、给出约束、暗示更短路径。

关键区别 提示词技巧主要改善“如何表达”;专业能力决定“表达什么、忽略什么、怀疑什么、用什么证据结束”。前者可以快速模仿,后者需要在真实问题中建立心智模型。
03

Terence Tao 案例:短提示为什么可以很强

Sean 以数学家 Terence Tao 与 ChatGPT 讨论 Jacobian Conjecture 反例的对话为例。表面上,Tao 的输入很短;实质上,每句话都建立在对数学结构、已有路线和异常复杂度的深刻理解上。

可观察行为背后的专业能力不能机械模仿的原因
回复短、直接抓主线能从长推导中识别决定性的数学对象与关系新手通常不知道哪一段是主线
感觉方案“比预期复杂”拥有问题复杂度的先验与审美标准没有基线,就无法把复杂度当作异常信号
主动提出改写与替代方向掌握多个等价表示和可迁移工具提示模板不能凭空生成候选表示
不照单全收模型的下一步有独立研究路线,可以把模型当作搜索协作者缺少路线时,只能跟随模型的叙事惯性
短提示的真相 提示词长度不是专业程度的代理变量。专家短句常常引用了大量未写出的共享结构;当模型已通过上下文识别该结构时,一句方向修正就能产生很大作用。

这一案例也有重要边界:它展示了专业协作的过程,不单独证明所有高水平模型成果都必须由专家写出初始提示。Sean 在补充说明中也指出,模型可以提出新发现,但专家仍参与筛选、判断与纠错。OpenAI 在 2026 年公开数学进展时,同样强调人类整理、形式化证明与正确性责任的重要性。

04

软件工程中的“代码库理论”

在软件开发里,领域专业能力不仅是掌握 Java、Python 或设计模式,更重要的是理解这一个系统为何这样工作。Sean 借用 Peter Naur 的 Theory Building 观点:工程师的核心资产不是写出的字符,而是脑中关于系统目标、机制与约束的理论。

代码库理论 / Codebase Theory
├─ 业务语义:对象为何存在,状态为何变化
├─ 系统边界:谁拥有数据,谁负责一致性
├─ 历史约束:兼容性、迁移路径、已知妥协
├─ 局部惯例:错误处理、命名、测试与部署模式
└─ 运行证据:日志、指标、故障模式、真实流量形态
通用知识

告诉模型“通常怎么做”

例如幂等、缓存、事件驱动和分层架构。这些知识适合提出候选方案,也适合新项目的铺路设计。

局部理论

决定“在这里应该怎么做”

例如当前服务已有 outbox、消费者允许重复投递、订单状态只能单向推进。真实约束通常比通用模式更能决定实现。

LLM 每次进入代码库,都需要从文件、文档、工具输出和对话中临时重建局部理论。专家的优势在于:知道哪些细节决定方案,能快速发现模型心智模型缺了哪一块,并把团队长期积累的知识转成可复用上下文。

Agentic Coding 的核心转变 人不再需要亲手展开全部实现细节,但仍必须持有足够准确的系统理论,才能并行分派、快速淘汰错误结果,并判断局部改动是否破坏整体。
05

新手与专家:差距出现在哪个环节

协作环节低专业度模式高专业度模式
定义任务描述想要的表面功能给出目标、不变量、非目标和完成证据
提供上下文把大量文件全部交给模型先定位决策链,再补充最小充分上下文
选择方案接受模型列出的主流最佳实践根据代码库现状、迁移成本和故障模式筛选
处理异常看到能运行就认为任务完成主动寻找静默失败、并发、恢复与回滚问题
反馈模型“不对”“再优化一下”指出被违反的约束,并提供反例或运行证据
接受结果依赖解释是否自信、代码是否整齐依赖测试、差异、指标和可重复实验
常见陷阱

外观达到“资深”,理解仍停留在表层

  • 架构术语完整,但没有对应到当前依赖关系。
  • 测试数量增加,但关键失败路径没有断言。
  • 文档解释流畅,但无法回答为何不采用更简单方案。
  • 改动局部正确,却改变了重试、权限或数据所有权语义。
专家信号

能说清楚“什么不应该发生”

  • 明确不可破坏的不变量和兼容边界。
  • 能预判最可能被模型忽略的系统细节。
  • 知道何时需要领域负责人介入。
  • 能在结果漂亮但证据不足时拒绝提交。
06

研究证据:收益真实,但边界参差不齐

现有研究更支持“条件性放大”,而不是“AI 对所有人、所有任务等比例提效”。模型能力边界、任务类型、工作环境、专业程度和使用方式会共同改变结果。

Jagged Technological Frontier

相似难度的任务,可能落在能力边界两侧

758
名知识工作者
预注册的管理咨询现场实验
+25.1%
边界内完成速度
使用 GPT-4 的受试者平均更快
−19%
边界外正确率
AI 组更不容易给出正确答案

边界内的 18 项任务中,AI 组完成更多、速度更快、质量也更高;面对刻意选在能力边界外的复杂任务,AI 反而降低正确率。专业能力的重要作用之一,就是识别任务处在边界哪一侧,并调整自动化强度。

Software Engineering

熟悉成熟代码库的专家,不一定立即提速

16
名资深开发者
长期贡献于自己的开源项目
246
个真实任务
功能、缺陷修复与重构
+19%
早期 2025 完成时间
允许使用 AI 后反而变慢

METR 的早期 2025 随机对照实验中,开发者原本预期提速,实际却在熟悉的大型代码库中变慢。模型生成、等待、阅读和修正的成本,可能高于专家直接完成任务的成本。该结果只代表特定时间、工具与场景。

METR 在 2026 年更新中认为,后续工具可能已经带来提速迹象,但任务选择、参与者选择以及并行 Agent 的计时方式造成严重偏差,因此无法可靠估计幅度。这一变化说明:模型杠杆是移动边界,不是固定常数。

2026 Meta-analysis

生产力中等提升,学习收益不明确

一项覆盖 23 项研究、27 个效应量的元分析发现:编程生产力的总体效应为中等正向(Hedges’ g = 0.33),但场景异质性很高;学习结果效应 g = 0.14,置信区间跨过零,未达到统计显著。

Critical Thinking

思考从执行迁移到管理

微软研究对 319 名知识工作者收集 936 个实例,发现更信任 GenAI 与更少批判性思考相关;更相信自身能力与更多批判性思考相关。思考重点从搜集与执行,迁移到信息判断、结果整合和任务负责。

证据合并后的稳健判断 AI 通常能提高能力下限和部分任务的速度,但是否形成真实价值,取决于任务是否适合模型、人工判断是否强于模型盲区、验证成本是否可控,以及使用过程是否继续积累专业能力。
07

工程工作流:把专业能力变成可执行控制

FRAME
1. 人先定义任务结构
写清用户价值、系统边界、不变量、非目标、完成证据与风险等级。模糊处显式标记,不让模型用惯例偷偷补齐。
EXPLORE
2. 让模型搜索与提出候选
先要求列出代码路径、依赖关系、已有实现和不确定点,再生成候选方案。探索阶段不急于写大段代码。
CONSTRAIN
3. 人用局部理论缩小空间
补充历史约束、排除不合适路线、选定迁移方式,并要求模型复述当前理解和可能破坏的不变量。
IMPLEMENT
4. 小步实现并保留可观察差异
按可独立测试的最小单元修改;每一步都能通过 diff、测试或运行输出来判断,而不是一次生成整个功能。
VERIFY
5. 用外部证据结束生成
执行单元测试、集成测试、静态检查与关键手工实验;高风险改动加入并发、权限、恢复与回滚检查。
LEARN
6. 把新知识写回团队系统
记录模型误判、隐藏约束、成功模式和失败证据,更新 ADR、代码注释、测试、Agent 指令或知识库。
适合高自动化
  • 目标清楚、验收可自动判断
  • 局部改动、回滚成本低
  • 训练数据中常见的标准模式
  • 一次性代码、迁移脚本、样板与测试草稿
需要强人工控制
  • 权限、财务、隐私与不可逆数据变更
  • 跨服务一致性与复杂并发语义
  • 缺少可观测性或可靠判定器
  • 强历史约束、稀有技术与非典型系统
08

提示词模板:把知识编码成约束

反例

只有目标,没有系统理论

帮我修复支付回调重复处理的问题,代码要优雅,测试要完整。

问题在于:没有说明“重复”的业务含义、当前事务边界、允许的状态转换,也没有定义什么证据能证明修复成立。

可执行模板

领域约束驱动的实现请求

目标
修复支付平台重复投递 webhook 时,同一支付单可能重复入账的问题。

当前链路
WebhookController → PaymentService.confirm → LedgerService.credit
消息允许至少一次投递;数据库为 MySQL;confirm 与 credit 当前不在同一事务。

不可破坏的不变量
1. 同一 provider_event_id 最多产生一条账本入账记录。
2. 已成功订单不能回退状态。
3. 回调返回超时时,支付平台会重试;不能简单拒绝所有重复请求。
4. 不引入分布式锁;优先复用现有唯一索引与 outbox 模式。

执行方式
先定位当前幂等键、事务边界和已有 outbox 实现,列出证据与不确定点。
再给出不超过两个候选方案,比较失败模式和迁移成本。
确认方案后再修改代码,并补充并发重复投递测试。

完成证据
给出修改文件、关键 diff、执行的测试命令、测试结果,以及仍未覆盖的风险。
诊断模板

让模型先建立因果链

根据日志、调用链和最近变更:
1. 列出三个最可能原因;
2. 每个原因给出支持/反对证据;
3. 提出最小区分实验;
4. 暂不修改代码。
陌生领域模板

显式暴露“未知的未知”

把我视为该模块的新成员。
先说明这个改动最容易违反的
三个本项目惯例,并给出文件证据。
标记任何需要领域负责人确认的假设,
不要用通用最佳实践代替项目事实。
09

能力训练:避免 AI 替代心智模型

AI 可以加速产出,却不会自动带来学习。训练目标应从“得到答案”改为“构建能够预测、解释和纠错的领域模型”。

训练原则

Prediction Before Generation

在询问模型前,先写下自己的原因判断、方案骨架或失败测试。模型返回后比较差异,才能把“阅读流畅”转换成可修正的认知误差。

训练原则

Evidence After Generation

不以模型解释结束,而以运行证据、源码定位、实验或权威资料结束。记录“为什么错”,比收集更多万能提示词更能积累长期优势。

四周实践路线
  1. 第 1 周|领域地图:选一个正在维护的真实模块,画出业务对象、状态变化、数据所有权、核心调用链与五条不变量。
  2. 第 2 周|预测训练:每天选择一个缺陷或小需求,在使用 AI 前先写原因假设、方案与验证方法,再对比模型输出。
  3. 第 3 周|Agent 控制:把任务拆成探索、方案、实现、测试四个阶段;禁止 Agent 在证据不足时跨阶段推进。
  4. 第 4 周|知识固化:整理高频误判、隐藏约束和有效反馈,转成回归测试、ADR、项目指令与可复用检查表。
需要积累的能力可观察训练产物判断是否进步
领域建模状态图、不变量、边界词汇表能预测改动会影响哪些业务路径
代码库理论调用链、数据流、历史决策记录能用项目事实排除通用但不合适的方案
问题分解阶段任务、依赖与完成条件Agent 失败时能定位是哪一层定义错误
验证设计反例、测试、指标、回滚方案能发现“能运行但不正确”的结果
反馈控制约束型反馈与失败模式日志后续轮次明显减少无效搜索
10

团队实践:既获得速度,也保留专业成长

知识基础设施

让代码库能够教会 Agent

  • 把关键不变量放进测试,而不是只放进文档。
  • 用 ADR 记录“为何如此”,保留被拒绝方案。
  • 为核心模块维护最短调用链与数据所有权说明。
  • 把线上故障模式变成回归样例与评估集。
成长机制

把摩擦转移到高价值位置

  • 减少格式、样板和机械搜索的摩擦。
  • 保留需求澄清、方案预测和失败分析的摩擦。
  • 新成员先写假设与测试,再查看 Agent 方案。
  • 高风险变更要求明确的人类责任人。
团队指标

不要只测生成量

不充分指标更接近真实价值的指标
生成代码行数、Agent 调用次数从需求到稳定上线的周期、返工率、逃逸缺陷
首次运行成功率关键不变量覆盖、恢复与回滚成功率
个人主观提速按任务类型记录的实际完成时间与等待/修正成本
PR 数量变更吞吐、可维护性、团队知识扩散与事故影响
落地判断 成熟的 AI 工程团队不是把更多工作交给模型,而是能更准确地决定:哪些任务交给模型、需要什么上下文、用什么判定器,以及哪一刻必须由人接管。
11

资料来源与延伸阅读

← 返回内容索引