AI Engineering Skills Map 系列之「使用 Coding Agent」 吴恩达老师的 AI 工程技能图谱第三篇详细展开: 1. 构建与部署 AI 应用 2. 软件工程基础...
meng shao(@shao__meng) · 人工智能
AI Engineering Skills Map 系列之「使用 Coding Agent」 吴恩达老师的 AI 工程技能图谱第三篇详细展开: 1. 构建与部署 AI 应用 2. 软件工程基础 3. 使用 Coding Agent(本文主题) 4. 塑造构建方向 吴恩达老师认为:使用 Coding Agent 正在成为 AI 工程师的关键能力,而且它的演进速度比其他顶层技能都快,因为 Agent 本身在 harness 和模型两个层面同时快速迭代。因此,这项技能没有终态,只能靠持续的实验、构建和学习来维持。 # 用 Coding Agent 构建软件的通用工作流 通过访谈数十位顶尖 AI 工程师并复盘自己团队的实践,他归纳出一个一致的高层工作流,分三步: 1. 规划(Planning) 包含两部分:一是头脑风暴,可能涉及研究、实验、理解已有代码库;二是写 spec(规格说明),涵盖需求、技术设计、架构,随后生成执行计划。规划完成后还应审视计划本身:质疑关键假设,检查安全性、过度设计等问题。 2. 执行(Execution) 构建、测试、验证,关键在于把握智能体自主性与人工监督之间的平衡。一是让智能体以"校准过的自主程度"去构建;二是通过自动化和/或人工检查来验证输出。 3. 部署与监控(Deployment and monitoring) 部署可能经由 CI/CD 流水线或额外的人工关卡把关;随后用智能体观察日志、发现问题、提出并执行改进。 这个工作流有两个特别注意: 1. 它与前智能体时代的软件开发流程本质相似。真正变化的是注意力的重心:从写代码转移到决定做什么、设计架构、写 spec、验证输出。 2. 各步骤的时长弹性极大,可以省略。greenfield(从零开始)原型的 spec 可能只是一条快速写下的提示词;而有大量用户的 brownfield(存量)项目的 spec 则需要投入大量精力去撰写和验证。整个流程高度迭代,熟练的开发者知道何时该从后面的步骤退回前面:验证失败就引导智能体重建修复;监控发现问题就让智能体更新系统并重新部署。 # 五项关键技能 1. 指挥工作流(Directing the workflow) 知道如何走完上述每一步,并决定每一步投入多少人力、多少智能体算力,以及何时回退迭代。这背后是对速度、成本、技术风险、人力投入四者权衡的深刻理解,具体体现在:前期研究和规划做到什么程度、哪些关键工作保留人类所有权、如何选择架构、规划产物(如 spec)写多细、如何把工作拆解成可验证的步骤。 2. 赋予智能体自主性(Enabling agent autonomy) 这一节内容最密集,可拆成四个决策点: · 自主程度:盯着它交互式往返,还是委托一大块工作?何时设定明确目标让它循环直到成功? · 上下文管理:构建过程会经历不同阶段,要判断何时把关键经验、用户反馈、假设(包括中途变化的假设)记录下来供智能体下游使用。 · 并行化:何时把任务拆解后让多个智能体并行,由人或更高层的智能体来编排;以及如何在多个并发会话之间分配人的注意力。 · 安全运行:设置权限、对高风险动作设关卡,在保持开发速度的同时限制泄露、数据丢失等损害。 3. 审查工作成果(Reviewing the work) 出发点是一个基本事实:智能体的输出是不确定的。我们事先不知道它会想出什么好主意,也不知道它会埋下什么 bug。因此审查和验证是拿到想要结果、并在偏离时纠正的关键环节。 具体手段包括: · 设计与任务匹配的测试和验证,按需结合行为验证和功能验证。 · 测试用户流程,可让智能体提供截图作为成功或失败的证据。 · 对定性/行为性评估,可使用评估集(eval sets),可能配合 LLM-as-a-judge。 · 决定测试的自动化程度。某些工作流会把测试完全自动化,让智能体能自行检查、自知何时完成。但必须评估这些测试是否真正对应你的目标,不对应就要演进它们。 · 使用智能体代码审查,运行 AI 驱动的安全和架构审计。 · AI 审查不够时,审慎地插入人工审查——主要审查代码行为,较少审查代码本身——同时探索进一步自动化的可能。 · 验证部署,并用智能体把监控和事故管理运营起来。 这里有一个值得注意的判断:人工审查的对象主要是"代码行为"而非"代码",这反映了注意力重心的转移。 4. 定制智能体及其环境(Customizing the agent and its environment) 目标是让智能体高效获取所需上下文、访问工具、正确高效地构建。具体包括: · 集成 skills、插件、MCP 服务器,并在不再必要时(如新模型让旧 skill 过时)剪除它们。 · 用 hooks 自动化开发流程中可重复的部分,如触发自动代码审查或 CI/CD。