正在加载文章内容,请稍候。
正在加载文章内容,请稍候。
吴恩达将编码智能体的使用拆为规划、执行、部署与监控的迭代过程,并提出流程引导、自主授权、工作审查、环境定制和原理理解五项能力,说明如何在生产力与风险之间做判断。

精准输入
✍️ 写下你的想法,自由记录即可。如果没有灵感,试着回答上方的费曼输出问题。
登录后可保存笔记、高亮、划线和批注。
当编码智能体越来越能独立执行任务,工程师需要掌握的能力也随之变化。吴恩达(Andrew Ng)结合对数十位 AI 工程师的访谈和团队实践,讨论怎样引导智能体完成软件开发,以及什么时候仍需要人的判断。
一项关键的 AI 工程技能是使用编码智能体。你引导它们编写代码、执行非编码任务——例如分析数据或管理系统运维——的能力,能让你完成更多工作。
编码智能体演进很快,这意味着这项技能也在快速变化,速度比其他顶层 AI 工程技能更快。专有智能体(如 Claude Code、Codex 和 Cursor)与开放智能体(如 OpenCode 和 Pi)都在通过运行框架和模型的改进大步前进。因此,要跟上编码智能体的使用方法,就需要持续地实验、构建和学习。
在访谈数十位顶尖 AI 工程师,并回顾我们团队使用编码智能体的方式后,我们发现,用它们构建软件时存在一套一致的高层工作流程。关键步骤是:
这套高层流程与编码智能体出现之前通常使用的软件开发流程相似。如今,我们对代码本身的关注少了很多,更多精力放在决定构建什么、设计架构、撰写规格说明和验证输出上。
每一步持续多久,会因项目而显著不同,也可以省略某些步骤。例如,一个从零开始的原型项目,其规格可能只是在一段快速写出的提示词中粗略描述;而一个已有大量用户的存量项目,其规格则可能需要投入更多精力来编写和核实。此外,这个流程高度迭代,熟练的开发者知道,什么时候应该根据后续步骤的反馈回到前面的步骤。例如,验证失败时,他们知道怎样引导智能体重新构建并修复错误;监控发现问题时,他们知道怎样让智能体更新系统并重新部署。
要在这套流程中有效使用编码智能体,关键技能包括:

引导工作流程。 你知道怎样推进上述流程的每一步。这涉及决定每一步投入多少人工、多少智能体工作,以及什么时候返回前面的步骤进行迭代。它要求你深入理解速度、成本、技术风险和人工投入之间的取舍,从而决定:事先研究和规划到什么程度,什么时候由人继续负责关键工作,如何选择架构,在规格说明等规划材料中写入多少细节,以及如何把工作拆成可以验证的步骤。
赋予智能体自主性。 把编码智能体用于流程中的各个步骤时,你需要选择自主程度:是盯着它、来回互动,还是把更大的一块工作委派给它?什么时候应该设定明确目标,让它循环执行直到成功?此外,你必须认真管理智能体的上下文。随着构建进入不同阶段,你要判断何时确保关键心得、用户反馈和假设——包括构建中途发生变化的假设——被记录下来,供智能体在后续使用。你还要决定什么时候把任务拆开,安排多个智能体并行工作,由人或上层智能体协调它们,以及如何在并发的智能体会话之间分配人的注意力。你也知道怎样安全运行智能体:恰当设置权限和操作关卡,让开发快速推进,同时限制泄密、数据丢失或其他损害的风险。
审查工作。 编码智能体的输出是不确定的。我们无法提前知道,它会想出什么好主意,又会写出什么错误。审查和验证输出,是确保获得所需结果、并在结果不符时重新引导智能体的关键步骤。你会设计与任务相匹配的测试和验证,按需开展行为验证和功能验证。你也可能测试用户流程,或许让智能体提供截图,作为成功或失败的证据。对于定性或行为评估,可以使用评估集,也可以借助 LLM 充当评审。
你还需要决定,这些测试有多少应该自动化。有些工作流程会将所有测试和验证完全自动化,让智能体能够检查自己的工作,并知道自己何时成功完成了任务。你必须评估这些测试,确保它们符合你的目标;不符合时,就要调整它们。此外,你会使用智能体代码审查,并开展 AI 辅助的安全与架构审计。当 AI 审查不足以胜任时,你会审慎地加入对代码行为的人工审查(少数时候也直接审查代码),同时探索如何进一步自动化这些审查。最后,你会验证部署,并让智能体参与实际的监控和事故管理。
定制智能体及其环境。 你能同时更新智能体及其工作环境,这会让智能体高效获取所需上下文、访问工具,并正确、高效地构建。你知道怎样集成智能体技能、插件和 MCP 服务器。偶尔,当它们不再必要时,你会精简它们,例如新模型使旧技能失去必要性时。你可以使用钩子自动完成开发流程中可重复的部分,例如触发自动代码审查或 CI/CD 流水线。你也可以维护智能体的工作环境:更新 AGENTS.md 或 CLAUDE.md 等常驻上下文,记录代码库信息、关键架构假设、代码风格和数据访问模式。你知道怎样跨多个会话、跨并行智能体保存状态,怎样随时间积累智能体的经验,例如在运行后复盘,记录哪些做法有效、哪些无效。你也知道怎样建立一致的约定和结构,让智能体容易理解和查找代码库内容,以及如何偶尔清理智能体产生的技术债务。在团队中工作时,你还会考虑如何协调不同开发者的智能体所使用的上下文。
编码智能体基础原理。 最后,为了在全过程中作出良好决策,你需要充分理解编码智能体如何工作:怎样搜索和检索代码库,怎样管理上下文窗口,不同操作(如添加工具调用、MCP 服务器等)怎样影响上下文,智能体与子智能体怎样交互,以及如何在 LLM 外包上一层运行框架,构成一个智能体。这会让智能体不再那么像黑箱,帮助你识别失败模式,例如对简单方案过度设计、因为缺乏明确的验证流程而失去严谨性、尚未达成目标就停止,或执行可能破坏文件及生产数据的操作。这也能帮助你推断智能体的状态,通过提供合适的处理指示或上下文来引导它。在监看一次运行时,这种理解还能让你更容易发现智能体何时偏离轨道,需要你介入。
我发现,社交媒体经常把编码智能体的使用描述得过于简单。例如,让智能体自主运行数小时、消耗数百万乃至数千万 token,有时确实有用。但目前,超长周期任务的实际效用——尤其是相对于其成本而言——被夸大了。相比之下,大多数有效的编码智能体使用,是一个复杂且高度迭代的过程;能够凭借熟练的判断介入,会带来好得多的结果。
你使用编码智能体的技能,会让你成为高效的构建者。这也使你具备主导整体构建的条件。我会在未来的文章中进一步讨论这一点。
吴恩达先说明编码智能体技能为何需要持续更新,再从规划、执行、部署与监控还原软件开发流程,强调各步骤投入可变且必须反复迭代。在这一流程上,他依次展开引导、授权、审查、定制和基础原理五项能力:它们共同决定人如何分配工作、提供上下文、识别风险并验证结果。结尾回到对长时间自主运行的评价,指出有效使用依赖高质量判断与及时介入,并由此引向主导整体构建的下一层能力。
费曼输出