本文作者:meng shao(@shao__meng)。版权归作者所有,未经授权禁止转载。
吴恩达老师「AI 工程技能地图」系列
吴恩达老师在 DeepLearning.AI - Andrew's Letters 连载的五封信「The AI Engineering Skills Map」,现在连载完成。出发点是一个实际问题:AI 让软件开发发生了根本性变化,但在充满炒作和噪音的环境中,开发者很难判断哪些技能真正值得投入学习,团队同样难以判断该招聘什么样的人。
这个技能地图的制作方法值得注意——它不凭个人经验的随笔,是基于三类证据的综合:超过 10,000 条职位发布的大规模分析、数十次与 AI 专家/招聘经理/猎头的结构化访谈、以及问卷调查数据。吴恩达将其类比为“对海量职位与专家访谈数据做聚类”,从中识别当下及近期最重要的技能。
一个重要的术语澄清:他谈的是“AI 工程技能”而非“AI 工程师”这个职位。这个区分类似当年“会用云”与“云工程师”的关系——全栈、数据、DevOps、机器学习工程师,乃至所有与软件打交道的角色,都需要这些技能,而不是只有一个新兴岗位独占。
总纲:四大技能板块及其内在逻辑
第一封信给出了地图的最高层结构,四个板块:
- 构建与部署 AI 应用——理解并驾驭 AI 系统本身
- 软件工程基础——AI 应用的“外壳”依然需要扎实的工程功底
- 使用编程智能体——把编码智能体用出高杠杆
- 塑造构建——决定该构建什么
这四者之间有一条清晰的递进逻辑:**AI 应用本身不可预测(板块一的核心挑战),它被包裹在传统软件系统之中(板块二),这两类系统越来越多地由编程智能体代为编写(板块三),于是人的价值重心从“写代码”上移到“决定写什么、为什么写”(板块四)**。后几封信分别展开了板块一、二、三、四的细节。
贯穿全系列还有一个反复强调的元技能:持续学习。吴恩达特别指出编程智能体“比其他任何顶级 AI 工程技能都演进得快”,因此掌握它不是一次性的学习,是一种持续实验、构建和更新工作流的例行习惯。
板块一:构建与部署 AI 应用
核心命题:AI 应用的输出不可预测。 你无法预知 LLM 会生成什么、模型会做出什么预测,而传统软件的行为是可确定的。这使得 AI 开发比传统开发更具迭代性——你无法完全提前规划,只能构建、观察结果、再决定下一步。第二封信中全系列最重要的一句话是:
“能够熟练决定下一步做什么,让你能基于不可靠的 AI 组件构建可靠的软件系统。”
围绕这个命题,展开为六项技能:
1. LLM 基础。 分词与生成机制、多模态模型的使用时机、上下文窗口内容的取舍、缓存命中、知识截止日期、推理努力水平、采样参数、工具调用——这些决定你能否为任务选对模型(或模型组合),以及何时该用微调、自托管等专门技术。
2. 用数据为模型提供基础。 RAG 是早期做法,如今已大大扩展。关键决策包括:什么放提示词里、什么让模型通过工具按需检索;选择向量索引、知识图谱还是结构化数据之上的语义层;把文本、PDF、HTML、图像转化为模型可用的输入;设计保持数据干净、新鲜的管道。
3. 构建智能体系统。 光谱从“预定义 LLM 调用序列的工作流”到“模型反复自主决定下一步的 agent harness”。需要决定串联哪些步骤、何时并行、何时用代码替代 LLM;设计 agent 循环时的工具(含 MCP、CLI、沙箱)、记忆架构、长会话上下文管理、多智能体编排的取舍;以及从原型到生产所需的护栏、对抗性输入防御、数据外泄风险规避和治理。
4. 评估驱动的开发。 这是吴恩达老师眼中区分高手的最重要特质——能否驱动一个有纪律的“评估/错误分析循环”。它难学,因为正确方法因项目而异、甚至因项目阶段而异。需要会读系统追踪、做探索性数据分析、结合产品与业务判断决定测量什么;知道何时用基于代码的确定性评估、何时用 LLM-as-a-judge、何时引入人工,甚至“评估你的评估”。其价值在于“让进步系统化,而非随机”。
5. 生产环境运维。 不可预测性加上成本与延迟,使 AI 运维不同于传统运维:可观测性、漂移检测、模型故障与安全事件(如提示注入)的快速响应;CI/CD 需要比传统软件更多的统计评估,测试投入应相对错误风险校准;以及通过模型选择、蒸馏微调、工作流简化来优化成本和延迟。
6. 机器学习基础。 吴恩达的观察很直白:“我认识的每一位擅长用 LLM 构建应用的工程师,都在一定程度上理解机器学习和深度学习。”偏差/方差、误差分析、数据工程这些经典概念,仍是驾驭“输出不确定系统”的核心思维框架——毕竟 LLM 本身就建立在监督学习和强化学习之上。
板块二:软件工程基础
这封信回应的是当下最具争议的问题:既然智能体能写所有代码,为什么还要学软件工程? 吴恩达给出两个理由:
- 不懂权衡就无法引导智能体。 缺乏基础的开发者“氛围编程”时,智能体常在延迟、可用性、一致性、可靠性、可维护性、成本等方面做出糟糕的权衡——而开发者甚至不知道这些权衡的存在。掌握基础后,你才能用软件工程的精确语言告诉智能体该优化什么。
- AI 内核需要软件外壳。 AI 能力通常嵌在更大的软件应用中,需要熟练工程师来塑造。
五大基础技能:
- 构建全栈应用。 编码智能体让原本专注单一角色(前端、移动端)的开发者能承担全栈工作:UI 组件、缓存、页面渲染、API 设计、身份认证与状态管理、异步处理、数据持久化、测试、安全、无障碍。
- 管理数据。 数据是地基且相对难改。从访问模式出发决定存什么、存多久;选择关系表/文档/键值/图等模型及基础设施;理解事务与并发;保障隐私与合规;随应用演进而演化数据架构。这里有一个很精彩的观察:“如果数据架构选择不当,AI 不会知道自己不知道什么”——数据管理需要大量人类提供的上下文,必须由既懂数据又懂 AI 工程的人来修正。此外,专为智能体(而非仅为人类)构建数据基础设施是一个快速演进的新领域。
- 设计系统架构。 在理解全栈与数据组件之后才能决定如何组装:平台选择、前后端边界、状态放置、单体还是微服务、技术栈选型(有时需实验验证)。架构是移动目标——快速原型的简单架构未必适合生产,扩展后还要再变。
- 让系统安全且可靠。 测试策略的配比、围绕故障设计(优雅降级、最小化爆炸半径)、“左移”安全(把安全提前到生命周期早期)。AI 工具能扫描漏洞、检查供应链风险、审查云配置,但用好它们仍需安全知识。
- 扩展与生产运维。 SDLC、CI/CD、基础设施即服务;可观测性、告警、事故管理;负载理解、负载均衡、分片/索引/复制;以及版本控制、代码评审、技术债管理等长期维护能力。
结论部分的判断很克制也很明确:部分知识(如死记语法)正在过时,但深度理解软件原理的开发者,表现“远超”不懂原理的氛围编程者。
板块三:使用编程智能体
这是五封中信噪比最高的一封。吴恩达访谈了数十位顶尖 AI 工程师,结合自己团队的经验,总结出一个一致的高层工作流:
规划 → 执行 → 部署与监控
- 规划:头脑风暴(调研、实验、理解现有代码库)→ 编写涵盖需求和架构的规格说明书 → 生成并审查执行计划,审视关键假设、安全性、是否过度工程。
- 执行:在校准过的自主性水平上让智能体构建,通过自动化和/或人工检查验证输出。
- 部署与监控:用 CI/CD 或人工关卡门控部署;再用智能体监视日志、发现问题、提出并执行改进。
两点重要的灵活性问题:各步骤的投入因项目而异——绿地原型的“规格”可能就是一个随手写的 prompt,而有大量用户的棕地项目则需要在规格和验证上投入多得多的工作量;工作流高度迭代,熟练者知道验证失败时如何引导智能体重构修复、监控发现问题时如何让智能体更新系统。
围绕这个工作流的五项技能:
- 引导工作流:决定每一步投入多少人类与智能体精力、何时回退迭代、规格写多细、如何分解为可验证的步骤——本质是速度、成本、技术风险与人力投入之间的权衡。
- 启用智能体自主性:选择自主级别(交互式来回 vs 委托大块工作);管理智能体的上下文,确保关键学习成果和(中途改变的)假设被记录下来供下游智能体使用;并行运行多个智能体并分配人类注意力;设置权限与门控,在快速推进的同时限制泄密、数据丢失等损害。
- 审查工作:设计与任务匹配的测试与验证(行为验证、功能验证、截图取证、评估集、LLM-as-a-judge);决定多少测试自动化;用智能体式代码审查和 AI 安全审计,不够时审慎插入人工审查;验证部署并落实监控。
- 定制智能体及其环境:集成技能、插件、MCP 服务器,并在它们过时后修剪;用 hooks 自动化可重复流程;维护 AGENTS.md/CLAUDE.md 等常驻上下文(代码库信息、架构假设、代码风格、数据访问模式);跨会话和并行智能体保持状态、通过事后复盘积累经验;建立一致的约定让代码库对智能体可导航;偶尔清理智能体产生的债务。
- 编程智能体基础:理解智能体如何做代码库检索、管理上下文窗口、与子智能体交互、如何在 LLM 外包裹框架而成——让智能体不再是黑盒,从而识别失败模式(过度工程化、缺乏显式验证、未达目标就提前停止、有损毁生产数据的风险),推理智能体状态,在它偏离轨道时及时干预。
这封信最有价值的一段是对社交媒体叙事的直接批评:让智能体自主运行数小时、烧掉数千万 token 的做法“有时确实有用”,但其长时程任务的实际效用——尤其相对于成本——“被夸大到了超出现实的程度”。最有效的用法是复杂、高度迭代的过程,高技能的判断性干预带来好得多的结果。
板块四:塑造构建
最后一封信完成逻辑闭环。当智能体在给定清晰规格后能交付得越来越好,工程师的核心价值就上移到决定规格里应该有什么。
背景是角色界限的模糊:过去 PM 和设计师定方向、开发者实现、项目经理推进时间线;如今这些角色正在融合——开发者参与产品决策,PM 和设计师也在获得工程能力。掌握塑造构建能力的开发者不必等待 PM 决定方向,开发速度因此大幅提升。
四项技能:
- 驱动构建循环:写代码→获反馈→定下一步的循环中持续决策,保持“行动偏好”——何时做快速原型验证技术概念、何时构建 MVP 向用户展示价值、何时投入企业级系统;何时找用户反馈、何时做技术实验;综合产品愿景、项目阶段、可行性、风险、预算做判断;成熟项目还要会定义关键指标并管理推进。
- 做出产品决策:不必成为 PM,但要能做规格未覆盖的决策、在无规格时自己制定规格;具备产品直觉、基本设计感(做出令人愉悦而非仅仅可用的产品)、基本商业意识(GTM、市场规模、单位经济、损益);所有产品决策根植于用户同理心,并持续磨砺——从 2-3 位用户的快速访谈到大规模 A/B 测试和用户行为分析。
- 沟通与领导:AI 工程能力让你能影响工程之外的职能——市场、财务、法务;通过协调利益相关者推进项目;在组织中许多人还在试图理解 AI 时,你处于解释“什么技术上可行”的独特位置,可以引领整个组织的认知。
- 高度主动的所有权:许多人(包括高管)尚不了解 AI 能做什么,不知道什么是好的项目方向——这正是技术者的机会。核心做法是“发现问题、提出方案并执行”,尊重组织优先级但不等待自上而下的精确指令;端到端拥有项目,在模糊中行动、在挫折中坚持,衡量标准是创造的价值而非任务完成度。
读完后的一点感受
AI 改变了工作中“哪些环节需要人”,但没有改变“需要什么样的人”——恰恰相反,它对人的判断力、工程根基和产品思维的要求更高了。四大板块的递进关系(驾驭不可预测的系统 → 打好工程外壳 → 用好智能体杠杆 → 上移到产品决策)构成了一个自洽的完整框架,而且每封信都强调同一件事:所有技能都建立在对底层原理的理解之上。
几处特别值得记住的判断:
- “基于不可靠的 AI 组件构建可靠的软件系统”是整个 AI 应用工程的核心矛盾,而 evals/错误分析循环是解决这个矛盾的第一技能;
- 数据管理中“AI 不会知道自己不知道什么”——人类提供的上下文成为新的稀缺品;
- 对长时程自主智能体的祛魅——实际效用被社交媒体放大了,高效用法是迭代式的、带人工干预的;
- “塑造构建”不是越权,是角色融合时代对工程师的自然扩展。
如果要用一句话概括这个系列的精神,那就是它的结束语与开篇之间的呼应:在代码越来越多地由智能体编写的时代,工程师的价值不在于“实现别人规划好的产品”,在于决定构建什么,并有能力对结果负责——这需要的不是更少的技能,是一个横跨 AI、软件工程、产品与商业的更大技能集。