
一项关键的 AI 工程技能是使用编码智能体。你驾驭它们编写代码以及执行非代码任务(如数据分析或系统运维管理)的能力,能让你完成更多工作。
编码智能体快速演进的步伐意味着这项技能也在迅速演变——比其他顶级 AI 工程技能都快。专有智能体(如 Claude Code、Codex 和 Cursor)和开源智能体(如 OpenCode 和 Pi)通过 harness 和模型的双重改进大步前进。因此,跟上编码智能体的使用方法需要持续进行实验、构建和学习的过程。
在采访了数十位顶尖 AI 工程师并反思我们自己团队使用编码智能体的经验后,我们发现了用它们构建软件时一个一致的高层工作流程。关键步骤是:
- 规划。 这包括(i)头脑风暴,其中可能涉及研究、实验以及理解现有代码库(如有),以及(ii)编写一份涵盖需求、技术设计和架构的规格说明,随后生成执行计划。你还可能会审查该计划,以质询关键假设并检查安全性、过度设计及其他缺口。
- 执行,在此阶段你进行构建、测试和验证,并在智能体自主性与人工监督之间取得适当平衡。这涉及(i)让智能体构建软件,并校准智能体自主性的水平,以及(ii)通过自动化或人工检查来验证其输出。
- 部署与监控,在此阶段你(i)进行部署,可能由 CI/CD 流水线或额外的人工关卡把关,以及(ii)利用智能体监控日志、发现并上报问题,以及提出并执行改进。
这个高层工作流程与在编码智能体出现之前通常用于构建软件的工作流程类似。现在,我们不再那么专注于代码本身,而是专注于决定构建什么、设计架构、编写规格说明以及验证输出。
每个步骤的持续时间在不同项目之间可能有很大差异,且某些步骤可以被省略。例如,一个绿地(即从零开始构建)原型的规格说明可能只需在一条快速写下的提示词中粗略描述,而一个拥有众多用户的棕地(既有)项目的规格说明则可能需要付出多得多的精力来编写和验证。此外,该工作流程是高度迭代的,熟练的开发者知道何时后续步骤的反馈应引导他们回到更早的步骤。例如,如果验证失败,他们知道如何引导智能体重建并修复错误;或者如果监控发现问题,知道如何让智能体更新系统并重新部署。
要在此工作流程中有效使用编码智能体,关键技能是:
- 引导工作流程
- 实现智能体自主性
- 审查工作成果
- 定制智能体及其环境
- 编码智能体基础
引导工作流程
你知道如何驾驭上述工作流程的每一步。这涉及决定在每个步骤上投入多少人工和智能体精力,以及何时回到更早的步骤进行迭代。这要求你深刻理解速度、成本、技术风险和人工精力之间的权衡,从而能够决定前期应投入多少研究和规划,何时保留对关键工作的人工所有权,如何选择架构,在一组规划工件(如规格说明)中写入多少细节,以及如何将工作分解为可验证的步骤。

实现智能体自主性
将编码智能体应用于工作流程中的步骤时,你选择自主性级别:你是观察它并与之进行交互式来回沟通,还是将更大块的工作委托给它?以及你何时设定明确目标并让它循环直到成功?此外,你必须谨慎管理智能体的上下文。随着构建过程历经不同阶段,你将校准何时确保关键学习、用户反馈和假设——包括在构建中途发生变化的假设——被记录下来供智能体在后续使用。你还会决定何时设置多个智能体并行运行以分解任务——通过由人工或更高级智能体来编排这些其他智能体——以及如何在并发智能体会话之间管理人工注意力。你还知道如何安全地运行智能体,适当设置权限和操作关卡,以便在限制泄露、数据丢失或其他损害风险的同时,让开发快速推进。
审查工作成果
编码智能体的输出是不确定的。我们事先不知道它可能提出什么好点子,也不知道它会实现什么错误。审查和验证输出是确保你获得所需结果的关键步骤,如果不是,则需重新引导智能体。你将设计与任务相匹配的测试和验证,并根据需要应用行为验证和功能验证。你可能还会测试用户流程,也许会让智能体提供截图作为成功或失败的证据。对于定性 / 行为评估,可以使用评估集,或许借助 LLM 作为评审。
你还需要决定这些测试中有多少应自动化。某些工作流程会将所有测试和验证完全自动化,以便智能体可以自行检查工作并在完成一项任务时知道它已经成功。你必须评估这些测试以确保它们符合你的目标,如果不符合,则要对其进行改进。此外,你使用智能体代码审查,并运行由 AI 驱动的安全性和架构审计。当 AI 审查不够时,你会有判断地在代码行为(以及偶尔的代码本身)审查中插入人工审查,同时探索如何进一步自动化这种审查。最后,你验证部署,并可以利用智能体实现监控和事件管理的操作化。
定制智能体及其环境
你更新智能体及其工作环境的能力使得你的智能体能够高效地获取所需上下文、访问工具,并正确高效地构建。你知道如何集成智能体技能、插件和 MCP 服务器。偶尔当它们不再需要时(例如,新模型使得旧技能不再必要),你会将其修剪。你可以使用钩子来自动化开发过程中可重复的部分,例如触发自动代码审查或 CI/CD 流水线。你还可以维护智能体工作的环境:更新常设上下文(如 AGENTS.md 或 CLAUDE.md),补充代码库信息、关键架构假设、代码风格和数据访问模式。你知道如何在多个会话和并行智能体之间保持状态,并随时间积累智能体学习成果,或许通过运行事后回顾来捕捉哪些有效哪些无效。你还知道如何设置一致的约定和结构,使你的代码库易于智能体导航,以及如何偶尔清理智能体产生的技术债务。当你在团队中工作时,你还会考虑如何协调不同开发者的智能体之间的上下文。
编码智能体基础
最后,为了在全局做出良好决策,你需要对编码智能体的工作原理有深入理解:它们如何进行代码库搜索 / 检索,如何管理其上下文窗口,不同操作(如添加工具调用、MCP 服务器等)如何影响上下文,智能体和子智能体如何交互,以及智能体如何通过将 harness 包裹在 LLM 周围来构建。这使得智能体不再是一个黑盒,并帮助你识别失败模式,例如过度设计简单解决方案、因智能体缺乏明确验证过程而丧失严谨性、未达目标即停止,或智能体操作可能带来文件或生产数据损坏的风险。它还帮助你推理智能体的状态,并通过提供正确的指示或上下文来引导它。在监控运行过程中,这种理解使你能够更好地发现智能体偏离轨道并需要你介入的时刻。
我发现社交媒体经常对如何使用编码智能体给出过度简化的描述。例如,有时让智能体自主运行数小时并消耗数百万甚至数千万个 token 是有用的。但目前,对超长周期任务的实际效用——尤其是相对于其成本而言——已被夸大到超出实际的程度。相反,最有效的编码智能体使用是一个复杂的、高度迭代的过程,能够以高超的判断力进行干预会带来更好的结果。
你使用编码智能体的技能将使你成为一个高效的构建者。这使你也有能力引导整体构建过程。我将在未来的文章中对此进行更多阐述。
