2025 年 2 月,Andrej Karpathy 将 "vibe coding" 描述为:用自然语言描述意图,仅做最小程度的审查就接受 LLM 的修改,让代码超出你通常的理解范围。这种方式能为个人项目和原型开发带来惊人的速度。
一年后,他观察到 Agent 的能力已经进步,因此提出 "Agent 驱动工程" 作为这种演化后实践的首选名称。它的核心是编排 Agent,同时保持对架构和流程的强有力人工监督。正如他所说,目标是获得 Agent 带来的杠杆效应,同时不牺牲软件质量。
这个区别很重要。Vibe coding 在单人、低风险的个人项目中表现良好,但一旦有其他人依赖其成果,它就会迅速积累隐藏的技术债务、安全漏洞和维护问题。Agent 驱动工程则能保持现代 Agent 的速度和杠杆效应,但所有工作都锚定在清晰的结构、可追溯的成果和人工问责制之上。
Agent 驱动工程工作流
从粗略的意图开始,与 AI 进行设计对话,同时将功能分解为各个组成部分,并记录到设计会议记录中。当设计感觉稳固后,将高层视图和组件映射捕获到一个设计层级结构中(这就是人们在展示 Obsidian "大脑"时展示的内容)——一个可导航的结构,让你和 Agent 都能方便地访问相关上下文、关联决策和依赖关系。设计图表也在这里,例如 UML(统一建模语言)、代码或用户交互流程图,以及架构决策记录(ADR)的链接(用于阐明组件之间的关系)。
对于每个模块或最小的功能块,在 LLD 内创建一个聚焦的 spec.md,定义精确的行为、函数签名、边界情况、测试预期和集成点。利用整个结构作为设计上下文,提示 AI 构建一个带有工单层级结构的任务清单,使其能够直接追溯到 Wiki 页面和 spec。然后,逐工单地进行实现,Agent 遵循相应的 spec.md 作为其契约。接着,运行验证关卡、部署、观察,并根据需求演变更新这些活文档。

真实示例:每日备份验证器
设想一个生产级的小型 CLI 工具,用于验证每日 S3 备份,并在失败时发送 Slack 警报。
从一个粗略的目标开始:"我需要一个可靠的工具,每天检查我的备份是否健康。"然后与 AI 进行架构对话,以梳理需求和边界情况:
- S3 备份在实际应用中,有哪些真实的故障模式?
- 我们应该具体验证什么(备份时长、文件数量、大小、成功率)?什么样的阈值是合理的?
- 在本地开发和生产环境的 IAM 角色之间,应如何处理配置和密钥?
- 在日常使用中,哪些 CLI 命令和输出格式最有用?
- 对于一个计划每日运行的工具,哪些非功能性需求最重要?
这些对话有助于明确范围,并将工具分解为若干核心组件:带有重试逻辑的 S3 元数据获取器、验证规则引擎、通知系统、配置加载器、CLI 界面、结构化日志记录和错误处理。
设计明确后,你将高层视图和组件映射记录在设计层级 Wiki 中,其中的每个页面都是版本化且可链接的。

Wiki 能为未来的读者提供平面文档无法提供的、丰富的上下文。作为同一设计工作的一部分,你为每个模块创建一个位于子 LLD 级别的、聚焦的 spec.md。以下是 S3 元数据获取器的契约。

这个 spec.md 就是你交付给 Agent 的契约,例如:"严格按照 spec.md 在 s3_client/ 目录下实现,遵循项目标准,并包含全面的测试。"有了 Wiki 和模块 spec,你就可以提示 AI 直接从它们生成工单层级结构。每一个工单都追溯到一个功能需求,以及定义其契约的 spec。

然后,实现过程逐工单进行,每个工单连同其匹配的 spec.md 一起交给 Agent 作为契约。以下是实际效果:一次计划任务捕获到一个较短的备份集并触发了警报。

该任务以非零状态退出,以便 cron 任务能够注意到,并触发警报,最终发送到 Slack。

警报携带了值班工程师所需的规则上下文:哪个检查失败了,发现了什么,预期是什么,以及涉及哪个备份集。
这种分层方法的好处
- Agent 负责实施的工作量,而人类在每一层都掌握架构和质量。
- Wiki 提供项目级别的可发现性和决策记录,而 spec.md 文件则提供精确的模块级契约,不会使高层设计变得臃肿。
- 需求和决策直接从 Wiki 页面和 spec 流向工单和代码。
- 变更从活的文档开始,而不是从代码库反向工程。
- 清晰的关注点分离支持并行工作、新员工入职和审计。
- T 型人才能够以广度导航,以精度提问,而 Agent 随时按需提供深度,无需任何人将整个系统记在脑中。
Vibe coding 仍然是探索和快速个人原型开发的绝佳模式。而 Agent 驱动工程,则是将同样的对话能力引导到他人可以信任和维护的系统中的方法。
T 型人才的定位
这个工作流对 T 型人才尤其强大:那些在应用领域拥有广泛知识,同时具备在需要时深入钻研能力的工程师。
因为你不需要时刻在脑中维护一个完整、最新的、关于整个应用如何运作的心理模型。Agent 可以承载这种深度,并随时根据要求重新解释任何部分,只要它拥有来自 Wiki、spec.md 和对话历史的正确上下文。
你需要的是知道要找什么以及去哪里找的能力,再加上持续提出精确问题直到理解当前具体工作项的纪律。T 的广度部分赋予你系统的地图;AI Agent 则支持所需技能,让你能够深入探索当下最重要的确切模块、边界情况或集成点。每当你发问,Agent 都能提供详尽的信息。
这使人类的角色从"我必须时刻理解一切"转变为"我知道如何在恰当的层级进行导航、提问和验证"。这才是 Agent 驱动工程的真正技能。





