吴恩达AI Engineering Skills Map: Using coding agents
A key AI engineering skill is using coding agents. Your skill at steering them both to write code and to carry out non-code tasks, such as analyzing data or managing system operations, allows you to get a lot more done.
人工智能工程的一项关键技能是使用编码智能体。你若能熟练地引导它们编写代码并执行非代码任务(例如分析数据或管理系统操作),就能完成更多工作。
The rapid pace of evolution for coding agents means this skill, too, is evolving rapidly — faster than other top-level AI engineering skills. Proprietary agents (like Claude Code, Codex, and Cursor) and open agents (like OpenCode and Pi) progress in strides via both harness and model improvements. So keeping up with how to use coding agents requires a continuous process of experimentation, building, and learning.
编码智能体的快速发展意味着这项技能也在飞速发展——甚至比其他顶级人工智能工程技能的发展速度更快。专有智能体(例如 Claude Code、Codex 和 Cursor)和开源智能体(例如 OpenCode 和 Pi)都通过框架和模型的改进而突飞猛进。因此,要掌握编码智能体的使用方法,就需要不断地进行实验、构建和学习。
In interviewing dozens of top AI Engineers and reflecting on our own team’s use of coding agents, we found a consistent high-level workflow for building software with them. The key steps are:
通过采访数十位顶尖人工智能工程师,并反思我们团队使用编码智能体的经验,我们发现了一套使用编码智能体构建软件的统一的高级工作流程。关键步骤如下:
- Planning. This includes (i) brainstorming, which may include research, experimentation, and understanding the existing codebase (if any) and (ii) writing a spec that captures requirements, technical design, and architecture, followed by generating an execution plan. You might also review the plan to interrogate key assumptions and check for security, overengineering, and other gaps.
规划。 这包括:(i) 头脑风暴,其中可能包括研究、实验以及了解现有代码库(如有);(ii) 编写规范,明确需求、技术设计和架构,然后制定执行计划。您可能还需要审查该计划,以检验关键假设,并检查是否存在安全漏洞、过度设计或其他缺陷。 - Execution, where you build, test, and verify, with the right balance between agent autonomy and human oversight. This involves (i) having the agent build the software, with a calibrated level of agent autonomy and (ii) verifying its output via automated and/or human checks.
执行阶段 ,即构建、测试和验证阶段,需要在智能体自主性和人工监督之间取得适当的平衡。这包括:(i) 让智能体构建软件,并设定一个经过校准的智能体自主性级别;(ii) 通过自动化和/或人工检查来验证其输出。 - Deployment and monitoring, in which you (i) deploy, perhaps gated with a CI/CD pipeline or additional human gates, and (ii) use agents to watch logs, surface issues, and propose and execute improvements.
部署和监控 ,其中 (i) 进行部署,可能通过 CI/CD 管道或额外的人工关卡进行控制,以及 (ii) 使用智能体来监视日志、发现问题并提出和执行改进。
This high-level workflow is similar to the one typically used to build software before coding agents. Now, we focus much less on code and instead focus on deciding what to build, designing the architecture, writing the spec, and verifying outputs.
这种高级工作流程类似于在编写智能体程序代码之前通常用于构建软件的工作流程。现在,我们不再那么关注代码本身,而是专注于决定构建什么、设计架构、编写规范以及验证输出。
The duration of each step can vary significantly between projects, and steps can be omitted. For example, the spec for a greenfield (meaning built-from-scratch) prototype might be loosely described in a quickly written prompt, whereas the spec for a brownfield (pre-existing) project with many users might require much more effort to write and verify. Further, the workflow is highly iterative, and skilled developers know when feedback from a later step should lead them back to an earlier one. For example, if verification fails, they know how to steer the agent to rebuild and fix errors; or if monitoring surfaces issues, how to have agents update the system and redeploy.
每个步骤的耗时在不同项目中可能差异很大,而且某些步骤可能会被省略。例如,一个全新(从零开始构建)的原型项目的规范可能只需快速编写一个简要说明即可,而一个拥有众多用户的现有(已存在)项目的规范则可能需要花费更多精力来编写和验证。此外,工作流程是高度迭代的,经验丰富的开发人员知道何时应该根据后续步骤的反馈返回到之前的步骤。例如,如果验证失败,他们知道如何引导智能体程序重建并修复错误;或者如果监控发现问题,他们知道如何让智能体程序更新系统并重新部署。
To use coding agents effectively in this workflow, the key skills are:
要在此工作流程中有效使用编码智能体,关键技能包括:
- Directing the workflow
指导工作流程 - Enabling agent autonomy
实现智能体自主性 - Reviewing the work
审阅工作 - Customizing the agent and its environment
自定义智能体及其环境 - Coding agent foundations
编码智能体基础
Directing the workflow. You know how to navigate each step of the workflow above. This involves deciding how much human and how much agent effort to spend on each and when to go back to an earlier step to iterate. It requires deeply understanding the tradeoffs of speed, cost, technical risk, and human effort, so you can decide how much to research and plan up front, when to retain human ownership over critical work, how to choose the architecture, how much detail to write into a set of planning artifacts (like a spec), and how to decompose the work into verifiable steps.
指导工作流程 。您已经了解如何操作上述工作流程的每个步骤。这包括决定在每个步骤中投入多少人力和多少智能体资源,以及何时返回到之前的步骤进行迭代。这需要您深刻理解速度、成本、技术风险和人力投入之间的权衡,以便您能够决定前期需要进行多少研究和规划,何时需要保留对关键工作的人工控制权,如何选择架构,在规划文档(例如规范)中写入多少细节,以及如何将工作分解为可验证的步骤。
Enabling agent autonomy. When applying a coding agent to the steps in the workflow, you choose the autonomy level: Do you watch it and go back-and-forth interactively or delegate a larger chunk of work to it? And when do you set a clear goal and have it loop until it succeeds? Additionally, you have to manage the context carefully for the agent. As the build proceeds through different phases, you will calibrate when to make sure key learnings, user feedback, and assumptions — including assumptions that changed partway through the build — are captured for the agent to use downstream. Additionally, you will decide when to set up many agents to run in parallel on a decomposition of the task — either by having a human or a higher-level agent orchestrate these other agents — and how to manage human attention across concurrent agent sessions. You also know how to run agents safely, setting permissions and gating actions appropriately to let development proceed quickly while limiting the risk of leaks, data loss, or other damage.
启用智能体自主性 。在工作流程中应用编码智能体时,您需要选择自主级别:是实时监控并进行交互式交互,还是将大部分工作委托给它?何时设定明确的目标并让它循环执行直至成功?此外,您还需要谨慎管理智能体的上下文。随着构建过程进入不同的阶段,您需要调整时机,确保关键经验、用户反馈和假设(包括构建过程中发生变化的假设)都被捕获,供智能体在后续步骤中使用。此外,您还需要决定何时设置多个智能体并行运行任务分解部分——可以通过人工或更高级别的智能体来协调这些智能体——以及如何在并发智能体会话之间管理人工注意力。您还需要知道如何安全地运行智能体,通过适当设置权限和限制操作,在保证开发快速进行的同时,最大限度地降低数据泄露、丢失或其他损害的风险。
Reviewing the work. The output of a coding agent is uncertain. We don’t know in advance what good ideas it might come up with and what bugs it will implement. Reviewing and verifying the output is a key step to ensure you are getting the result you want and to redirect the agent if not. You will design testing and validation that is matched to the task, applying both behavioral and functional verification as needed. You might also test user flows, perhaps having an agent provide screenshots as evidence of success or failure. For qualitative/behavioral evaluation, eval sets, perhaps with LLM-as-a-judge, can be used.
审查工作 。编码智能体的输出结果具有不确定性。我们事先无法预知它会提出哪些好想法,也无法预知它会实现哪些错误。审查和验证输出结果至关重要,它可以确保你获得想要的结果,并在结果不符合预期时引导智能体。你需要设计与任务相匹配的测试和验证方案,并根据需要应用行为验证和功能验证。你还可以测试用户流程,例如让智能体提供屏幕截图作为成功或失败的证据。对于定性/行为评估,可以使用评估集,或许可以引入 LLM 作为评判者。
You also need to decide how much of these tests should be automated. Some workflows will have all testing and validation fully automated so the agent can check its work and know when it has succeeded in completing a task. You have to evaluate the tests to ensure they correspond to your aims, and you will evolve them if not. Additionally, you use agentic code review and run AI-enabled security and architecture audits. When AI review isn’t sufficient, you judiciously insert human reviews of the code behavior (and, infrequently, of code as well) while exploring how to automate this review further. Finally, you verify deployment and can operationalize monitoring and incident management with agents.
您还需要决定这些测试中有多少应该自动化。某些工作流程会将所有测试和验证完全自动化,以便智能体可以检查其工作并了解何时成功完成任务。您必须评估这些测试,以确保它们符合您的目标,如果不符合,则需要进行改进。此外,您还可以使用智能体代码审查并运行 AI 支持的安全性和架构审计。当 AI 审查不足以满足需求时,您可以谨慎地插入人工代码行为审查(偶尔也包括代码本身的审查),同时探索如何进一步自动化此审查。最后,您可以验证部署情况,并利用智能体实现监控和事件管理。
Customizing the agent and its environment. Your ability to update both the agent and the environment it works in allows your agents to efficiently get the context they need, access tools, and build correctly and efficiently. You know how to integrate agent skills, plugins, and MCP servers. Occasionally you will prune them when they are no longer necessary (such as when a new model obviates an old skill). You can use hooks to automate repeatable parts of the development process, like triggering automated code reviews or CI/CD pipelines. You can also maintain the environment the agent works in: updating the standing context (such as AGENTS.md or CLAUDE.md) with information on the codebase, key architectural assumptions, code style, and data access patterns. You know how to preserve state across multiple sessions and across parallel agents, and accumulate agent learnings over time, perhaps by running post-run retrospectives to capture what did and did not work. You also know how to set up consistent conventions and structure to make your codebase navigable to the agent, and how to occasionally clear out agent-generated debt. When you work in a team, you consider how to coordinate context across different developers’ agents.
自定义智能体及其环境 。您能够更新智能体及其运行环境,从而使智能体能够高效地获取所需上下文、访问工具并正确高效地构建。您了解如何集成智能体技能、插件和 MCP 服务器。有时,当它们不再必要时(例如,当新模型取代旧技能时),您会对其进行清理。您可以使用钩子来自动化开发过程中可重复的部分,例如触发自动化代码审查或 CI/CD 流水线。您还可以维护智能体的运行环境:使用代码库信息、关键架构假设、代码风格和数据访问模式更新现有上下文(例如 AGENTS.md 或 CLAUDE.md)。您知道如何在多个会话和并行智能体之间保持状态,并随着时间的推移积累智能体学习成果,例如通过运行后回顾来记录哪些有效哪些无效。您也知道如何建立一致的约定和结构,使智能体能够轻松浏览您的代码库,以及如何定期清理智能体生成的代码债务。在团队协作中,您需要考虑如何协调不同开发人员智能体之间的上下文。
Coding agent foundations. Finally, to make good decisions throughout, you have a good understanding of how coding agents work: how they carry out codebase search/retrieval, how they manage their context windows, how different operations (like adding tool calls, MCP servers, etc.) affect context, how agents and subagents interact, and how the agent is built by wrapping a harness around an LLM. This makes the agent less of a black box and helps you to recognize failure modes, such as overengineering a simple solution, losing rigor because the agent lacks an explicit verification process, stopping short of the goal, or agent actions that risk destruction of files or production data. It also helps you reason about the agent’s state and steer it by giving it the right prescription or context. And when monitoring a run, this understanding allows you to better spot when the agent goes off-track and requires your intervention.
编码智能体基础 。最后,为了在整个过程中做出正确的决策,您需要充分了解编码智能体的工作原理:它们如何执行代码库搜索/检索,如何管理上下文窗口,不同的操作(例如添加工具调用、MCP 服务器等)如何影响上下文,智能体和子智能体如何交互,以及如何通过在 LLM 周围封装框架来构建智能体。这使得智能体不再是一个黑盒,并有助于您识别故障模式,例如对简单的解决方案进行过度设计、由于智能体缺乏显式验证过程而导致的严谨性下降、未能达到目标,或者智能体操作可能导致文件或生产数据损坏。它还有助于您推断智能体的状态,并通过提供正确的指令或上下文来引导它。在监控运行时,这种理解使您能够更好地发现智能体何时偏离轨道并需要您的干预。
I find that social media often gives oversimplified descriptions of how to use coding agents. For example, it is sometimes useful to get agents to run autonomously for hours and burn millions or tens of millions of tokens. But currently the practical utility of very long-horizon tasks — especially relative to their cost — has been amplified beyond reality. Instead, most effective coding agent use is a complex, highly iterative process, and being able to intervene with high-skill judgement gives much better results.
我发现社交媒体上对如何使用编码智能体的描述往往过于简单化。例如,让智能体自主运行数小时并销毁数百万甚至数千万个代币有时确实很有用。但目前,超长周期任务的实际效用——尤其是相对于其成本而言——被过分夸大了。实际上,最有效的编码智能体使用是一个复杂且高度迭代的过程,而能够运用高超的判断力进行干预则能带来更好的结果。
Your skill at using coding agents will make you an effective builder. This positions you to also steer the overall build. I will say more about this in a future article.
你运用编码智能体的技能将使你成为一名高效的构建者。这让你能够更好地掌控整个构建过程。我将在以后的文章中详细阐述这一点。

浙公网安备 33010602011771号