在 AI 工程快速演进的今天,单纯会写代码已经不够了。
真正拉开差距的,是你能不能驾驭好那些越来越强大的「编码智能体」(Coding Agents)。

吴恩达(Andrew Ng)最近分享了他访谈数十位顶尖 AI 工程师后的深度观察:如何规划、执行、部署,以及在高度迭代的过程中真正发挥智能体的价值。这篇文章系统梳理了从「规划 → 执行 → 部署监控」的完整工作流,以及五大致命技能。

无论你是刚开始用 Claude Code、Cursor,还是已经在日常开发中深度依赖智能体,这篇文章都值得反复阅读。

下面,我们一起来看吴恩达的完整思考:在这里插入图片描述


使用编码智能体(coding agents)是一项关键的 AI 工程技能。你引导它们编写代码以及执行非代码任务(例如分析数据或管理系统操作)的能力,能让你完成更多工作。

编码智能体的快速演进意味着这项技能本身也在迅速演变——比其他顶级 AI 工程技能更快。专有智能体(如 Claude Code、Codex 和 Cursor)以及开源智能体(如 OpenCode 和 Pi)通过工具链(harness)和模型的双重改进大步前进。因此,跟上如何使用编码智能体需要持续的实验、构建与学习过程。

在采访了数十位顶尖 AI 工程师并反思我们自己团队对编码智能体的使用后,我们发现了一个一致的高层工作流,用于与它们一起构建软件。关键步骤是:

  • 规划(Planning)。这包括(i)头脑风暴,可能涉及研究、实验以及对现有代码库(如果有的话)的理解,以及(ii)撰写规格说明(spec),捕捉需求、技术设计与架构,然后生成执行计划。你可能还会审查该计划,以质疑关键假设并检查安全性、过度工程化以及其他缺口。

  • 执行(Execution),在这里你进行构建、测试和验证,并在智能体自主性与人类监督之间取得恰当平衡。这涉及(i)让智能体构建软件,并设定校准过的自主程度,以及(ii)通过自动化和/或人工检查来验证其输出。

  • 部署与监控(Deployment and monitoring),在此你(i)进行部署,可能通过 CI/CD 流水线或其他人工关卡进行把关,以及(ii)使用智能体监控日志、发现问题,并提出并执行改进。

这个高层工作流与在编码智能体出现之前通常用于构建软件的流程相似。现在,我们不再那么关注代码本身,而是更关注决定构建什么、设计架构、撰写规格说明以及验证输出。

每个步骤的持续时间在不同项目间可能差异很大,有些步骤也可以省略。例如,对于从零开始(greenfield)的原型,规格说明可能只是在一个快速写就的提示中松散描述;而对于已有大量用户的存量(brownfield)项目,规格说明可能需要投入更多精力去撰写和验证。此外,这个工作流高度迭代,熟练的开发者知道何时应从后续步骤的反馈返回到前面的步骤。例如,如果验证失败,他们知道如何引导智能体重新构建并修复错误;或者如果监控发现问题,如何让智能体更新系统并重新部署。

要在这个工作流中有效使用编码智能体,关键技能包括:

  • 引导工作流(Directing the workflow)
  • 启用智能体自主性(Enabling agent autonomy)
  • 审查工作成果(Reviewing the work)
  • 定制智能体及其环境(Customizing the agent and its environment)
  • 编码智能体基础(Coding agent foundations)

引导工作流。你知道如何导航上述工作流的每一步。这涉及决定在每一步投入多少人类努力和多少智能体努力,以及何时返回到更早的步骤进行迭代。它要求你深刻理解速度、成本、技术风险与人类努力之间的权衡,以便决定前期需要多少研究和规划、何时保留对关键工作的人类所有权、如何选择架构、在规划产物(如规格说明)中写入多少细节,以及如何将工作分解为可验证的步骤。

启用智能体自主性。在将编码智能体应用到工作流的各步骤时,你选择自主程度:是观察它并进行来回交互,还是把更大一块工作委托给它?以及何时设定明确目标并让它循环运行直到成功?此外,你必须仔细管理智能体的上下文。

随着构建进入不同阶段,你会校准何时确保关键学习、用户反馈和假设(包括构建过程中途改变的假设)被捕捉下来供智能体下游使用。此外,你还会决定何时设置多个智能体并行运行在任务分解上——要么由人类或更高层智能体来编排这些其他智能体——以及如何在并发智能体会话中管理人类注意力。你也知道如何安全地运行智能体,设置权限并对操作进行适当把关,让开发快速推进,同时限制泄漏、数据丢失或其他损害的风险。

审查工作成果。编码智能体的输出是不确定的。我们事先不知道它可能提出什么好主意,也不知道它会实现什么 bug。审查和验证输出是确保你得到想要结果并在需要时重新引导智能体的关键步骤。你会设计与任务匹配的测试和验证,根据需要应用行为验证和功能验证。你可能还会测试用户流程,或许让智能体提供截图作为成功或失败的证据。对于定性/行为评估,可以使用评估集(eval sets),或许配合 LLM-as-a-judge。

你还需要决定这些测试中有多少应该自动化。有些工作流会让所有测试和验证完全自动化,以便智能体能检查自己的工作并知道何时成功完成了任务。你必须评估这些测试以确保它们符合你的目标,如果不符合就演进它们。此外,你使用智能体代码审查并运行 AI 驱动的安全与架构审计。当 AI 审查不够时,你会审慎地插入对代码行为(以及偶尔对代码本身)的人工审查,同时探索如何进一步自动化这种审查。最后,你验证部署,并能用智能体将监控和事件管理操作化。

定制智能体及其环境。你更新智能体及其工作环境的能力,能让智能体高效获取所需上下文、访问工具,并正确高效地构建。你知道如何集成智能体技能、插件和 MCP 服务器。偶尔当它们不再必要时(例如新模型使旧技能变得多余时),你会进行修剪。你可以使用钩子(hooks)来自动化开发过程中可重复的部分,例如触发自动化代码审查或 CI/CD 流水线。你也可以维护智能体的工作环境:用代码库信息、关键架构假设、代码风格和数据访问模式更新常驻上下文(例如 AGENTS.md 或 CLAUDE.md)。

你知道如何在多个会话和并行智能体之间保留状态,并随时间积累智能体的学习,或许通过运行事后回顾来捕捉哪些有效、哪些无效。你还知道如何建立一致的约定和结构,使代码库对智能体可导航,以及如何偶尔清理智能体产生的债务。在团队中工作时,你会考虑如何在不同开发者的智能体之间协调上下文。

编码智能体基础。最后,为了在整个过程中做出良好决策,你需要很好地理解编码智能体是如何工作的:它们如何进行代码库搜索/检索、如何管理上下文窗口、不同操作(如添加工具调用、MCP 服务器等)如何影响上下文、智能体与子智能体如何交互,以及智能体是如何通过在 LLM 外包装一个工具链(harness)构建起来的。这使智能体不那么像黑箱,并帮助你识别失败模式,例如对简单方案过度工程化、因缺乏明确验证过程而失去严谨性、未达到目标就停止,或可能破坏文件或生产数据的智能体操作。它也帮助你推理智能体的状态,并通过给予正确的处方或上下文来引导它。在监控一次运行时,这种理解能让你更好地发现智能体何时偏离轨道并需要你干预。

我发现社交媒体经常对如何使用编码智能体给出过于简化的描述。例如,有时让智能体自主运行数小时并消耗数百万或数千万 token 是有用的。但目前超长时程任务的实际效用——尤其是相对于其成本——被夸大到超出了现实。相反,最有效的编码智能体使用是一个复杂、高度迭代的过程,而能够以高技能判断进行干预会带来好得多的结果。

你使用编码智能体的技能将使你成为高效的构建者。这让你也能引导整体构建。我将在下周的信中进一步谈这个话题。


编码智能体正在把软件开发从「写代码」变成「指挥与验证」。
真正稀缺的,不再是敲键盘的速度,而是你对工作流的把控力、对自主程度的判断力,以及对结果的审查能力。

正如吴恩达所说:有效使用编码智能体,是一个复杂且高度迭代的过程。能在关键节点以高技能进行干预的人,才会真正拉开差距。

建议你现在就打开你常用的编码智能体,挑一个真实项目,按照文中的工作流完整走一遍。多实验、多复盘,这项技能会随着你的实践快速进化。

欢迎把这篇文章转发给正在用 AI 写代码的朋友。
参考来源:https://x.com/AndrewYNg/status/2095890279865721217

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐